哈清華,姜瑞凱,劉 邏
(中國(guó)科學(xué)院 長(zhǎng)春光學(xué)精密機(jī)械與物理研究所,吉林 長(zhǎng)春 130033)
軟件缺陷的生成因素分析
哈清華,姜瑞凱,劉 邏
(中國(guó)科學(xué)院 長(zhǎng)春光學(xué)精密機(jī)械與物理研究所,吉林 長(zhǎng)春 130033)
軟件缺陷是軟件質(zhì)量評(píng)價(jià)的重要依據(jù),需要全面而深入的研究與分析,而同時(shí)導(dǎo)致軟件缺陷形成的因素卻多種多樣,難以確定軟件缺陷的生成原因。因此,為了分析軟件缺陷的生成原因以及發(fā)現(xiàn)缺陷的方法,文中研究了基于多元線性回歸的線性擬合方法,從被測(cè)對(duì)象、開(kāi)發(fā)與測(cè)試人員、測(cè)試強(qiáng)度等方面研究對(duì)軟件缺陷的影響。首先對(duì)軟件缺陷的生成因素進(jìn)行分析,并選定5個(gè)因素作為分析變量,建立分析模型。之后通過(guò)數(shù)據(jù)分析獲得了回歸方程,并依據(jù)方程確定各因素對(duì)軟件缺陷生成的影響程度。通過(guò)分析獲得的各因素的t檢驗(yàn)值可知,測(cè)試時(shí)間對(duì)軟件缺陷的生成影響最大,而軟件復(fù)雜度和開(kāi)發(fā)人員經(jīng)驗(yàn)也對(duì)軟件缺陷的生成具有較大的影響。
軟件缺陷;生成因素;軟件規(guī)模;軟件復(fù)雜度;多元線性回歸
隨著軟件的不斷發(fā)展,一方面,軟件的數(shù)量與日俱增,軟件的復(fù)雜性呈指數(shù)增長(zhǎng),其應(yīng)用領(lǐng)域不斷拓展,重要性越發(fā)為大家所關(guān)注[1]。另一方面,軟件中隱藏的缺陷也越發(fā)地難以發(fā)現(xiàn),一旦在使用中出現(xiàn)故障,其帶來(lái)的后果往往難以估計(jì)[2]。目前公認(rèn)的提高軟件質(zhì)量的重要手段是軟件測(cè)試,通過(guò)及時(shí)而有效的測(cè)試活動(dòng),可以及時(shí)發(fā)現(xiàn)軟件的缺陷,減少后期使用的隱患。因此,軟件測(cè)試已是軟件開(kāi)發(fā)過(guò)程的重要一環(huán)[3],越來(lái)越多的組織開(kāi)始建立自己獨(dú)立的軟件測(cè)試團(tuán)隊(duì)。然而,軟件測(cè)試的效果卻大相徑庭。由不同的人員對(duì)相同的被測(cè)件進(jìn)行測(cè)試,其被測(cè)出的軟件缺陷數(shù)量和重要等級(jí)會(huì)有很大的不同,甚至同一名測(cè)試人員對(duì)同一個(gè)被測(cè)件做多次測(cè)試,其結(jié)果也會(huì)不盡相同[4-5]。另外,軟件測(cè)試還是一個(gè)費(fèi)時(shí)、費(fèi)力及成本高昂的活動(dòng)。因此深入地分析軟件缺陷的生成因素,對(duì)預(yù)防缺陷以及發(fā)現(xiàn)缺陷都有重要的現(xiàn)實(shí)意義[6]。一方面,通過(guò)對(duì)各個(gè)生成因素的分析,可以在軟件的開(kāi)發(fā)階段加以考慮,進(jìn)而預(yù)防缺陷的出現(xiàn)[7-8];另一方面,通過(guò)對(duì)各生成因素的數(shù)據(jù)分析,可以進(jìn)一步進(jìn)行定向數(shù)據(jù)分析和挖掘,如實(shí)現(xiàn)基于軟件缺陷的軟件測(cè)試性分析以及基于統(tǒng)計(jì)分析的軟件缺陷預(yù)測(cè)[9-10]等。文中研究的內(nèi)容就是想運(yùn)用線性擬合算法,對(duì)各項(xiàng)軟件缺陷的可能生成因素進(jìn)行分析,從定量的角度來(lái)確定各要素對(duì)軟件缺陷的影響。
生成軟件缺陷的因素有很多,文中從對(duì)軟件缺陷生成的重要性和數(shù)據(jù)量化的可行性考慮,主要選取軟件規(guī)模、軟件復(fù)雜度、開(kāi)發(fā)人員的經(jīng)驗(yàn)水平、測(cè)試人員的經(jīng)驗(yàn)水平、軟件研制周期的長(zhǎng)度共五個(gè)生成因素加以分析。
1.1 軟件規(guī)模
依據(jù)經(jīng)驗(yàn),軟件的規(guī)模與其隱含的缺陷數(shù)量成正比例關(guān)系,即軟件越大,其中的缺陷越多[11]。同時(shí)隨著軟件缺陷數(shù)量的增加,其被遺漏的缺陷數(shù)量也會(huì)隨之增加。因此,測(cè)試難度和測(cè)試成本也會(huì)隨之增加。在此次分析中,將被測(cè)軟件的源代碼行數(shù)L作為軟件規(guī)模的度量變量加以分析。
1.2 被測(cè)軟件的復(fù)雜度
除代碼數(shù)量外,被測(cè)軟件的復(fù)雜度對(duì)軟件缺陷也有很大的影響。軟件復(fù)雜度越高,其設(shè)計(jì)難度和測(cè)試難度均隨之增加[12]。因?yàn)殡S著復(fù)雜度的提高,開(kāi)發(fā)人員容易在設(shè)計(jì)時(shí)忽略一些特殊情況的出現(xiàn)而埋下隱患,同時(shí)測(cè)試人員也會(huì)難以分析軟件內(nèi)部的代碼結(jié)構(gòu)關(guān)系,進(jìn)而導(dǎo)致測(cè)試的不充分。因此軟件越復(fù)雜,越容易導(dǎo)致軟件缺陷的出現(xiàn),已有相關(guān)的實(shí)驗(yàn)結(jié)論對(duì)這一觀點(diǎn)進(jìn)行支撐[13]。在此次分析中,選取被測(cè)軟件的圈復(fù)雜度C作為度量變量加以分析。
1.3 開(kāi)發(fā)人員的經(jīng)驗(yàn)水平
開(kāi)發(fā)人員的工作經(jīng)驗(yàn)對(duì)軟件缺陷有著直接的影響。一個(gè)有經(jīng)驗(yàn)的開(kāi)發(fā)人員其設(shè)計(jì)的軟件結(jié)構(gòu)更加合理,代碼更加簡(jiǎn)練,易于理解和分析。因此其開(kāi)發(fā)的軟件的缺陷數(shù)量也會(huì)更少,一旦出現(xiàn)也更容易被改正。在此次分析中,開(kāi)發(fā)人員經(jīng)驗(yàn)水平D通過(guò)開(kāi)發(fā)人員的工作年限和級(jí)別系數(shù)的運(yùn)算來(lái)獲得,作為經(jīng)驗(yàn)水平的度量變量。
1.4 測(cè)試人員的經(jīng)驗(yàn)水平
測(cè)試人員的工作經(jīng)驗(yàn)與軟件缺陷之間也有著重要的影響。有經(jīng)驗(yàn)的測(cè)試人員其對(duì)被測(cè)軟件的理解更加深入,設(shè)計(jì)的用例更加有效。因此其發(fā)現(xiàn)缺陷的效率也更高。在此次分析中,與開(kāi)發(fā)人員的量化分析類似,測(cè)試人員經(jīng)驗(yàn)水平K通過(guò)測(cè)試人員的工作年限和級(jí)別系數(shù)的運(yùn)算來(lái)獲得,作為經(jīng)驗(yàn)水平的度量變量。
1.5 研制周期系數(shù)
業(yè)內(nèi)早已達(dá)成共識(shí),即軟件研制時(shí)間的長(zhǎng)短對(duì)軟件質(zhì)量有著非常重要的影響。然而,由于軟件的研制往往受到硬件條件、總體研制周期等的制約,軟件研發(fā)周期總被人為的縮短也已是一個(gè)普遍現(xiàn)象。因此,研制周期的壓縮程度對(duì)軟件缺陷的影響也是一個(gè)需要重點(diǎn)考量的因素。在此次試驗(yàn)中,使用變量T作為研制周期長(zhǎng)度的度量。
除了上述各因素外,還有一些其他的軟件缺陷生成因素,如軟件研制隊(duì)伍的整體組織協(xié)調(diào)情況,一個(gè)高效的團(tuán)隊(duì)其開(kāi)發(fā)的產(chǎn)品也會(huì)有較高的質(zhì)量;研制人員的心理活動(dòng)情況也對(duì)軟件質(zhì)量有影響,如一個(gè)已經(jīng)連續(xù)進(jìn)行高強(qiáng)度工作數(shù)周的人員其工作效率也將必定下降,對(duì)產(chǎn)品的質(zhì)量也將產(chǎn)生影響。但由于以上生成因素尚未找到量化標(biāo)準(zhǔn)用以定量描述,同時(shí)這些生成因素往往屬于主觀條件不屬于軟件自身的客觀屬性,通過(guò)一定的數(shù)據(jù)分析應(yīng)可以排除以上因素對(duì)結(jié)果的影響。因此以上生成因素不列入此次分析。
2.1 建立分析模型
經(jīng)過(guò)以上內(nèi)容的分析,確定使用軟件規(guī)模、軟件復(fù)雜度、開(kāi)發(fā)人員經(jīng)驗(yàn)水平、測(cè)試人員經(jīng)驗(yàn)水平和研制周期五個(gè)變量來(lái)建立軟件缺陷分析的多元線性回歸方程[14]:
N(缺陷值)=a+bL+cC+dD+eK+fT
其中,a為常數(shù)項(xiàng);b、c、d、e、f分別為對(duì)應(yīng)變量的系數(shù);
L—代碼行數(shù):該數(shù)據(jù)統(tǒng)一使用代碼分析工具Testbed8.1.0進(jìn)行分析獲得。
C—代碼圈復(fù)雜度:該數(shù)據(jù)統(tǒng)一使用代碼分析工具Testbed8.1.0進(jìn)行分析獲得。
D—開(kāi)發(fā)人員經(jīng)驗(yàn)水平:該數(shù)據(jù)用開(kāi)發(fā)人員的工作年限乘以級(jí)別系數(shù)獲得,D=Y×S,其中,Y表示開(kāi)發(fā)人員參加軟件開(kāi)發(fā)工作的時(shí)間,S為級(jí)別系數(shù)(研究實(shí)習(xí)員1、助理研究員1.2、副研究員1.4、研究員1.6)。
K—測(cè)試人員經(jīng)驗(yàn)水平:該數(shù)據(jù)用測(cè)試人員的工作年限乘以職稱系數(shù)獲得,K=Y×S,其中,Y表示測(cè)試人員參加軟件測(cè)試工作的時(shí)間,S為級(jí)別系數(shù)(同上)。
T—研制周期系數(shù):表示研制周期的利用情況。T=R/P,其中,R表示實(shí)際的軟件研制時(shí)間(通過(guò)項(xiàng)目歷史記錄獲得);P為理論上計(jì)劃使用的研制時(shí)間(計(jì)劃使用的研制時(shí)間是以項(xiàng)目規(guī)劃時(shí)由專家依據(jù)經(jīng)驗(yàn)估計(jì)的約定研制時(shí)間為準(zhǔn))。
2.2 使用的數(shù)據(jù)
此次分析使用的數(shù)據(jù)來(lái)自中科院長(zhǎng)春光機(jī)所近幾年來(lái)實(shí)施的嵌入式C語(yǔ)言軟件項(xiàng)目。該組織的配置項(xiàng)測(cè)試由獨(dú)立的測(cè)評(píng)機(jī)構(gòu)完成,具有客觀性和一致性的特征。但部件測(cè)試由開(kāi)發(fā)人員獨(dú)立完成,缺乏客觀性特征。而系統(tǒng)測(cè)試則過(guò)于依賴硬件以及其他外部條件,不具有一致性特征。因此此次試驗(yàn)只選取配置項(xiàng)級(jí)測(cè)試的缺陷數(shù)據(jù),而不考慮部件測(cè)試和系統(tǒng)測(cè)試這兩個(gè)級(jí)別發(fā)現(xiàn)的軟件缺陷。此次分析的數(shù)據(jù)見(jiàn)表1。
表1 軟件缺陷分析樣本數(shù)據(jù)
使用IBM SPSS Statistics19進(jìn)行變量關(guān)系分析,利用散點(diǎn)關(guān)系圖檢查L(zhǎng)、C、D、K、T與N的線性關(guān)系,見(jiàn)圖1。
從圖可以看出,L、C、T和D四個(gè)因素對(duì)N的影響所呈現(xiàn)出來(lái)的線性關(guān)系比較顯著,K的線性關(guān)系則偏弱。整體上五個(gè)因素對(duì)N均具有線性相關(guān)性,因此可按照預(yù)先設(shè)計(jì)的模型,對(duì)數(shù)據(jù)進(jìn)行線性回歸分析,分析各因素對(duì)N的影響程度。
進(jìn)行線性回歸分析后,得到的各變量的標(biāo)準(zhǔn)化相關(guān)系數(shù)及參數(shù)估計(jì)誤差見(jiàn)表2~4所示。
表2 模型匯總表
注:a為預(yù)測(cè)變量:(常量),T,K,L,C,D。
圖1 變量N與變量L、C、D、K、T的線性關(guān)系 表3 Anovab
模型平方和df均方FSig.1回歸4316.6595863.33237.9000.000a殘差546.7082422.779總計(jì)4863.36729
注:a為預(yù)測(cè)變量:(常量),T,K,L,C,D;b為因變量:N。
表4 回歸系數(shù)表
注:a為因變量:N。
通過(guò)表中的分析數(shù)據(jù),可知:
R2為0.888,殘差平方和占總體平方和的11.2%,說(shuō)明樣本對(duì)模型擬合的很好。F值為37.667,遠(yuǎn)遠(yuǎn)大于11,可以認(rèn)為獲得的回歸方程具有可信性。L、C、D、K、T的t檢驗(yàn)值的絕對(duì)值分別為:2.367、1.024、3.333、0.851、4.144。參數(shù)L、D、T的t檢驗(yàn)值大于2,參數(shù)估計(jì)可信,因此這三個(gè)變量具有較好的解釋能力。獲得的最終的回歸方程為:
N=-0.210L-0.093C+0.386D-0.083K+ 0.496T
通過(guò)以上的數(shù)據(jù)分析,對(duì)于生成軟件缺陷的各要素,文中獲得以下幾點(diǎn)結(jié)論。
(1)在五個(gè)生成因素中,軟件規(guī)模、開(kāi)發(fā)人員經(jīng)驗(yàn)和研制周期對(duì)軟件缺陷的影響較大,其中軟件規(guī)模與軟件缺陷成反比例關(guān)系,說(shuō)明軟件規(guī)模越大,其缺陷值將越高。而軟件研制時(shí)間的充分程度和開(kāi)發(fā)人員經(jīng)驗(yàn)與軟件缺陷成正比,即時(shí)間系數(shù)越小,時(shí)間越不充裕,開(kāi)發(fā)人員經(jīng)驗(yàn)越少,軟件缺陷值越高。
(2)軟件復(fù)雜度和測(cè)試人員經(jīng)驗(yàn)水平的t值分別為1.024和0.851,通過(guò)數(shù)據(jù)分析說(shuō)明這兩個(gè)因素對(duì)軟件缺陷的影響較小。其中測(cè)試人員水平影響因素較低可能與采用的數(shù)據(jù)為同一測(cè)試組織有關(guān),測(cè)試人員的水平相對(duì)比較接近。
(3)軟件研制時(shí)間的t值為4.144,說(shuō)明對(duì)軟件缺陷的影響具有重要作用,因此要想提高軟件質(zhì)量,軟件的研制時(shí)間需要更加嚴(yán)格地得到保證。在今后的工作中應(yīng)重點(diǎn)關(guān)注軟件研制周期的滿足情況,同時(shí)盡量提高軟件開(kāi)發(fā)人員的工作能力。
(4)軟件開(kāi)發(fā)人員經(jīng)驗(yàn)的t值為3.333,一方面說(shuō)明開(kāi)發(fā)人員的經(jīng)驗(yàn)對(duì)軟件缺陷的生成很重要;另一方面說(shuō)明作為同一組織的開(kāi)發(fā)人員,彼此之間的能力水平差距較大,相互溝通學(xué)習(xí)不足,應(yīng)在今后的工作中加強(qiáng)不同項(xiàng)目組軟件開(kāi)發(fā)人員的交流,使能力水平達(dá)到一致提高。
(5)通過(guò)殘差平方和R2不為1,可以獲知此次試驗(yàn)分析中存在被遺漏的生成因素,可能包括了之前提到的團(tuán)隊(duì)協(xié)調(diào)能力、人員心理因素等。由此影響了此次分析的結(jié)果。因此應(yīng)在今后的軟件研制過(guò)程中仔細(xì)分析研究可能的未知生成要素,并對(duì)其進(jìn)行量化分析。
[1] 王俊杰,沈湘衡,張 波,等.環(huán)境參數(shù)與狀態(tài)參數(shù)融合的測(cè)試用例集約簡(jiǎn)方法[J].光學(xué)精密工程,2009,17(7):1678-1685.
[2] 聶林波,劉孟仁.軟件缺陷分類的研究[J].計(jì)算機(jī)應(yīng)用研究,2004,21(6):84-86.
[3] 陳 媛,沈湘衡,王安邦,等.似然關(guān)系模型在航天軟件缺陷預(yù)測(cè)中的應(yīng)用[J].光學(xué)精密工程,2013,21(7):1865-1872.
[4] 陸永忠,宋駿禮,谷希謙,等.基于行為的軟件測(cè)試過(guò)程模型及其應(yīng)用研究[J].計(jì)算機(jī)應(yīng)用,2007,27(5):1238-1240.
[5] 劉 邏,郭立紅,方艷超,等.系統(tǒng)級(jí)軟件可靠性屋在運(yùn)行時(shí)間框架模塊上的應(yīng)用[J].光學(xué)精密工程, 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] 劉子宜,劉 暢,鄭 軍,等.基于缺陷的軟件測(cè)試性評(píng)估方法分析[J].計(jì)算機(jī)工程與設(shè)計(jì),2011,32(5):1714-1717.
[10] 王 青,伍書劍,李明樹(shù).軟件缺陷預(yù)測(cè)技術(shù)[J].軟件學(xué)報(bào),2008,19(7):1565-1580.
[11]KoruAG,ZhangDongsong,EmamK,etal.Aninvestigationintothefunctionalformofthesize-defectrelationshipforsoftwaremodules[J].IEEETransactionsonSoftwareEngineering,2009,35(2):293-304.
[12] 王紅園,郭永飛,姬 琪.面向需求覆蓋的航天軟件測(cè)試用例優(yōu)化方法[J].光學(xué)精密工程,2014,22(1):228-234.
[13]MarceloC,AudrisM,JeffreyA,etal.Softwaredependencies,workdependencies,andtheirimpactonfailures[J].IEEETransactionsonSoftwareEngineering,2009,35(6):864-878.
[14] 王惠文,孟 潔.多元線性回歸的預(yù)測(cè)建模方法[J].北京航空航天大學(xué)學(xué)報(bào),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
時(shí)間:2016-01-04
國(guó)家“863”高技術(shù)發(fā)展計(jì)劃項(xiàng)目(2011AA7031024G)
哈清華(1983-),男(回族),助理研究員,碩士,研究方向?yàn)榍度胧杰浖?、軟件測(cè)試。
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