案例:如何评价代码走查的效果?
Posted 麦哲思科技任甲林
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了案例:如何评价代码走查的效果?相关的知识,希望对你有一定的参考价值。
某嵌入式软件开发公司在代码提交系统测试之前,开发人员做了单元测试,项目组中的技术负责人对所有的代码进行了评审,对代码也通过工具做了静态扫描,系统上线后仍然存在比较多的问题,因此提升质量是其过程改进的一个重要目标。开发人员对代码进行单元测试时,对发现的缺陷直接进行了修改,没有保留缺陷的度量数据。技术负责人代码走查时,有代码走查记录,积累了代码走查的缺陷数据。系统测试的数据记录比较完备。32个历史项目的数据如表1所示。如果要采取措施提升质量,首先应该从哪个作业环节入手呢?
表1 历史项目的缺陷数
项目序号 | 代码走查缺陷数 | 系统测试缺陷数 | 上线后缺陷数 |
1 | 8 | 15 | 1 |
2 | 69 | 134 | 10 |
3 | 53 | 87 | 5 |
4 | 95 | 149 | 13 |
5 | 17 | 8 | 1 |
6 | 32 | 49 | 6 |
7 | 69 | 110 | 5 |
8 | 30 | 23 | 4 |
9 | 154 | 278 | 27 |
10 | 55 | 71 | 6 |
11 | 16 | 18 | 3 |
12 | 36 | 58 | 3 |
13 | 61 | 72 | 7 |
14 | 72 | 134 | 6 |
15 | 43 | 59 | 6 |
16 | 65 | 91 | 4 |
17 | 82 | 154 | 17 |
18 | 45 | 96 | 6 |
19 | 39 | 42 | 3 |
20 | 15 | 11 | 1 |
21 | 77 | 145 | 9 |
22 | 60 | 105 | 9 |
23 | 69 | 52 | 3 |
24 | 135 | 206 | 18 |
25 | 9 | 8 | 1 |
26 | 129 | 216 | 13 |
27 | 21 | 33 | 2 |
28 | 19 | 18 | 2 |
29 | 26 | 29 | 2 |
30 | 34 | 36 | 3 |
31 | 34 | 48 | 3 |
32 | 12 | 11 | 1 |
由于单元测试没有历史数据积累,我们无从判断单元测试的质量。那就先从代码走查与系统测试开始分析。
我们可以计算:
代码走查缺陷逃逸率=(系统测试缺陷数+上线后缺陷数)/(代码走查缺陷数+系统测试缺陷数+上线后缺陷数)
系统测试缺陷逃逸率= 上线后缺陷数 /(系统测试缺陷数+上线后缺陷数)
于是得到表2:
表2 历史项目的缺陷逃逸率
项目序号 | 代码走查缺陷逃逸率 | 系统测试缺陷逃逸率 |
1 | 66.67% | 6.25% |
2 | 67.61% | 6.94% |
3 | 63.45% | 5.43% |
4 | 63.04% | 8.02% |
5 | 34.62% | 11.11% |
6 | 63.22% | 10.91% |
7 | 62.50% | 4.35% |
8 | 47.37% | 14.81% |
9 | 66.45% | 8.85% |
10 | 58.33% | 7.79% |
11 | 56.76% | 14.29% |
12 | 62.89% | 4.92% |
13 | 56.43% | 8.86% |
14 | 66.04% | 4.29% |
15 | 60.19% | 9.23% |
16 | 59.38% | 4.21% |
17 | 67.59% | 9.94% |
18 | 69.39% | 5.88% |
19 | 53.57% | 6.67% |
20 | 44.44% | 8.33% |
21 | 66.67% | 5.84% |
22 | 65.52% | 7.89% |
23 | 44.35% | 5.45% |
24 | 62.40% | 8.04% |
25 | 50.00% | 11.11% |
26 | 63.97% | 5.68% |
27 | 62.50% | 5.71% |
28 | 51.28% | 10.00% |
29 | 54.39% | 6.45% |
30 | 53.42% | 7.69% |
31 | 60.00% | 5.88% |
32 | 50.00% | 8.33% |
对上述的缺陷逃逸率画箱线图分析如图1所示:
图1 缺陷逃逸率的箱线图
通过箱线图对比我们可以发现代码走查的缺陷逃逸率中位数高达65.13%,系统测试的缺陷逃逸率中位数为7.74%,二者相比,应该先从提升代码走查的质量开始抓起!
对三个缺陷数的度量数据我们也可以做相关性分析,结果如图2所示:
图2 缺陷数的相关性分析
由上边的分析可以发现,代码走查时找到的缺陷越多、系统测试时找到的缺陷也越多、逃逸的缺陷也越多。是否这3个数都受到系统规模的影响呢?我们可以再去分析缺陷密度之间的关系。将系统规模纳入此表1中,计算出缺陷密度如表3:
表3 缺陷密度的数据
项目序号 | 代码走查缺陷数 | 系统测试缺陷数 | 上线后缺陷数 | 需求点数 | 代码走查缺陷密度 | 系统测试缺陷密度 | 上线后缺陷密度 |
1 | 8 | 15 | 1 | 31 | 0.2581 | 0.4839 | 0.0323 |
2 | 69 | 134 | 10 | 220 | 0.3136 | 0.6091 | 0.0455 |
3 | 53 | 87 | 5 | 153 | 0.3464 | 0.5686 | 0.0327 |
4 | 95 | 149 | 13 | 289 | 0.3287 | 0.5156 | 0.0450 |
5 | 17 | 8 | 1 | 18 | 0.9444 | 0.4444 | 0.0556 |
6 | 32 | 49 | 6 | 124 | 0.2581 | 0.3952 | 0.0484 |
7 | 69 | 110 | 5 | 182 | 0.3791 | 0.6044 | 0.0275 |
8 | 30 | 23 | 4 | 77 | 0.3896 | 0.2987 | 0.0519 |
9 | 154 | 278 | 27 | 318 | 0.4843 | 0.8742 | 0.0849 |
10 | 55 | 71 | 6 | 175 | 0.3143 | 0.4057 | 0.0343 |
11 | 16 | 18 | 3 | 68 | 0.2353 | 0.2647 | 0.0441 |
12 | 36 | 58 | 3 | 176 | 0.2045 | 0.3295 | 0.0170 |
13 | 61 | 72 | 7 | 113 | 0.5398 | 0.6372 | 0.0619 |
14 | 72 | 134 | 6 | 289 | 0.2491 | 0.4637 | 0.0208 |
15 | 43 | 59 | 6 | 194 | 0.2216 | 0.3041 | 0.0309 |
16 | 65 | 91 | 4 | 158 | 0.4114 | 0.5759 | 0.0253 |
17 | 案例:如何评价代码走查的效果? |