软件缺陷的生成因素分析

2016-02-23 06:30哈清华姜瑞凯
计算机技术与发展 2016年1期
关键词:测试人员开发人员软件测试

哈清华,姜瑞凯,刘 逻

(中国科学院 长春光学精密机械与物理研究所,吉林 长春 130033)

软件缺陷的生成因素分析

哈清华,姜瑞凯,刘 逻

(中国科学院 长春光学精密机械与物理研究所,吉林 长春 130033)

软件缺陷是软件质量评价的重要依据,需要全面而深入的研究与分析,而同时导致软件缺陷形成的因素却多种多样,难以确定软件缺陷的生成原因。因此,为了分析软件缺陷的生成原因以及发现缺陷的方法,文中研究了基于多元线性回归的线性拟合方法,从被测对象、开发与测试人员、测试强度等方面研究对软件缺陷的影响。首先对软件缺陷的生成因素进行分析,并选定5个因素作为分析变量,建立分析模型。之后通过数据分析获得了回归方程,并依据方程确定各因素对软件缺陷生成的影响程度。通过分析获得的各因素的t检验值可知,测试时间对软件缺陷的生成影响最大,而软件复杂度和开发人员经验也对软件缺陷的生成具有较大的影响。

软件缺陷;生成因素;软件规模;软件复杂度;多元线性回归

0 引 言

随着软件的不断发展,一方面,软件的数量与日俱增,软件的复杂性呈指数增长,其应用领域不断拓展,重要性越发为大家所关注[1]。另一方面,软件中隐藏的缺陷也越发地难以发现,一旦在使用中出现故障,其带来的后果往往难以估计[2]。目前公认的提高软件质量的重要手段是软件测试,通过及时而有效的测试活动,可以及时发现软件的缺陷,减少后期使用的隐患。因此,软件测试已是软件开发过程的重要一环[3],越来越多的组织开始建立自己独立的软件测试团队。然而,软件测试的效果却大相径庭。由不同的人员对相同的被测件进行测试,其被测出的软件缺陷数量和重要等级会有很大的不同,甚至同一名测试人员对同一个被测件做多次测试,其结果也会不尽相同[4-5]。另外,软件测试还是一个费时、费力及成本高昂的活动。因此深入地分析软件缺陷的生成因素,对预防缺陷以及发现缺陷都有重要的现实意义[6]。一方面,通过对各个生成因素的分析,可以在软件的开发阶段加以考虑,进而预防缺陷的出现[7-8];另一方面,通过对各生成因素的数据分析,可以进一步进行定向数据分析和挖掘,如实现基于软件缺陷的软件测试性分析以及基于统计分析的软件缺陷预测[9-10]等。文中研究的内容就是想运用线性拟合算法,对各项软件缺陷的可能生成因素进行分析,从定量的角度来确定各要素对软件缺陷的影响。

1 生成软件缺陷的因素

生成软件缺陷的因素有很多,文中从对软件缺陷生成的重要性和数据量化的可行性考虑,主要选取软件规模、软件复杂度、开发人员的经验水平、测试人员的经验水平、软件研制周期的长度共五个生成因素加以分析。

1.1 软件规模

依据经验,软件的规模与其隐含的缺陷数量成正比例关系,即软件越大,其中的缺陷越多[11]。同时随着软件缺陷数量的增加,其被遗漏的缺陷数量也会随之增加。因此,测试难度和测试成本也会随之增加。在此次分析中,将被测软件的源代码行数L作为软件规模的度量变量加以分析。

1.2 被测软件的复杂度

除代码数量外,被测软件的复杂度对软件缺陷也有很大的影响。软件复杂度越高,其设计难度和测试难度均随之增加[12]。因为随着复杂度的提高,开发人员容易在设计时忽略一些特殊情况的出现而埋下隐患,同时测试人员也会难以分析软件内部的代码结构关系,进而导致测试的不充分。因此软件越复杂,越容易导致软件缺陷的出现,已有相关的实验结论对这一观点进行支撑[13]。在此次分析中,选取被测软件的圈复杂度C作为度量变量加以分析。

1.3 开发人员的经验水平

开发人员的工作经验对软件缺陷有着直接的影响。一个有经验的开发人员其设计的软件结构更加合理,代码更加简练,易于理解和分析。因此其开发的软件的缺陷数量也会更少,一旦出现也更容易被改正。在此次分析中,开发人员经验水平D通过开发人员的工作年限和级别系数的运算来获得,作为经验水平的度量变量。

1.4 测试人员的经验水平

测试人员的工作经验与软件缺陷之间也有着重要的影响。有经验的测试人员其对被测软件的理解更加深入,设计的用例更加有效。因此其发现缺陷的效率也更高。在此次分析中,与开发人员的量化分析类似,测试人员经验水平K通过测试人员的工作年限和级别系数的运算来获得,作为经验水平的度量变量。

1.5 研制周期系数

业内早已达成共识,即软件研制时间的长短对软件质量有着非常重要的影响。然而,由于软件的研制往往受到硬件条件、总体研制周期等的制约,软件研发周期总被人为的缩短也已是一个普遍现象。因此,研制周期的压缩程度对软件缺陷的影响也是一个需要重点考量的因素。在此次试验中,使用变量T作为研制周期长度的度量。

除了上述各因素外,还有一些其他的软件缺陷生成因素,如软件研制队伍的整体组织协调情况,一个高效的团队其开发的产品也会有较高的质量;研制人员的心理活动情况也对软件质量有影响,如一个已经连续进行高强度工作数周的人员其工作效率也将必定下降,对产品的质量也将产生影响。但由于以上生成因素尚未找到量化标准用以定量描述,同时这些生成因素往往属于主观条件不属于软件自身的客观属性,通过一定的数据分析应可以排除以上因素对结果的影响。因此以上生成因素不列入此次分析。

2 建立模型与选取数据

2.1 建立分析模型

经过以上内容的分析,确定使用软件规模、软件复杂度、开发人员经验水平、测试人员经验水平和研制周期五个变量来建立软件缺陷分析的多元线性回归方程[14]:

N(缺陷值)=a+bL+cC+dD+eK+fT

其中,a为常数项;b、c、d、e、f分别为对应变量的系数;

L—代码行数:该数据统一使用代码分析工具Testbed8.1.0进行分析获得。

C—代码圈复杂度:该数据统一使用代码分析工具Testbed8.1.0进行分析获得。

D—开发人员经验水平:该数据用开发人员的工作年限乘以级别系数获得,D=Y×S,其中,Y表示开发人员参加软件开发工作的时间,S为级别系数(研究实习员1、助理研究员1.2、副研究员1.4、研究员1.6)。

K—测试人员经验水平:该数据用测试人员的工作年限乘以职称系数获得,K=Y×S,其中,Y表示测试人员参加软件测试工作的时间,S为级别系数(同上)。

T—研制周期系数:表示研制周期的利用情况。T=R/P,其中,R表示实际的软件研制时间(通过项目历史记录获得);P为理论上计划使用的研制时间(计划使用的研制时间是以项目规划时由专家依据经验估计的约定研制时间为准)。

2.2 使用的数据

此次分析使用的数据来自中科院长春光机所近几年来实施的嵌入式C语言软件项目。该组织的配置项测试由独立的测评机构完成,具有客观性和一致性的特征。但部件测试由开发人员独立完成,缺乏客观性特征。而系统测试则过于依赖硬件以及其他外部条件,不具有一致性特征。因此此次试验只选取配置项级测试的缺陷数据,而不考虑部件测试和系统测试这两个级别发现的软件缺陷。此次分析的数据见表1。

表1 软件缺陷分析样本数据

3 多元线性回归分析

使用IBM SPSS Statistics19进行变量关系分析,利用散点关系图检查L、C、D、K、T与N的线性关系,见图1。

从图可以看出,L、C、T和D四个因素对N的影响所呈现出来的线性关系比较显著,K的线性关系则偏弱。整体上五个因素对N均具有线性相关性,因此可按照预先设计的模型,对数据进行线性回归分析,分析各因素对N的影响程度。

进行线性回归分析后,得到的各变量的标准化相关系数及参数估计误差见表2~4所示。

表2 模型汇总表

注:a为预测变量:(常量),T,K,L,C,D。

图1 变量N与变量L、C、D、K、T的线性关系 表3 Anovab

模型平方和df均方FSig.1回归4316.6595863.33237.9000.000a残差546.7082422.779总计4863.36729

注:a为预测变量:(常量),T,K,L,C,D;b为因变量:N。

表4 回归系数表

注:a为因变量:N。

通过表中的分析数据,可知:

R2为0.888,残差平方和占总体平方和的11.2%,说明样本对模型拟合的很好。F值为37.667,远远大于11,可以认为获得的回归方程具有可信性。L、C、D、K、T的t检验值的绝对值分别为:2.367、1.024、3.333、0.851、4.144。参数L、D、T的t检验值大于2,参数估计可信,因此这三个变量具有较好的解释能力。获得的最终的回归方程为:

N=-0.210L-0.093C+0.386D-0.083K+ 0.496T

4 结束语

通过以上的数据分析,对于生成软件缺陷的各要素,文中获得以下几点结论。

(1)在五个生成因素中,软件规模、开发人员经验和研制周期对软件缺陷的影响较大,其中软件规模与软件缺陷成反比例关系,说明软件规模越大,其缺陷值将越高。而软件研制时间的充分程度和开发人员经验与软件缺陷成正比,即时间系数越小,时间越不充裕,开发人员经验越少,软件缺陷值越高。

(2)软件复杂度和测试人员经验水平的t值分别为1.024和0.851,通过数据分析说明这两个因素对软件缺陷的影响较小。其中测试人员水平影响因素较低可能与采用的数据为同一测试组织有关,测试人员的水平相对比较接近。

(3)软件研制时间的t值为4.144,说明对软件缺陷的影响具有重要作用,因此要想提高软件质量,软件的研制时间需要更加严格地得到保证。在今后的工作中应重点关注软件研制周期的满足情况,同时尽量提高软件开发人员的工作能力。

(4)软件开发人员经验的t值为3.333,一方面说明开发人员的经验对软件缺陷的生成很重要;另一方面说明作为同一组织的开发人员,彼此之间的能力水平差距较大,相互沟通学习不足,应在今后的工作中加强不同项目组软件开发人员的交流,使能力水平达到一致提高。

(5)通过残差平方和R2不为1,可以获知此次试验分析中存在被遗漏的生成因素,可能包括了之前提到的团队协调能力、人员心理因素等。由此影响了此次分析的结果。因此应在今后的软件研制过程中仔细分析研究可能的未知生成要素,并对其进行量化分析。

[1] 王俊杰,沈湘衡,张 波,等.环境参数与状态参数融合的测试用例集约简方法[J].光学精密工程,2009,17(7):1678-1685.

[2] 聂林波,刘孟仁.软件缺陷分类的研究[J].计算机应用研究,2004,21(6):84-86.

[3] 陈 媛,沈湘衡,王安邦,等.似然关系模型在航天软件缺陷预测中的应用[J].光学精密工程,2013,21(7):1865-1872.

[4] 陆永忠,宋骏礼,谷希谦,等.基于行为的软件测试过程模型及其应用研究[J].计算机应用,2007,27(5):1238-1240.

[5] 刘 逻,郭立红,方艳超,等.系统级软件可靠性屋在运行时间框架模块上的应用[J].光学精密工程, 2014,22(3):787-796.

[6]MäntyläMV,ItkonenJ.Howaresoftwaredefectsfound?Theroleofimplicitdefectdetection,individualresponsibility,documents,andknowledge[J].InformationandSoftwareTechnology,2014,56:1597-1612.

[7]MaYing,ZhuShunzhi,QinKe,etal.Combiningtherequirementinformationforsoftwaredefectestimationindesigntime[J].InformationProcessingLetters,2014,114(9):469-474.

[8]QinLei,ZhangHe,HuangFuqun,etal.Classificationofairon-boardsoftwarecodedefectsandinvestigations[J].ProcediaEngineering,2011,15:3577-3583.

[9] 刘子宜,刘 畅,郑 军,等.基于缺陷的软件测试性评估方法分析[J].计算机工程与设计,2011,32(5):1714-1717.

[10] 王 青,伍书剑,李明树.软件缺陷预测技术[J].软件学报,2008,19(7):1565-1580.

[11]KoruAG,ZhangDongsong,EmamK,etal.Aninvestigationintothefunctionalformofthesize-defectrelationshipforsoftwaremodules[J].IEEETransactionsonSoftwareEngineering,2009,35(2):293-304.

[12] 王红园,郭永飞,姬 琪.面向需求覆盖的航天软件测试用例优化方法[J].光学精密工程,2014,22(1):228-234.

[13]MarceloC,AudrisM,JeffreyA,etal.Softwaredependencies,workdependencies,andtheirimpactonfailures[J].IEEETransactionsonSoftwareEngineering,2009,35(6):864-878.

[14] 王惠文,孟 洁.多元线性回归的预测建模方法[J].北京航空航天大学学报,2007,33(4):500-504.

Analysis of Forming Factors in Software Defect

HA Qing-hua,JIANG Rui-kai,LIU Luo

(Changchun Institute of Optics,Fine Mechanics and Physics,Chinese Academy of Sciences,Changchun 130033,China)

Software defects is an important basis for software quality evaluation,so it is necessary to thoroughly and deeply research on it.However the reasons rising software defects are too complicated to identify.In this paper,for analyzing the reasons for the generation of software defects and the methods of finding defects,based on linear fitting method of multiple linear regression,study the effects of software defects from the tested object,developers and testers,testing strength and so on.First,5 factors were selected to build analysis model.Second,the regression equation was obtained by analyzing the data and the factors degree of influence on software defects generating were determined.Finally,by analyzing thetvalue,itisfoundthatthestrengthoftimeisthemostsignificantfactorsandthecomplexityofsoftwareanddevelopersexperiencealsohaveimportantinfluenceinsoftwaredefectgeneration.

software defect;forming factor;software size;software complexity;multiple linear regression

2015-01-04

2015-05-07

时间:2016-01-04

国家“863”高技术发展计划项目(2011AA7031024G)

哈清华(1983-),男(回族),助理研究员,硕士,研究方向为嵌入式软件、软件测试。

http://www.cnki.net/kcms/detail/61.1450.TP.20160104.1607.062.html

TP

A

1673-629X(2016)01-0001-05

10.3969/j.issn.1673-629X.2016.01.001

猜你喜欢
测试人员开发人员软件测试
软件测试方向人才培养“1+X”融合研究
论职务犯罪侦查中测谎技术的应用与完善*
基于OBE的软件测试课程教学改革探索
航天软件测试模型构建与应用
Semtech发布LoRa Basics 以加速物联网应用
EXCEL和VBA实现软件测试记录管理
浅析软件测试中的心理学应用
绿植防辐射只是个传说,是真的吗?
后悔了?教你隐藏开发人员选项
三星SMI扩展Java论坛 开发人员可用母语