缺陷分析之缺陷引入与移除矩阵
在我们分析缺陷的遏制能力时必须分析缺陷引入的情况,缺陷“注入阶段”和“发现阶段”是分析缺陷的两个重要指标。
在上面的章节中我们介绍了缺陷引入的阶段,缺陷注入阶段主要包括:需求阶段、设计阶段和编码阶段三个阶段。
在对缺陷进行遏制分析时,除了需要分析缺陷注入阶段,还需要从“注入阶段”和“发现阶段”两个维度对缺陷进行分析,这就是通常说的“注入阶段”和“发现阶段”矩阵。
“注入阶段”和“发现阶段”矩阵见表。
该矩阵中,横向是指的缺陷引入的几个阶段,纵向是研发的几个阶段。通过这张表可以进行以下几个方面内容的分析:
- 确定每个阶段注入缺陷的比例;
通常缺陷的引入是有三个阶段:需求、设计和编码三个阶段,这张表中可以清晰的分析出每个阶段所引入的缺陷数占所有缺陷的比例。表中显示一共发现298个缺陷,需求一共发现22个缺陷,占总缺陷的7.4%,设计阶段一共发现97个缺陷,占总缺陷的32.6%,编码阶段一共发现179个缺陷,占总缺陷的60%。
通过分析这个数据,可以发现每个阶段所发现缺陷的比例是否合理,一般情况需求阶段所引入的缺陷占总缺陷的22%左右,设计阶段所引入的缺陷占33%左右,编码阶段引入的缺陷占55%左右。这样对照上面的数据发现,需求引入的缺陷明显少于22%的,这说明缺陷的修复成本将变的更高,因为需求阶段的缺陷大部分是在需求评审和设计阶段才发现的如果在需求阶段可以发现更多的问题,就可以降低编码阶段引入的缺陷数,这样显然缺陷修复的成本就更低些。
所以通过对每个阶段引入的缺陷进行分析可以确定每个阶段引入缺陷的比例是否合理,是否与历史数据相悖。
- 确定每个阶段缺陷移除率;
缺陷移除率的公式如下:
缺陷移除率=(本阶段发现的缺陷总数/本阶段注入的缺陷总数)×100%
分析缺陷移除率主要用来分析每个阶段移除缺陷的情况,在这里显然希望需求和设计阶段移除的缺陷越多越好,否则可能会导致绝大部分的缺陷遗留在系统测试阶段,这样不仅增加了缺陷修复的成本,还增大了系统发布的风险,那么为了尽可能在前期发现更多的缺陷,可以对需求分析的更彻底一些、对设计的方案分析的更全面些,同时可以将单元测试和集成测试做的更深入一些。
- 分析整个研发过程中需要改进的地方;
关于缺陷引入和移除矩阵表除了可以分析上面两个维度的内容外,主要是用来分析整个研发过程中是否有需要改进的地方。
分析需要改进的内容,主要包括整个研发阶段发现缺陷的分布,这样可以确定研发过程每个阶段的工作是否到位,进而确定做的不好的阶段。
而缺陷移除阶段的分布可以确定我们每个测试阶段和研发阶段评审工作是否正确,特别是前期的阶段,如果前期需求、设计阶段没做好,那么遗留的问题都会在系统测试阶段中得到体现。