案例:如何评价代码走查的效果?

这篇具有很好参考价值的文章主要介绍了案例:如何评价代码走查的效果?。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

某嵌入式软件开发公司在代码提交系统测试之前,开发人员做了单元测试,项目组中的技术负责人对所有的代码进行了评审,对代码也通过工具做了静态扫描,系统上线后仍然存在比较多的问题,因此提升质量是其过程改进的一个重要目标。开发人员对代码进行单元测试时,对发现的缺陷直接进行了修改,没有保留缺陷的度量数据。技术负责人代码走查时,有代码走查记录,积累了代码走查的缺陷数据。系统测试的数据记录比较完备。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 系统测试的质量也要提升。

如何提升代码走查与系统测试的质量呢?我们可以再继续分析影响代码走查与系统测试缺陷密度的因子,找到定量的因果规律,从而采取改进措施,事实上,该公司也进行了这方面的定量分析,本文不再赘述了。

注:本文中所有的图形均采用ZenDAS工具绘制。文章来源地址https://www.toymoban.com/news/detail-453279.html

到了这里,关于案例:如何评价代码走查的效果?的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 嵌入式代码查看分析利器---Understand

      平时在开发嵌入式程序的时候大多数使用的都是keil软件,一般小的工程使用keil没感觉到有什么问题,但是当工程比较大的时候,比如移植了FreeRTOS系统或者LWIP网络系统时,代码全部编译一次就要花费很长世间,特别是开启了点击函数右键跳转的功能之后,速度更加慢。

    2024年02月01日
    浏览(100)
  • 嵌入式Linux:如何进行嵌入式Linux开发?

    目录 1、裸机开发 2、SDK开发 3、驱动开发 3.1、字符设备驱动 3.2、块设备驱动 3.3、网络设备驱动 4、应用开发 嵌入式Linux开发主要有四种方式:裸机开发、SDK开发、驱动开发和应用开发。 裸机开发通常指在没有操作系统支持的环境中直接在硬件上运行程序的开发。这种开发方

    2024年01月25日
    浏览(80)
  • 嵌入式 QT纯代码设计UI

        目录 1.1 实例功能 1.2 界面创建 1.3 界面组件的创建与布局 1.4 信号与槽的关联 UI 的可视化设计是对用户而言的,其实底层都是 C++ 的代码实现,只是 Qt 巧妙地进行了处理,让用户 省去了很多繁琐的界面设计工作。   由于界面设计的底层其实都是由 C++ 语言实现的,底层

    2024年03月09日
    浏览(55)
  • 【蓝桥杯嵌入式】蓝桥杯嵌入式第十四届省赛程序真题,真题分析与代码讲解

     🎊【蓝桥杯嵌入式】专题正在持续更新中,原理图解析✨,各模块分析✨以及历年真题讲解✨都已更新完毕,欢迎大家前往订阅本专题🎏 🎏【蓝桥杯嵌入式】蓝桥杯第十届省赛真题 🎏【蓝桥杯嵌入式】蓝桥杯第十二届省赛程序真题 🎏【蓝桥杯嵌入式】蓝桥杯第十三届省

    2023年04月15日
    浏览(104)
  • 嵌入式系统项目设计——电子琴(完整代码)

    内容摘自上学期嵌入式系统课程设计最终的实验报告,我作为小组组长负责代码部分的编写,与上一个实验相比,使用了相同的硬件,所以硬件示意图完全相同,实现的功能不同但原理类似。因为CSDN不支持上传word资料,所以我就摘录下来写进文章里了,希望可以帮助到你。

    2024年02月08日
    浏览(52)
  • 嵌入式学习笔记(17)代码重定位实战 上篇

    3.5.1任务:在iSRAM中将代码从0xd0020010重定位到0xd0024000 注解:本练习对代码本身运行无实际意义,我们做这个重定位纯粹是为了练习重定位技能。但是某些情况重定位就是必须的,譬如在uboot中。 3.5.2思路 (1)通过链接脚本将代码链接到0xd0024000(链接地址) (2)使用dnw下载时将

    2024年02月09日
    浏览(41)
  • 适合嵌入式C语言静态代码分析的工具

    收集了几个嵌入式C语言静态代码分析工具: Polyspace:Polyspace是MathWorks公司的一款静态代码分析工具,可以用于嵌入式C语言程序的静态分析。它可以检测代码中的缺陷、死代码、未定义行为等问题,并且支持多种编译器和操作系统。 LDRA:LDRA是一款商业化的静态代码分析工具

    2024年02月11日
    浏览(82)
  • [嵌入式AI从0开始到入土]14_orangepi_aipro小修补含yolov7多线程案例

    注:等我摸完鱼再把链接补上 可以关注我的B站号工具人呵呵的个人空间,后期会考虑出视频教程,务必催更,以防我变身鸽王。 第1期 昇腾Altas 200 DK上手 第2期 下载昇腾案例并运行 第3期 官方模型适配工具使用 第4期 炼丹炉的搭建(基于Ubuntu23.04 Desktop) 第5期 炼丹炉的搭建

    2024年02月19日
    浏览(36)
  • 分享一款嵌入式开源按键框架代码工程MultiButton

    MultiButton 是一个小巧简单易用的事件驱动型按键驱动模块。 Github地址:https://github.com/0x1abin/MultiButton 这个项目非常精简,只有两个文件: (1)可无限扩展按键; (2)按键事件的回调异步处理方式可以简化程序结构,去除冗余的按键处理硬编码,让按键业务逻辑更清晰。 通

    2024年04月15日
    浏览(67)
  • 【嵌入式系统开发】Keil 实现十次作业详细代码

          🔥《嵌入式系统开发》系列专栏主要以LPC1100系列微控制器为硬件平台,详细介绍Cortex—-M0微控制器的原理与开发技术,基于keil仿真软件平台设计最小应用系统板和具有在板仿真器的口袋开发板以及相关例程。       🔥本文已收录于嵌入式系统开发系列专栏:嵌入式

    2024年02月08日
    浏览(49)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包