6.6.3 缺陷趋势分析
缺陷趋势是指“随着测试时间的进行,测试发现的缺陷趋势和开发解决缺陷的趋势”。我们进行此项分析的重要原因在于:缺陷趋势分析能够帮助我们判断当前系统是否还能很容易地发现缺陷,进而帮我们确定是否可以退出测试,发布产品。
1. 绘制缺陷趋势图
进行缺陷趋势分析的第一步是绘制缺陷趋势分析图。方法很简单,我们只需要记录每天“发现的缺陷数”和“解决的缺陷数”,并由此算出每天“累积发现的缺陷数”和“累积解决的缺陷数”即可,见表6-10。
对表中的统计项说明如下:
· 累积发现的缺陷数:从开始测试到现在,测试团队发现的缺陷总数。
· 新发现的缺陷数:测试团队当天新发现的缺陷总数。
· 累积解决的缺陷数:从开始测试到现在,经测试确认已经被正确修复了的缺陷总数。
· 当前解决的缺陷数:当天新被测试确认已经被正确修复了的缺陷总数。
我们将表6-10绘成图,就得到了如图6-12所示的缺陷趋势分析图。
在绘制缺陷趋势分析图时,不要忘记去掉节假日、周末公休日等“没有工作的日子”。例如,在本例中我们去掉了“周末”(2014-9-6和2014-9-7)和“中秋节”(2014-9-8)。
绘好缺陷趋势图后,接下来的工作就是进行缺陷趋势分析。此处我们主要的分析对象是“累积发现的缺陷数”和“累积解决的缺陷数”的变化趋势。
2. 缺陷趋势曲线的“凹凸性”和“拐点”
数学中对曲线趋势进行分析时,会用到“凹凸性”和“拐点”的概念。简单来说,拥有凹函数特性的曲线,呈现出递增的变化趋势;反之,拥有凸函数特性的曲线,呈现出递减的变化趋势;而拐点就是凹函数和凸函数中间的连接点,即函数的变化趋势出现改变的点,如图6-13所示。
在这里,我们将借用数学中的“凹凸性”和“拐点”的概念,来对缺陷趋势进行定性分析。
1)理想的“累积发现的缺陷趋势”曲线
在理想情况下,我们希望“累积发现的缺陷趋势”曲线随测试时间,在不同的测试阶段(可以理解为一个或多个测试版本)呈现如图6-14所示的变化趋势。
(1)在一个新的测试阶段开始的时候,希望“累积发现缺陷的趋势”为凹函数(如图6-14中“①”所示)。
“累积发现的缺陷趋势”为“凹函数”,说明测试团队每天能够发现的缺陷数目呈现越来越多的趋势,当前的测试策略(测试人力投入、测试方法等)能够有效发现产品的缺陷,并且未来还可能发现大量缺陷。
(2)在测试策略不变的情况下,测试一段时间后,出现“拐点”(如图6-14中“拐点1”)。
在测试策略不变的情况下,出现“拐点”,说明当前的测试方法已经不能有效去除系统的缺陷,当前的测试可以按照计划结束,进入下一阶段的测试。
这里强调测试策略不变非常重要。例如,测试团队的投入减少了,也可能会导致“拐点”的出现。这时就需要我们调整测试策略来达到测试目标,而不是准备结束测试了。
(3)完成本阶段的测试内容和测试目标,开始进入下一阶段的测试。由于对测试策略进行了更新,“累积发现的缺陷趋势”又变为凹函数(如图6-14中“②”所示),出现“拐点”
(如图6-14中“拐点2”)。
2)“累积发现的缺陷趋势”的“拐点”出现得过早
很多时候,我们会发现“累积发现的缺陷趋势”的“拐点”会比预期出现得早,如图6-15所示(以“虚线”表示“理想”的情况,实线表示实际项目中的情况)。
“拐点”的出现,意味着测试团队在这个测试阶段里已经无法有效发现产品的缺陷了。出现这种情况,可能的原因有:
· 测试团队的投入发生了变化(如人员调动或者减少),并且已经影响了测试。
· 测试发生了阻塞(如产品质量差,存在会阻塞测试执行的缺陷),无法有效开展测试活动。
· 测试策略不当,当前的测试方法确实已经发现不了产品的缺陷了。
显然,无论是上述哪种情况,只要我们“对症下药”,有针对性地更新测试策略,都能有效地解决上述的问题。例如,第一种情况我们可以想办法调整测试的人力投入,使其更为合理;第二种情况我们只需要确定并清除造成阻塞的原因即可。
判断问题是否被有效解决的方法也比较简单:分析“累积发现的缺陷趋势”曲线是否出现由凸函数变为凹函数的拐点,如图6-16的“拐点2”所示(以“虚线”表示“理想”的情况,实线表示实际项目中的情况)。
本文选自《测试架构师修炼之道:从测试工程师到测试架构师》第六章,本站经机械工业出版社和作者的授权。
版权声明:51Testing软件测试网获机械工业出版社和作者授权连载本书部分章节。任何个人或单位未获得明确的书面许可,不得对本文内容复制、转载或进行镜像,否则将追究法律责任。