缺陷清除率(亦叫“缺陷排除率”),英文缩写DER(Defect Elimination Rate)。这个东西可以用作缺陷的预测和分析。 说到DRE就必须提到OFE(Opportunity For Error),即错误几率。
缺陷密度(Defect Density)-缺陷在规模(如KLOC,PF)上的分布
缺陷率(Defect Rate)-缺陷在时间上的分布。
一般来讲,在过程稳定,人员技术稳定的情况下,发现缺陷多的地方还会有更多的缺陷,即漏掉的缺陷更多。
前段时间在搞CMMI4级的模型,用到了这些东东,搞了好长时间才明白其真正含义。DER分为两种:整体缺陷清除率和阶段缺陷清除率,阶段性的缺陷清除率能够反映整体缺陷清除率。
缺陷清除率=已发现的缺陷/潜在的缺陷,由于潜在的缺陷不容易确定,故近似=已发现的缺陷/(已发现的缺陷+以后发现的缺陷)
整体缺陷清除率很容易理解,举个例子说明:对于一个软件系统,如果发布前发现的缺陷为D1,发布后发现的缺陷为D2,则总缺陷数为D=D1+D2,则整体的缺陷清除率就为D1/D。
阶段性的缺陷清除率=本阶段发现的缺陷数/(本阶段入口存在的缺陷数+本阶段注入的缺陷数)。
举例1如下:
|
缺陷注入
|
| ||||||||
发
现
处
|
|
需求
|
概要设计
|
详细设计
|
编码
|
单元测试
|
部件测试
|
系统测试
|
维护
|
总计
|
需求分析和评审
|
0
|
|
|
|
|
|
|
|
0
| |
概要设计评审
|
49
|
681
|
|
|
|
|
|
|
730
| |
详细设计评审
|
6
|
42
|
681
|
|
|
|
|
|
729
| |
代码审查
|
12
|
28
|
114
|
941
|
|
|
|
|
1095
| |
单元测试
|
21
|
43
|
43
|
223
|
2
|
|
|
|
332
| |
部件测试
|
20
|
41
|
61
|
261
|
0
|
4
|
|
|
387
| |
系统测试
|
6
|
8
|
24
|
72
|
0
|
0
|
1
|
|
111
| |
维护
|
8
|
16
|
16
|
40
|
0
|
0
|
0
|
1
|
81
| |
合计
|
122
|
859
|
939
|
1537
|
2
|
4
|
1
|
1
|
3465
|
n
举例2如下:
一个项目的质量目标是0.2个缺陷/KLOC,产品规模估算为150KLOC,则交付给客户的产品的缺陷数应该不超过150*0.2=30个。假设交付阶段的缺陷清除率为90%,则交付之前遗留的缺陷应该不超过30/0.9=33个。
n
根据组织级的缺陷清除率基线或项目级的缺陷清除率目标,可以得出每个阶段应该发现的缺陷数。如需求阶段的缺陷清除率为0.83,需求评审中发现了53个缺陷,则需求阶段应该发现的缺陷数=53/0.83=64个。也就是说,项目的后续阶段还应该发现至少11个需求的缺陷,而且发现的越早越好。