对于“卡片复用”引来的一场尴尬。。。

最近在工作中,发生了一件“大事”。什么大事?漏测了一个bug!!

作为一个测试工程师,漏测是一件让人非常尴尬的事情。尤其是,你的领导正在严抓这个问题的时候,感觉就是刀口舔血一般。。开周会的时候,全组都在讨论你的这个漏测bug,你的领导、你的领导的领导,都在看这个漏测的本因。

可以深刻的感受到,测试很简单,漏测很严重!

那回归正题,咱们来看看博主漏测的是一个什么样的bug,以后你遇到该类似的问题,如何不踩坑。痛定思痛,博主写了这样的一篇文章,作为对自己的反省。

问题现象:“总标题+6张卡片”的页面A先滑动某一张卡片至不可见,再次切换tab到“总标题+6张卡片”的页面B,从左向右滑动,页面B的卡片“总标题”随着卡片的滑动而消失不见了。

前提:(商店卡片的复用机制)
商店的列表横划卡片存在相同卡片(可以理解为相同的UI样式,但是具体数据不同)复用机制(即上下滑动时,新划出来的卡片会复用划出去的相同的卡片),
这种复用通过key, value(键值对)的方式设置到复用缓存池中,当需要复用时,通过特定的key去获取。

原因分析:
1、出问题的新卡片A存在一张数据结构和功能类似的老卡片B(UI上有一些差别,但是基本结构一致)
2、在实现新卡片的时候直接复制了老卡片B的部分代码,这导致新卡片和老卡片使用了同一个key。
3、这会导致在老卡片B中已经对卡片UI样式做了特殊处理(实际就是隐藏了标题栏部分)后划出不可见时,会放进缓存池中。
4、这时从缓存池中取出时,放到新卡片A时(新卡片需要标题),就会出现UI问题。

最根本的原因是,缺少了对异常场景的考虑:

1、新旧卡片都配置在同一个页面的时候,位置太接近,导致这种异常场景没有出现(如同一样式的卡片配置在一起,两个卡片的位置不可太接近,前者需能滑动到页面不可见,再去滑动后面

的卡片,该异常场景才会出来),

2、新旧卡片需配置在不同的页面,同一样式的卡片,需配置在不同的页面,前卡片需滑动至页面不可见,再切换tab去滑动第二个卡片。

由于以上两种异常场景都没有考虑到,所以直接漏测了这个问题。

解决措施:
1、客户端设计方案优化,不用自定义的字符串作为key,使用卡片code作为key(code全局唯一,并且每张卡片不一样)

预防措施:

1、后续在开发基于老卡片开发新卡片时,开发需要标注说明,测试两种卡片同时存在时,会不会出现问题。

2、增加对新旧功能组合的异常场景梳理(比如这次卡片的场景,我们对位置进行梳理:新旧卡片配置在同一个页面,但是位置很接近的情况;新旧卡片配置在同一个页面,位置相隔比较远的情况;新旧卡片配置在不同页面的情况。

同时,我们可以对卡片的样式进行梳理:新卡片+新卡片组合;新卡片+旧卡片组合;旧卡片+旧卡片组合;同一个场景)

对于我以上给出的相对应的测试场景和预防测试,可能对于有涉及到测试图片卡片的同学有一些帮助。当然同事也给相对应的开发小哥哥提了个醒,复制代码的时候,考虑的东西也很多噢。

欢迎大家的评论,或者给出更多的见解哟,博主都接受。哈哈

猜你喜欢

转载自blog.csdn.net/weixin_39456575/article/details/111239102