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

原创 2017年11月15日 15:32:18

    根据我们的经验,需求变更越多,造成的软件修改越多,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个项目的历史数据,可以初步得到这样结论:需求变更越多,系统中的缺陷越多。

 




软件质量有何需求?

 软件的应用已经遍及社会生活的方方面面,大到宇宙飞船、飞机、导弹系统等,小到电视机、手机、MP3播放机等,软件已经形成一个很大的产业,慢慢地成为比较成熟的行业,虽然它还不同于传统的行业。因此,我们对软...
  • KerryZhu
  • KerryZhu
  • 2006年06月08日 19:50
  • 5171

需求变更的代价和如何减少需求变更

需求变更的代价 一般来讲,需求的变更通常意味着需求的增加,需求的减少相对很少,而且处理需求减少方面的问题也比较容易。当客户提出新需求的时候,项目开发人员应该分析这些新需求对项目现阶段带来的风险,得出双...
  • MyNameEPC
  • MyNameEPC
  • 2006年07月07日 23:00
  • 1373

测试组如何应对需求变更

在测试过程中,如果有需求变更产生,必须通过测试组同意。   面对需求变更,测试组需要对变更进行评估: 1.       变更是否有详细的需求说明? 2.       变更涉及范围有多大...
  • BetterFate
  • BetterFate
  • 2013年09月05日 11:07
  • 672

谈谈如何应对软件开发中的需求变更

令人烦恼的需求变更     在软件开发中,大家都会遇到过这样的问题:客户的一个新想法,就推翻了之前与客户经过再三讨论而确认定下来的需求。如果是功能性需求变更还会让人容易接受一些,毕竟功能性需求不实现...
  • xiaoxian8023
  • xiaoxian8023
  • 2013年05月07日 14:50
  • 2502

项目需求变更原因及处理

 需求变更的控制当然与项目管理范畴之外的纯技术因素息息相关,比如面向对象的分析、面向对象的设计、面向对象的编码方式等等。不论在项目变更控制中采取什么方法、策略,对于项目本身的变化一定要时时洞悉,...
  • qq_14891839
  • qq_14891839
  • 2016年06月01日 14:29
  • 1974

需求变更管理和需求的可追溯性

在项目管理过程中,总是难免会碰到需求的变更,需求变更之所以会产生,可能是用户不能清晰描述需求或对需求也不是特别明确,也可能是开发人员对需求理解与用户不一致,或者是用户需求确实有更改,或者是遇到其他外部...
  • gaoxie4042
  • gaoxie4042
  • 2017年01月05日 23:02
  • 354

需求变更管理与敏捷开发

转自:http://blog.csdn.net/violet200211/article/details/8612189 需求变更管理         需求变更是要经过申请...
  • talking12391239
  • talking12391239
  • 2013年03月29日 14:56
  • 1935

完美程序员的10种品质与不适合做程序员的10种迹象

完美程序员的10种品质  完美程序员的每种品质都有一个范围,这个范围取决于具体的问题和背景。没有能解决所有问题的完美程序员(至少在我们这个星球上),并且对于特定问题,完美程序员应该具有以下品质:1. ...
  • zzulp
  • zzulp
  • 2010年12月28日 22:47
  • 2605

需求变更,产品经理的良心也会痛!

在项目执行过程中,产品经理与后续的合作团队,包括设计、开发、测试等相关人员最尖锐突出的矛盾,就是需求变更,这是产品经理最经常被诟病的地方。频繁的需求变更,对产品、项目进度和团队积极性都有非常大的危害。...
  • broadview2006
  • broadview2006
  • 2017年05月12日 08:58
  • 1821

软件过程解决需求变更方案

软件的基础是需求,需求变动后数据库、设计、编码等都需要变动,严重的甚至会推翻原来所作的一切工作。 如果需求一直变动,就会进入需求设计循环,大部分时间都会化在需求变更后的设计变动上。这样总体上对理清...
  • tearsmo
  • tearsmo
  • 2011年09月01日 11:06
  • 935
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:需求变更对软件质量的影响
举报原因:
原因补充:

(最多只允许输入30个字)