6.6.4 缺陷年龄分析
缺陷年龄是指软件(系统)产生或引入缺陷的时间。为了便于对缺陷年龄进行分析,我们对不同阶段引入的缺陷年龄的定义见表6-11。
进行缺陷年龄分析,能够帮助我们确认每个可能引入缺陷环节、可能引入的缺陷是否都已经被有效去除。具体操作时,我们通过以下简单的3个步骤来开展缺陷年龄分析活动。
第一步:确定缺陷的缺陷年龄。
如果你的项目有缺陷的管理工具(如bugzilla),可以增加缺陷年龄的选项。在开发修复缺陷的时候,可以对缺陷年龄进行选择。
如果没有缺陷管理工具也没有关系,你可以使用类似表6-12的形式来确定缺陷年龄。
第二步:统计出各类缺陷年龄的数量,绘制缺陷年龄分析图。
接下来我们需要统计出各类缺陷年龄的数量,见表6-13。
并根据表中的数据绘出缺陷年龄分析图,如图6-21所示。
第三步:进行缺陷年龄分析。
我们在进行缺陷年龄分析之前,需要先理解一下理想的缺陷年龄应该具有怎样的特点。
1)理想的缺陷年龄分析图
理想的缺陷年龄分析图应该是如下这样的。
(1)在缺陷的引入阶段就能及时发现该类缺陷,缺陷不会逃逸到下个阶段,如图6-22所示。
例如,当你分析设计阶段的缺陷年龄时,分析结果就是一个“大圆饼”——所有的缺陷年龄都是在设计阶段引入的,没有在需求阶段引入的缺陷。换句话说,需求阶段引入的缺陷在需求分析阶段就已经被完全去除了。
如果真能达到这样的水平,测试也就可以“光荣”失业了。但实际情况是,每个阶段都会有一些缺陷“逃逸”到下一阶段,需要“测试”来发现这些逃掉的缺陷。
通过前几章的叙述,我们已经了解到测试不应该想到哪里就测到哪里,而应该进行分层测试:在每个测试分层围绕不同的测试目标,使用不同的测试方法来进行测试。因此,针对测试阶段理想的缺陷年龄分析图应该是下面这样的。
(2)在特定的测试分层发现该层的问题,如图6-23所示。
例如,在集成测试和系统测试阶段发现的缺陷,主要是在编码阶段引入的和在设计阶段引入的。在验收测试阶段发现的缺陷主要是在设计阶段引入的。
对其他几类缺陷年龄,我们的期望是:
· 没有继承或历史遗留引入的缺陷。
· 没有新需求或变更引入的缺陷。
· 没有缺陷修改引入的缺陷。
2)没有在特定的测试层次发现该层的缺陷
例如,在集成测试阶段,我们希望发现在编码阶段和设计阶段引入的缺陷,但实际上却发现了大量的在需求阶段引入的缺陷。这说明:
· 产品需求的质量不高,需求存在不清晰或错误的情况。
· 系统架构设计的质量不高。
· 需求质量不高,产品功能的质量也不会太高。
· 系统架构设计的质量不高,产品在非功能属性方面的质量也不会太高。
这就需要测试或整个研发团队来有针对性地进行改进。例如:
· 对需求再次进行检测,确保尚未集成的功能对应的需求的正确性。
· 分析架构设计中的问题,找出对非功能属性方面的主要影响,调整测试策略,尽量提前并加大这些内容的测试力度。
· 调整测试策略,增加相关功能的测试力度和回归测试的规模。
3)继承或历史遗留引入的缺陷过多
当我们发现测试中出现了很多因为继承或历史遗留引入的缺陷时,这就说明产品还存在一些“旧账”尚未清理,这时我们需要:
· 进行或重新进行老功能分析(详见6.7.2节),更新测试策略。
· 对这些缺陷进行分析,由此更新测试策略,进行探索式测试。
· 如果被继承的版本处于维护阶段,考虑这些缺陷是否需要在维护版本中解决,并发布补丁或升级包。
· 确认被继承的版本在维护阶段发现的其他缺陷,是否需要同步到当前新版本中。
如图6-24所示。
4)新需求或变更引入的缺陷过多
当我们在进行缺陷年龄分析时,发现了很多因为新需求或变更引入的缺陷,出现这种
本文选自《测试架构师修炼之道:从测试工程师到测试架构师》第六章,本站经机械工业出版社和作者的授权。
版权声明:51Testing软件测试网获机械工业出版社和作者授权连载本书部分章节。任何个人或单位未获得明确的书面许可,不得对本文内容复制、转载或进行镜像,否则将追究法律责任。