某嵌入式软件开发公司在代码提交系统测试之前,开发人员做了单元测试,项目组中的技术负责人对所有的代码进行了评审,对代码也通过工具做了静态扫描,系统上线后仍然存在比较多的问题,因此提升质量是其过程改进的一个重要目标。开发人员对代码进行单元测试时,对发现的缺陷直接进行了修改,没有保留缺陷的度量数据。技术负责人代码走查时,有代码走查记录,积累了代码走查的缺陷数据。系统测试的数据记录比较完备。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%,系统测试的缺陷逃逸率中位数为9.18%,二者相比,应该先从提升代码走查的质量开始抓起!
对三个缺陷数的度量数据我们也可以做相关性分析,结果如图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 |
82 |
154 |
17 |
243 |
0.3374 |
0.6337 |
0.0700 |
18 |
45 |
96 |
6 |
110 |
0.4091 |
0.8727 |
0.0545 |
19 |
39 |
42 |
3 |
225 |
0.1733 |
0.1867 |
0.0133 |
20 |
15 |
11 |
1 |
28 |
0.5357 |
0.3929 |
0.0357 |
21 |
77 |
145 |
9 |
274 |
0.2810 |
0.5292 |
0.0328 |
22 |
60 |
105 |
9 |
136 |
0.4412 |
0.7721 |
0.0662 |
23 |
69 |
52 |
3 |
74 |
0.9324 |
0.7027 |
0.0405 |
24 |
135 |
206 |
18 |
368 |
0.3668 |
0.5598 |
0.0489 |
25 |
9 |
8 |
1 |
40 |
0.2250 |
0.2000 |
0.0250 |
26 |
129 |
216 |
13 |
328 |
0.3933 |
0.6585 |
0.0396 |
27 |
21 |
33 |
2 |
72 |
0.2917 |
0.4583 |
0.0278 |
28 |
19 |
18 |
2 |
49 |
0.3878 |
0.3673 |
0.0408 |
29 |
26 |
29 |
2 |
70 |
0.3714 |
0.4143 |
0.0286 |
30 |
34 |
36 |
3 |
90 |
0.3778 |
0.4000 |
0.0333 |
31 |
34 |
48 |
3 |
144 |
0.2361 |
0.3333 |
0.0208 |
32 |
12 |
11 |
1 |
32 |
0.3750 |
0.3438 |
0.0313 |
对缺陷密度的度量数据进行相关性分析表图3所示:
图3 缺陷密度的相关性分析
通过图3的分析可知,无论是否排除异常点,代码走查的缺陷密度与系统测试的缺陷密度、上线后的缺陷密度都是线性正相关的,系统测试的缺陷密度与上线后的缺陷密度也是线性正相关的。为什么是线性正相关,而不是开口向下的抛物线相关呢?难道代码走查与系统测试找到的缺陷越多,逃逸的缺陷就会一直增加下去吗?肯定不应该如此!未发现的缺陷不会越来越多,只会越来越少,但是在我们的数据中却没有看到这个趋势,说明什么呢?说明我们的代码走查与系统测试找到的缺陷还是太少!还需要加大代码走查与系统测试的力度!
综上所述,我们可以得到结论:
1 先提升代码走查的质量,减少代码走查的缺陷逃逸率;
2 系统测试的质量也要提升。
如何提升代码走查与系统测试的质量呢?我们可以再继续分析影响代码走查与系统测试缺陷密度的因子,找到定量的因果规律,从而采取改进措施,事实上,该公司也进行了这方面的定量分析,本文不再赘述了。文章来源:https://www.toymoban.com/news/detail-453279.html
注:本文中所有的图形均采用ZenDAS工具绘制。文章来源地址https://www.toymoban.com/news/detail-453279.html
到了这里,关于案例:如何评价代码走查的效果?的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!