需求变更对软件质量的影响

    根据我们的经验,需求变更越多,造成的软件修改越多,bug也就会越多,事实是否如此呢?需要我们根据历史的数据进行检验。某企业采集了历史上多个项目的的需求变更次数、交付代码的规模、软件测试发现的缺陷个数,参见下表,基于这些历史数据我们分析一下,看看我们的经验结论是否成立。

                                         表一:需求变更的历史数据

ID

需求变更数

代码规模LOC

总缺陷数

测试缺陷密度bugs/KLOC

需求变更密度(个/MLOC)

1

0

 

221

#DIV/0!

#DIV/0!

2

0

18383

425

23.1191862

0

3

0

3141

33

10.50620821

0

4

0

40

2

50

0

5

0

1000

66

66

0

6

0

200

27

135

0

7

0

50

10

200

0

8

0

55041

34

0.617721335

0

9

0

25072

482

19.22463306

0

10

0

99703

0

0

0

11

0

14037

113

8.050153167

0

12

1

441243

20

0.045326498

2.266324905

13

1

100

11

110

10000

14

1

144907

276

1.904669892

6.900977869

15

1

1500

28

18.66666667

666.6666667

16

2

4664

84

18.0102916

428.8164666

17

2

122968

98

0.796955305

16.26439399

18

2

355699

42

0.118077363

5.622731579

19

2

77344

604

7.809267687

25.85850228

20

2

87163

330

3.786010119

22.94551587

21

3

13899

290

20.86481042

215.8428664

22

3

44000

95

2.159090909

68.18181818

23

4

68700

156

2.270742358

58.22416303

24

4

118126

422

3.572456529

33.8621472

25

5

30299

664

21.91491468

165.0219479

26

5

62323

445

7.140221106

80.22720344

27

5

72808

567

7.787605758

68.67377211

28

6

 

131

#DIV/0!

#DIV/0!

29

7

33300

908

27.26726727

210.2102102

30

9

77691

242

3.114903914

115.843534

31

10

35000

1053

30.08571429

285.7142857

32

10

177138

698

3.940430625

56.45316081

33

11

188964

755

3.995470037

58.21214623

34

13

40626

739

18.19032147

319.9921233

35

15

127150

871

6.850176956

117.9709005

36

39

341860

2015

5.894225706

114.0817879

37

45

210000

1642

7.819047619

214.2857143

38

130

244000

1599

6.553278689

532.7868852


    首先我们来看看总缺陷数与需求变更数的关系:

                                                 

                  图1 需求变更数与测试发现的总缺陷图之间的散点图(未删除离群点)


     在图1中,我们发现存在显著离群点,该点游离于总体的趋势之外,删除之,重新画图:

                                                

                                       图2需求变更数与缺陷总数的散点图


    此时,可以清楚的发现随着需求变更数的增加,总缺陷数是在增加的,二者是正相关的!最右侧存在两个点离群,对总缺陷数做正态分布分析,发现不服从正态分布,于是对总缺陷数做开方变换,变换后的数据服从正态分布,并删除离群点后得拟合线图如下:

                                                

                             图3 需求变更数与测试缺陷数的平方根的拟合线图


    通过以上的分析我们可以发现需求变更数与测试缺陷数之间存在强相关。

    我们也可以试着分析单位代码行的需求变更次数与单位代码行的缺陷个数之间的关系,即表格中最后两列的相关性。排除离群点后,可以发现每百万行代码的需求变更次数与每千行代码测试发现的缺陷数是弱相关的:


                             图4 需求变更密度与测试缺陷密度的散点图

 

       综上所述,在这家公司里,通过38个项目的历史数据,可以初步得到这样结论:需求变更越多,系统中的缺陷越多。

 




阅读更多
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭
关闭