楊貞祥,趙興奮,賀虎林
(蘇州桑泰海洋儀器研發(fā)有限責(zé)任公司,江蘇 蘇州 215125)
基于歷史數(shù)據(jù)的軟件測(cè)試數(shù)據(jù)統(tǒng)計(jì)分析研究
楊貞祥,趙興奮,賀虎林
(蘇州桑泰海洋儀器研發(fā)有限責(zé)任公司,江蘇 蘇州 215125)
從大數(shù)據(jù)的角度,利用軟件測(cè)試歷史數(shù)據(jù),分析和研究軟件開(kāi)發(fā)及測(cè)試過(guò)程,為軟件質(zhì)量保證和項(xiàng)目管理及組織能力建設(shè)提供了新的思路。在組織內(nèi)部建立測(cè)試數(shù)據(jù)收集機(jī)制,對(duì)軟件測(cè)試相關(guān)數(shù)據(jù)進(jìn)行收集,建立數(shù)據(jù)分析模型,從軟件開(kāi)發(fā)過(guò)程、軟件測(cè)試過(guò)程、軟件缺陷數(shù)據(jù)等方面對(duì)測(cè)試數(shù)據(jù)進(jìn)行分析,獲得多個(gè)具有實(shí)際意義的量化指標(biāo),將此指標(biāo)反饋到軟件開(kāi)發(fā)和軟件測(cè)試及項(xiàng)目管理等過(guò)程中,顯著提高了軟件產(chǎn)品質(zhì)量及工作效率,降低了過(guò)程風(fēng)險(xiǎn),提高了組織市場(chǎng)競(jìng)爭(zhēng)能力。
軟件測(cè)試;測(cè)試歷史數(shù)據(jù);數(shù)據(jù)統(tǒng)計(jì)分析
技術(shù)高度發(fā)展的結(jié)果必然是各行業(yè)及行業(yè)內(nèi)精細(xì)化的社會(huì)分工。在軟件行業(yè)表現(xiàn)為計(jì)算機(jī)技術(shù)與其他行業(yè)相結(jié)合,向?qū)I(yè)化發(fā)展,意味著每個(gè)軟件開(kāi)發(fā)組織開(kāi)發(fā)的軟件越來(lái)越具備系列化、繼承性的特點(diǎn),這一重要特征使得針對(duì)軟件測(cè)試歷史數(shù)據(jù)的數(shù)據(jù)分析具有了重要意義。楊旭等人將數(shù)據(jù)分析定義為:“數(shù)據(jù)分析是指用適當(dāng)?shù)慕y(tǒng)計(jì)分析方法對(duì)收集來(lái)的大量數(shù)據(jù)進(jìn)行分析,為提取有用信息和形成結(jié)論而對(duì)數(shù)據(jù)加以詳細(xì)研究和概括總結(jié)的過(guò)程”[1]。軟件測(cè)試是最主要的軟件質(zhì)量保證手段[2-3],研究者們?cè)跍y(cè)試過(guò)程改進(jìn)[4]、建立評(píng)估基準(zhǔn)[5]及度量理論研究[6]方面已經(jīng)進(jìn)行了深入研究。但這些研究或重點(diǎn)研究測(cè)試過(guò)程和技術(shù)、或傾向于理論研究,而對(duì)軟件測(cè)試歷史數(shù)據(jù)進(jìn)行分析研究[7],則能夠從軟件開(kāi)發(fā)和測(cè)試結(jié)果入手,從問(wèn)題現(xiàn)象分析問(wèn)題原因,有針對(duì)性地改進(jìn)軟件開(kāi)發(fā)、軟件測(cè)試、項(xiàng)目管理等過(guò)程,從而提高軟件質(zhì)量。由于該研究過(guò)程針對(duì)每個(gè)組織自身的實(shí)際問(wèn)題,故在具體實(shí)施中具有很強(qiáng)的可操作性。
數(shù)據(jù)分析離不開(kāi)數(shù)據(jù),而要收集具有分析價(jià)值的測(cè)試數(shù)據(jù),需要構(gòu)建測(cè)試數(shù)據(jù)收集系統(tǒng),包括測(cè)試數(shù)據(jù)庫(kù)的物理架構(gòu)和測(cè)試數(shù)據(jù)邏輯存儲(chǔ)結(jié)構(gòu)兩方面。
1.1 軟件測(cè)試數(shù)據(jù)庫(kù)系統(tǒng)
軟件測(cè)試數(shù)據(jù)存儲(chǔ)系統(tǒng)作為軟件測(cè)試管理系統(tǒng)的一部分,可以單獨(dú)架構(gòu),也可以作為項(xiàng)目配置管理系統(tǒng)的一部分,架構(gòu)在項(xiàng)目配置管理系統(tǒng)上。為了便于管理和運(yùn)行,該系統(tǒng)采用B/S架構(gòu),部署在局域網(wǎng)上,考慮到項(xiàng)目數(shù)據(jù)安全性,該局域網(wǎng)與互聯(lián)網(wǎng)物理隔離,在系統(tǒng)中配備唯一的數(shù)據(jù)導(dǎo)入和導(dǎo)出終端。系統(tǒng)架構(gòu)圖如圖1所示。
圖1 測(cè)試數(shù)據(jù)庫(kù)系統(tǒng)架構(gòu)
圖1中,測(cè)試人員在測(cè)試終端機(jī)上上傳測(cè)試數(shù)據(jù),存儲(chǔ)到測(cè)試數(shù)據(jù)存儲(chǔ)服務(wù)器上,數(shù)據(jù)處理服務(wù)器與存儲(chǔ)服務(wù)器及用戶進(jìn)行交互,運(yùn)行自動(dòng)化測(cè)試系統(tǒng)等處理操作。測(cè)試數(shù)據(jù)備份機(jī)存儲(chǔ)測(cè)試歷史數(shù)據(jù),并通過(guò)備份方式保證數(shù)據(jù)安全。
1.2 測(cè)試數(shù)據(jù)邏輯存儲(chǔ)結(jié)構(gòu)
為了有效收集數(shù)據(jù),對(duì)數(shù)據(jù)表的結(jié)構(gòu)進(jìn)行了設(shè)計(jì),如圖2所示。
圖2中測(cè)試用例表存儲(chǔ)了需要分析的基礎(chǔ)數(shù)據(jù),在數(shù)據(jù)庫(kù)中按照項(xiàng)目代號(hào)(或被測(cè)件標(biāo)識(shí))分類存儲(chǔ)。人員信息表中包括了開(kāi)發(fā)人員信息和測(cè)試人員信息,作為人員工作分析的一部分,將在下一節(jié)描述。問(wèn)題分類表、開(kāi)發(fā)人員分類表、測(cè)試人員分類表及被測(cè)軟件分類表則根據(jù)檢索要求,在整個(gè)測(cè)試數(shù)據(jù)庫(kù)范圍進(jìn)行信息檢索,給出相應(yīng)的視圖,以便進(jìn)一步分析。
圖2 測(cè)試數(shù)據(jù)存儲(chǔ)結(jié)構(gòu)
2.1 被測(cè)試軟件數(shù)據(jù)集分析
基于被測(cè)試軟件數(shù)據(jù)進(jìn)行分析,獲取相應(yīng)指標(biāo),對(duì)相似類別軟件或模塊進(jìn)行結(jié)果對(duì)照,得到分析結(jié)論。
(1)軟件可測(cè)度
軟件可測(cè)度用同等難度系數(shù)下測(cè)試用例密度與平均用例密度差來(lái)反映。軟件可測(cè)度計(jì)算公式如下:
(1)
可測(cè)度值大于零,表示該項(xiàng)目用例密度高于平均密度,軟件可測(cè)試性較好,反之,則該項(xiàng)目用例密度小于平均密度,軟件可測(cè)試性較差。正常情況下,可測(cè)度值應(yīng)該是在零值上下波動(dòng),波動(dòng)幅度不得超過(guò)平均用例密度的1/2。若上下波動(dòng)幅度超過(guò)限定范圍,則有可能是該項(xiàng)目測(cè)試用例設(shè)計(jì)粒度太大或者太小,或者對(duì)該項(xiàng)目的難度等級(jí)估計(jì)不準(zhǔn)確,使得公式(1)中的平均用例密度值選取不匹配。
(2)模塊復(fù)用率
模塊復(fù)用率可以通過(guò)統(tǒng)計(jì)各個(gè)項(xiàng)目對(duì)模塊的復(fù)用次數(shù)獲得。模塊復(fù)用率反映模塊或函數(shù)在組織內(nèi)部的復(fù)用情況。由于同一個(gè)組織內(nèi)部產(chǎn)品的相似性及系列性,使得核心模塊復(fù)用的概率較高,而復(fù)用模塊一般比新開(kāi)發(fā)模塊具有更高的軟件可靠性和算法成熟性,故模塊復(fù)用率能夠間接反映軟件質(zhì)量情況。另一方面,對(duì)復(fù)用模塊的測(cè)試一般會(huì)復(fù)用以前的測(cè)試用例,減少測(cè)試難度和測(cè)試工作量。從而測(cè)試模塊復(fù)用率越高,軟件模塊越穩(wěn)定,軟件測(cè)試工作量越小。
2.2 測(cè)試用例數(shù)據(jù)集分析
基于測(cè)試用例數(shù)據(jù)的分析包括測(cè)試用例分布分析、用例通過(guò)率分析、用例效率分析。
(1)測(cè)試用例分布分析
測(cè)試用例分布分析指對(duì)測(cè)試用例在軟件各模塊中的分布情況進(jìn)行分析。根據(jù)軟件測(cè)試經(jīng)驗(yàn),測(cè)試用例數(shù)隨著軟件模塊復(fù)雜度的增加而增加,而模塊中存在缺陷的概率也隨著模塊復(fù)雜度的增加而增大。軟件測(cè)試用例密度計(jì)算公式定義為:
(2)
若要計(jì)算模塊的測(cè)試用例密度,則軟件代碼行數(shù)是指該模塊行數(shù);若要計(jì)算整個(gè)軟件的測(cè)試用例密度,則軟件代碼行數(shù)是指整個(gè)軟件代碼行數(shù)。在同一個(gè)項(xiàng)目中,對(duì)各模塊測(cè)試用例密度進(jìn)行比較,從而識(shí)別關(guān)鍵模塊,采取措施提高軟件質(zhì)量。也可以進(jìn)行同難度系數(shù)下項(xiàng)目間的整體用例密度比較,獲得對(duì)各項(xiàng)目設(shè)計(jì)質(zhì)量的指標(biāo)值。
(2)用例通過(guò)率分析
測(cè)試用例通過(guò)率定義為:
(3)
若剔除測(cè)試誤差、設(shè)計(jì)和測(cè)試人員水平因素、測(cè)試環(huán)境因素,測(cè)試用例通過(guò)率可以用來(lái)表征軟件的成熟性。反過(guò)來(lái),測(cè)試用例通過(guò)率也可以用來(lái)對(duì)設(shè)計(jì)和測(cè)試情況進(jìn)行估計(jì),若一次測(cè)試的測(cè)試用例通過(guò)率顯著低于公司同類軟件平均水平,則需要深入分析該軟件設(shè)計(jì)人員的設(shè)計(jì)是否合理、測(cè)試人員的測(cè)試設(shè)計(jì)和執(zhí)行是否正?;蛘邷y(cè)試環(huán)境差異是否對(duì)測(cè)試結(jié)果造成嚴(yán)重影響等。
(3)用例效率分析
測(cè)試用例效率計(jì)算公式定義為:
(4)
上式中復(fù)雜度系數(shù)根據(jù)軟件邏輯復(fù)雜度的不同而不同,取值范圍大于0且小于1。對(duì)于軟件測(cè)試來(lái)說(shuō),測(cè)試覆蓋率為基本要求,在保證測(cè)試覆蓋率的前提下,測(cè)試用例效率能夠表征測(cè)試工作效率和測(cè)試用例設(shè)計(jì)水平。在實(shí)際使用時(shí),該指標(biāo)需要與測(cè)試用例粒度保持平衡,不能為了追求高測(cè)試用例效率而增大測(cè)試用例顆粒度,從而使得測(cè)試用例界限不合理,這樣的測(cè)試用例反而會(huì)降低測(cè)試執(zhí)行效率。
2.3 缺陷數(shù)據(jù)集分析
(1)缺陷在軟件模塊中的分布
軟件缺陷具有集群效應(yīng),即出現(xiàn)缺陷的模塊或程序段,再次發(fā)現(xiàn)軟件缺陷的可能性越大。據(jù)此,在軟件質(zhì)量分析和風(fēng)險(xiǎn)應(yīng)對(duì)方案制定過(guò)程中,使用軟件缺陷分布,能夠有效預(yù)防缺陷再次發(fā)生,提高軟件質(zhì)量。
(2)組織的缺陷-能力曲線
將組織數(shù)據(jù)庫(kù)中的缺陷按照不同類別進(jìn)行統(tǒng)計(jì),根據(jù)不同類型缺陷分布情況,可以得到缺陷分布曲線,相應(yīng)地,根據(jù)缺陷分布曲線獲得組織軟件能力曲線。由于各個(gè)類別軟件的業(yè)務(wù)量有差別,因此對(duì)于統(tǒng)計(jì)獲得的缺陷數(shù)據(jù)應(yīng)該按照相應(yīng)類別在整個(gè)工作量中的占比進(jìn)行加權(quán),獲得最終的權(quán)衡缺陷數(shù)。缺陷分布曲線與軟件能力曲線關(guān)系圖如圖3所示。
圖3 類別缺陷-能力曲線
圖3中橫坐標(biāo)的類別為組織能力范圍,左側(cè)坐標(biāo)為缺陷指數(shù)刻度值,右側(cè)坐標(biāo)為能力曲線刻度值。實(shí)線為類別缺陷指數(shù)曲線,虛線則表示組織在類別能力指數(shù)曲線。缺陷-能力曲線圖說(shuō)明缺陷指數(shù)越大,則給類別軟件缺陷越多,軟件質(zhì)量越差,表明組織在該類別軟件的開(kāi)發(fā)能力越差。
2.4 開(kāi)發(fā)人員數(shù)據(jù)集分析
從軟件測(cè)試角度,使用測(cè)試數(shù)據(jù)庫(kù)中積累的數(shù)據(jù)資源對(duì)開(kāi)發(fā)人員數(shù)據(jù)進(jìn)行分析,能夠獲得軟件開(kāi)發(fā)人員開(kāi)發(fā)質(zhì)量因子指標(biāo)。該指標(biāo)計(jì)算公式定義為:
(5)
上式中工作量以代碼行為單位,表示每個(gè)項(xiàng)目中該開(kāi)發(fā)人員編寫的代碼行數(shù),難度系數(shù)是對(duì)該部分工作復(fù)雜度的評(píng)估值,缺陷總數(shù)指在測(cè)試數(shù)據(jù)庫(kù)中統(tǒng)計(jì)的該代碼范圍內(nèi)的缺陷數(shù)量。
對(duì)于同一個(gè)軟件開(kāi)發(fā)組織來(lái)說(shuō),每個(gè)開(kāi)發(fā)人員的質(zhì)量因子趨勢(shì)應(yīng)該是趨于相同的,若分析后發(fā)現(xiàn)相同組織內(nèi)部開(kāi)發(fā)人員質(zhì)量因子曲線趨勢(shì)差別很大,則說(shuō)明該組織在溝通、培訓(xùn)及交流學(xué)習(xí)中出現(xiàn)了問(wèn)題,組員之間沒(méi)有共享技術(shù)和經(jīng)驗(yàn),這對(duì)組織發(fā)展是不利的。
2.5 測(cè)試人員數(shù)據(jù)集分析
從效率和質(zhì)量的角度,根據(jù)測(cè)試數(shù)據(jù)庫(kù)中的歷史數(shù)據(jù),對(duì)測(cè)試人員工作進(jìn)行量化。本文從測(cè)試效率和漏測(cè)率兩方面進(jìn)行描述。
(1)測(cè)試效率
測(cè)試效率可以用來(lái)對(duì)單個(gè)軟件測(cè)試人員一段時(shí)間內(nèi)的工作效率進(jìn)行衡量。測(cè)試效率計(jì)算公式定義為:
(6)
上式中N代表該測(cè)試人員在測(cè)試數(shù)據(jù)庫(kù)中的任務(wù)數(shù)量;測(cè)試代碼行數(shù)為第n個(gè)任務(wù)的代碼行數(shù);難度系數(shù)為該任務(wù)的難度估計(jì)值;測(cè)試周期以天為單位,在公式中換算到小時(shí)數(shù)。
(2)缺陷漏測(cè)率
作為對(duì)軟件測(cè)試質(zhì)量的度量,項(xiàng)目經(jīng)理可以通過(guò)缺陷漏測(cè)率指標(biāo)對(duì)產(chǎn)品質(zhì)量進(jìn)行監(jiān)控,若某個(gè)測(cè)試人員一段時(shí)間的缺陷漏測(cè)率指標(biāo)高于平均水平,則需要分析具體原因并采取相應(yīng)措施。
(7)
上式中N表示測(cè)試人員總數(shù),工作量占比表示該測(cè)試人員在整個(gè)測(cè)試組織中的工作比重值。
軟件測(cè)試是保證軟件質(zhì)量的主要手段,軟件測(cè)試能夠有效降低項(xiàng)目風(fēng)險(xiǎn),故在軟件行業(yè)中越來(lái)越受到重視。軟件測(cè)試數(shù)據(jù)也成為軟件開(kāi)發(fā)組織重要的過(guò)程資產(chǎn),建立有效的測(cè)試數(shù)據(jù)收集數(shù)據(jù)庫(kù),對(duì)測(cè)試過(guò)程和測(cè)試結(jié)果數(shù)據(jù)進(jìn)行有效收集,并在軟件測(cè)試歷史數(shù)據(jù)基礎(chǔ)上對(duì)數(shù)據(jù)進(jìn)行分析,獲得多個(gè)具有重要意義的量化指標(biāo),用其分析和研究軟件開(kāi)發(fā)、測(cè)試、項(xiàng)目管理等過(guò)程,以求發(fā)現(xiàn)問(wèn)題并解決問(wèn)題,使得組織能力獲得提高?;谲浖y(cè)試歷史數(shù)據(jù)的分析統(tǒng)計(jì)方法在軟件項(xiàng)目實(shí)施過(guò)程中具有一定的實(shí)用價(jià)值。
[1] 楊旭,湯海京.?dāng)?shù)據(jù)科學(xué)導(dǎo)論[M].北京:北京理工大學(xué)出版社,2014.
[2] 鄭人杰.計(jì)算機(jī)軟件測(cè)試技術(shù)[M]. 北京:清華大學(xué)出版社,1992.
[3] 陳開(kāi)顏,王希武,孫會(huì)珺,等.軟件質(zhì)量與軟件測(cè)試[J].河北省科學(xué)院學(xué)報(bào),2004,21(2):18-22.
[4] EDWARD K.軟件測(cè)試過(guò)程改進(jìn)[M].李新華,譯.北京:機(jī)械工業(yè)出版社,2003.
[5] JONES C.軟件評(píng)估、基準(zhǔn)測(cè)試與最佳實(shí)踐[M].韓柯,等,譯.北京:機(jī)械工業(yè)出版社,2003.
[6] 邢大紅.面向?qū)ο筌浖亩攘繉W(xué)理論與工具實(shí)現(xiàn)[D].合肥:合肥工業(yè)大學(xué),1998.
[7] 王悠,羅燕京,易福華,等.基于用例的軟件復(fù)雜度估算及應(yīng)用[J].計(jì)算機(jī)技術(shù)與發(fā)展,2007,17(7):196-199.
Research on data statistics analysis based on historical data of software testing
Yang Zhenxiang, Zhao Xingfen, He Hulin
(Suzhou Soundtech Oceanic Instrument Ltd.,Suzhou 215125, China)
From the point of big data, the historical data of software testing is used to analysis and research on the process of software development and software testing. It provides a new idea for software quality assurance, project management and organizational capacity building. Software testing data collection mechanism is established in enterprise, collecting the relevant data of software testing and establishing data analysis statistical model. These data are analyzed from the aspects of software development process, testing process and defect distribution for quantitative indicators with practical significance. Then these indicators are fed back to the implementation of software engineering. It can significantly improve the quality of software products and work efficiently, and process risks can be reduced. In summary, it can improve the market competitiveness of enterprises.
software test;historical data of software testing; statistical analysis of data
TP301
A
10.19358/j.issn.1674- 7720.2017.04.007
楊貞祥,趙興奮,賀虎林.基于歷史數(shù)據(jù)的軟件測(cè)試數(shù)據(jù)統(tǒng)計(jì)分析研究[J].微型機(jī)與應(yīng)用,2017,36(4):22-24,28.
2016-09-22)
楊貞祥(1982-),男,碩士,工程師,主要研究方向:軟件測(cè)試質(zhì)量分析、軟件自動(dòng)化測(cè)試。
趙興奮(1965-),男,工程師,主要研究方向:聲納信號(hào)處理及軟件實(shí)現(xiàn)、軟件質(zhì)量管理。
賀虎林(1982-),男,工程師,主要研究方向:聲納信號(hào)分析及軟件實(shí)現(xiàn)、軟件質(zhì)量管理。