前言:最近在阅读《测试架构师修炼之道》这本书,学习到了很多系统性的知识。这篇博文,记录书中讲述的「缺陷趋势分析」这一部分。
缺陷趋势的意义
一、缺陷趋势是什么
缺陷趋势是指,我们在项目测试中,随着测试时间的推移,测试过程中发现的缺陷趋势和开发解决缺陷的趋势。
二、缺陷趋势分析能干什么
缺陷趋势分析,可以帮助我们判断当前系统是否还能很容易地发现bug,根据缺陷趋势,进而可以确定是否可以退出测试,发布产品
缺陷趋势如何做
一、绘制缺陷趋势图
测试日期 | 2023-02-01 | 2023-02-02 | 2023-02-03 |
累计发现的bug数 (从开始测试到现在,测试团队总共发现的缺陷总数) | 150 | 161 | 177 |
新发现的bug数 (测试团队当天新发现的缺陷总数) | 10 | 11 | 16 |
累计解决的bug数 (从开始测试到现在,经过测试确认已经被正确修复了的缺陷总数) | 120 | 129 | 141 |
当前解决的bug数 (当天新北测试确认已经被正确修复了的缺陷总数) | 7 | 9 | 12 |
将上述的数据,绘制成折线图,就可以得到缺陷趋势分析图:
注意📢:绘制趋势图,需要去掉周末和节假日,避免造成干扰
二、分析出趋势图的关键节点
凹函数,呈现出递增的变化趋势;凸函数,呈现出底线的变化趋势;凹函数和凸函数之间的连接点,就是我们俗称的"拐点"。
理想中的"累计发现的缺陷数"趋势图:
如上图中①所示:
a)累计发现的缺陷数的趋势图为凹函数时,说明当前的测试策略能够有效的发现产品的缺陷,并且在未来也可能发现大量的缺陷。
b) 在测试策略不变的情况下,随着测试时间的推进,缺陷图出现了拐点1, 趋势图从凹函数变成了凸函数
那实际项目中,我们还会遇到两种异常情况:
异常情况一:拐点出现过早
"拐点"的出现,意味着测试团队在当前的测试阶段已经无法有效发现产品的缺陷了。
拐点出现过早可能的原因:
测试团队的投入发生变化(比如人员的变动), 并且这个变化已经影响到了测试
测试发生了阻塞(如产品质量差,存在阻塞测试进度的问题),已经无法有效的开展测试活动
测试策略不当,当前的测试方法已经无法发现产品的缺陷了
解决方案:
调整测试的人力投入
确定并清理阻塞的问题
调整测试策略,更新测试方法
异常情况二:拐点未出现
说明在当前测试阶段,未来仍然可以发现大量的问题;
可能的原因:
版本质量太差,导致缺陷密度高于预期
解决方案:1.增加相关内容的测试用例执行次数 2.加强相关内容的回归测试 3.对发现的缺陷进行逆向分析,增加探索式测试
测试团队未按照测试策略进行测试,可能使用了更多、更复杂的方法来发现缺陷
三、判断缺陷是否收敛
判断缺陷是否收敛有两点:
"累积发现的缺陷趋势"变为凸函数
"累积发现的缺陷趋势"和"累积解决的缺陷趋势",两条线越来越近,最后趋于一点
这种场景说明,当前测试已经不能有效的发现问题了,并且发现的缺陷都被有效修复。
那实际项目中,我们还会遇到两种异常情况:
异常情况一:两条曲线未出现越靠越近的趋势
说明,还有较多的缺陷还没有被修复验证。注意,在修改缺陷时,也要注意修复已暴露的缺陷会带来新缺陷的问题。需要做好修复缺陷的自测以及控制好代码改动
异常情况二:"累积发现的缺陷趋势"仍为 凹函数
说明测试还能继续发现大量缺陷,还需要继续测试。同时,缺陷的解决和验证也是蛮快的