何智濤 晏海華 劉 超
(北京航空航天大學(xué) 計(jì)算機(jī)學(xué)院,北京100191)
軟件缺陷發(fā)現(xiàn)時(shí)序過(guò)程的疊加雙阻尼振蕩模型(ABDOM,Accumulative Bi-Damped Oscillation Model)[1]為軟件測(cè)試過(guò)程的度量和評(píng)估提供了一種新的手段.該模型是一個(gè)可初步描述軟件缺陷發(fā)現(xiàn)時(shí)序過(guò)程的周期性、隨機(jī)振蕩性和阻尼衰減性等基本特征及關(guān)鍵影響因素的數(shù)學(xué)模型.但是,為了能更好描述復(fù)雜的軟件缺陷發(fā)現(xiàn)場(chǎng)景,當(dāng)前的ABDOM模型仍然存在需要改進(jìn)的地方:
1)在現(xiàn)有的ABDOM中,軟件缺陷發(fā)現(xiàn)阻尼a和軟件缺陷發(fā)現(xiàn)周期阻尼b的具體意義尚不很明確,而這些參數(shù)的物理意義和規(guī)范化的取值對(duì)于軟件測(cè)試過(guò)程質(zhì)量的評(píng)估和預(yù)測(cè)有著重要的指導(dǎo)意義.因此,有必要通過(guò)進(jìn)一步的擬合實(shí)驗(yàn)分析,對(duì)參數(shù)a和b的物理意義進(jìn)行深入探討,進(jìn)而討論參數(shù)a和b的規(guī)范化取值.
2)同時(shí)鑒于在測(cè)試工程實(shí)踐中,測(cè)試與開(kāi)發(fā)人員變更、測(cè)試周期調(diào)整等因素的變化均是非連續(xù)的,呈現(xiàn)離散化特征,因此ABDOM中的相關(guān)參數(shù)需要進(jìn)行進(jìn)一步的離散化改進(jìn)來(lái)增強(qiáng)ABDOM對(duì)離散變化的適應(yīng)能力.
3)使用ABDOM模型對(duì)實(shí)際的軟件缺陷發(fā)現(xiàn)過(guò)程進(jìn)行預(yù)測(cè)和評(píng)估是建立ABDOM模型的最終目標(biāo).因此,基于ABDOM參數(shù)規(guī)范化研究成果,有必要開(kāi)展軟件缺陷發(fā)現(xiàn)過(guò)程質(zhì)量評(píng)價(jià)因素研究.
本文將圍繞以上問(wèn)題開(kāi)展研究與實(shí)踐檢驗(yàn).
疊加雙阻尼振蕩模型ABDOM是一種可在一定條件下描述軟件缺陷發(fā)現(xiàn)時(shí)序過(guò)程的數(shù)學(xué)模型.如式(1)所示:
軟件缺陷發(fā)現(xiàn)時(shí)序過(guò)程的特性(時(shí)序性、周期性、衰減性和振蕩性)在ABDOM中得到了較好描述:軟件缺陷發(fā)現(xiàn)的時(shí)序性、周期性和振蕩性通過(guò)sin(t)函數(shù)表達(dá);軟件缺陷發(fā)現(xiàn)數(shù)量和發(fā)現(xiàn)周期的衰減特性通過(guò)指數(shù)函數(shù)et表達(dá).
產(chǎn)生軟件缺陷發(fā)現(xiàn)振蕩特性的影響因素(被測(cè)軟件影響因素、開(kāi)發(fā)過(guò)程影響因素和測(cè)試過(guò)程影響因素)在ABDOM模型中得到反映:Amax,b和τ反映了測(cè)試過(guò)程影響因素,即Amax描述測(cè)試項(xiàng)目組的能力,也側(cè)面反映了軟件測(cè)試資源狀況;τ描述軟件缺陷發(fā)現(xiàn)周期;b用于描述軟件缺陷發(fā)現(xiàn)周期的穩(wěn)定性;Ri描述增量式開(kāi)發(fā)的影響,即新版本引入的代碼規(guī)模;a描述軟件缺陷發(fā)現(xiàn)數(shù)量衰減率,揭示了被測(cè)軟件中發(fā)現(xiàn)軟件缺陷的難易程度和被測(cè)軟件代碼質(zhì)量的影響,也一定程度反映了軟件測(cè)試過(guò)程的質(zhì)量.
在ABDOM中,軟件缺陷發(fā)現(xiàn)阻尼a和軟件缺陷發(fā)現(xiàn)周期阻尼b的物理意義不很明確,鑒于這些參數(shù)對(duì)軟件測(cè)試質(zhì)量預(yù)測(cè)和評(píng)估的重要指導(dǎo)意義,以下將研究軟件缺陷發(fā)現(xiàn)阻尼a和軟件缺陷發(fā)現(xiàn)周期阻尼b的物理意義和規(guī)范化.
由于ABDOM是描述軟件缺陷發(fā)現(xiàn)時(shí)序過(guò)程的數(shù)學(xué)模型,因此要研究ABDOM的參數(shù)規(guī)范化,就需首先研究軟件缺陷發(fā)現(xiàn)時(shí)序過(guò)程的理想范型,通過(guò)ABDOM對(duì)理想范型的擬合來(lái)獲取模型參數(shù)的實(shí)際意義.
目前在國(guó)內(nèi)外軟件工程領(lǐng)域內(nèi),有較多動(dòng)態(tài)基于時(shí)間關(guān)系的軟件缺陷預(yù)測(cè)技術(shù)成果[2],如Rayleigh 分布模型[3]、指數(shù)分布模型[4]和 S 曲線分布模型[5]等,國(guó)內(nèi)有何智濤等提出的 ABDOM模型和王彤等提出的p階自回歸-q階移動(dòng)平均模型(auto regressive moving average):ARMA(p,q)[6],但這些研究成果中,并沒(méi)有直接涉及理想狀態(tài)軟件缺陷發(fā)現(xiàn)時(shí)序范型研究.
這里基于軟件缺陷發(fā)現(xiàn)時(shí)序過(guò)程的周期性、振蕩性和衰減性特征,借鑒Rayleigh概率分布密度函數(shù)(PDF,Probability Density Function)分布模型,結(jié)合測(cè)試實(shí)踐經(jīng)驗(yàn),提出一個(gè)理想軟件缺陷發(fā)現(xiàn)時(shí)序過(guò)程(ISPSDD,Ideal Sequential Process of Software Defects Discovery).
定義1 理想軟件缺陷發(fā)現(xiàn)時(shí)序過(guò)程(ISPSDD).ISPSDD是一個(gè)時(shí)序過(guò)程.在此時(shí)序過(guò)程中,軟件的開(kāi)發(fā)和測(cè)試過(guò)程質(zhì)量均處于理想工作狀態(tài),軟件缺陷發(fā)現(xiàn)周期τ1內(nèi)發(fā)現(xiàn)了待測(cè)軟件系統(tǒng)中的所有軟件缺陷,在后續(xù)等長(zhǎng)回歸測(cè)試周期τ2(τ2=τ1)內(nèi),不再有新的軟件缺陷被發(fā)現(xiàn);且在軟件缺陷發(fā)現(xiàn)周期τ1內(nèi),軟件缺陷日發(fā)現(xiàn)率呈衰減趨勢(shì)并在τ1結(jié)束時(shí)趨近于0.
ISPSDD的范型如圖1所示.
圖1 ISPSDD范型圖示
理想軟件缺陷發(fā)現(xiàn)時(shí)序過(guò)程只是一種理想狀態(tài),工程實(shí)踐中是根本無(wú)法達(dá)到的,從開(kāi)發(fā)過(guò)程和測(cè)試過(guò)程兩方面來(lái)考慮,有如下表述:
1)若開(kāi)發(fā)過(guò)程質(zhì)量達(dá)不到理想狀態(tài),即軟件缺陷發(fā)現(xiàn)周期τ1內(nèi)被測(cè)軟件需求覆蓋不完整,或開(kāi)發(fā)人員對(duì)軟件缺陷發(fā)現(xiàn)周期τ1內(nèi)出現(xiàn)的軟件缺陷修復(fù)不完善,則勢(shì)必導(dǎo)致回歸測(cè)試周期τ2內(nèi)出現(xiàn)新增軟件缺陷和周期性振蕩;
2)若測(cè)試過(guò)程質(zhì)量達(dá)不到理想狀態(tài),即在軟件缺陷發(fā)現(xiàn)周期τ1內(nèi)測(cè)試人員未能完整覆蓋測(cè)試需求,導(dǎo)致部分測(cè)試需求在回歸測(cè)試周期τ2內(nèi)才被覆蓋,也勢(shì)必導(dǎo)致回歸測(cè)試過(guò)程中出現(xiàn)新增軟件缺陷和周期性振蕩.
在定義了ISPSDD后,使用ABDOM來(lái)擬合ISPSDD,期望可以發(fā)現(xiàn)有指導(dǎo)意義的各參數(shù).
鑒于軟件缺陷發(fā)現(xiàn)周期τ,測(cè)試組織能力Amax都是變化因素,因此在使用ABDOM的擬合測(cè)算中,在將Amax指定為一個(gè)確定值條件(50,100和200)下,分別代入不同的軟件缺陷發(fā)現(xiàn)周期.最終的擬合測(cè)算結(jié)果如表1所示.
表1 ABDOM擬合ISPSDD結(jié)果
對(duì)理想軟件缺陷發(fā)現(xiàn)時(shí)序過(guò)程的ABDOM擬合結(jié)果中發(fā)現(xiàn),a的數(shù)值分布沒(méi)有明顯的規(guī)律,但是a×τ隨Amax的增大,卻是一個(gè)約略保持在4~5之間的數(shù)值,而b保持恒定數(shù)值0.
由于a≤0時(shí),軟件缺陷發(fā)現(xiàn)時(shí)序過(guò)程處在一個(gè)無(wú)法收斂的狀態(tài),因此可以設(shè)a=0時(shí)為臨界點(diǎn),即a×τ=0為軟件缺陷發(fā)現(xiàn)時(shí)序過(guò)程不衰減的情況,在工程實(shí)踐中這種狀態(tài)揭示測(cè)試過(guò)程質(zhì)量完全失去了控制.
依據(jù)理想測(cè)試質(zhì)量狀態(tài)下的a×τ的取值落在區(qū)間[0,4]或[0,5]這個(gè)發(fā)現(xiàn),這里大膽推測(cè)在Amax=200條件下,a×τ的典型取值可以為5,4,3,2,1和0,分別代表測(cè)試開(kāi)發(fā)過(guò)程的不同質(zhì)量狀態(tài),即理想、優(yōu)、良、中、差和失去控制,這暗中吻合軟件過(guò)程CMM5級(jí)過(guò)程評(píng)級(jí)標(biāo)準(zhǔn).
將推測(cè)得來(lái)的典型數(shù)據(jù)代入ABDOM模型進(jìn)行觀察,可以對(duì)軟件缺陷發(fā)現(xiàn)時(shí)序過(guò)程曲線進(jìn)行驗(yàn)證.在 Amax=100條件下,通過(guò)令 a×τ=4.5,3.5,2.5,1.5 和0.5 等不同取值,并令 τ=10,b=0,代入ADBOM模型,得到相應(yīng)的軟件缺陷發(fā)現(xiàn)時(shí)序過(guò)程曲線如圖2所示.
從圖2可以看出,當(dāng)a×τ=4.5時(shí),軟件缺陷發(fā)現(xiàn)時(shí)序曲線的收斂狀態(tài)接近于理想狀態(tài);當(dāng)a×τ=3.5時(shí),軟件缺陷發(fā)現(xiàn)時(shí)序曲線的收斂狀態(tài)優(yōu)異;當(dāng)a×τ=2.5時(shí),軟件缺陷發(fā)現(xiàn)時(shí)序曲線在第一波峰結(jié)束后有小波峰,收斂狀態(tài)良好;當(dāng)a×τ=1.5時(shí),軟件缺陷發(fā)現(xiàn)時(shí)序曲線在第一波峰后有多個(gè)快速收斂的波峰,收斂狀態(tài)中等;當(dāng)a×τ=0.5時(shí),軟件缺陷發(fā)現(xiàn)時(shí)序曲線劇烈振蕩,收斂狀態(tài)差.
圖2 不同a×τ取值下軟件缺陷發(fā)現(xiàn)時(shí)序過(guò)程曲線范型(Amax=100,τ =10,b=0)
依據(jù)文獻(xiàn)[1]的軟件缺陷發(fā)現(xiàn)時(shí)序過(guò)程的雙阻尼疊加振蕩模型中測(cè)試項(xiàng)目實(shí)際數(shù)據(jù)擬合結(jié)果來(lái)看,以公文系統(tǒng)A為例,其 Amax=99,a=0.45,τ=3,a×τ=1.35,軟件缺陷發(fā)現(xiàn)時(shí)序曲線的確處在中等收斂狀態(tài).以政務(wù)系統(tǒng)B為例,其Amax=28,a=0.07,τ=3,a × τ =0.21,軟件缺陷發(fā)現(xiàn)時(shí)序曲線的確處在差的狀態(tài).這基本吻合了對(duì)a×τ的典型取值的推測(cè).
基于第2.2節(jié),將ABDOM中的參數(shù)a進(jìn)行改造,令Q=aτ,則有ABDOM-Q模型如下:
定義2 軟件缺陷發(fā)現(xiàn)時(shí)序過(guò)程質(zhì)量指數(shù)Q.該指數(shù)為ABDOM-Q模型中一個(gè)可規(guī)范化揭示軟件缺陷發(fā)現(xiàn)時(shí)序過(guò)程質(zhì)量的參數(shù).Q的取值范圍為(-∞,5].
Q的典型取值與意義定義如下:
當(dāng)Q在4~5之間時(shí),過(guò)程質(zhì)量接近于理想狀態(tài);
當(dāng)Q接近于3.5,過(guò)程質(zhì)量為優(yōu);
當(dāng)Q接近于2.5,過(guò)程質(zhì)量為良;
當(dāng)Q接近于1.5,過(guò)程質(zhì)量為中;
當(dāng)Q接近于0.5,過(guò)程質(zhì)量為差;
當(dāng)Q接近0或小于0,過(guò)程質(zhì)量為失控.
基于ABDOM-Q模型可以對(duì)軟件測(cè)試過(guò)程中采集的軟件缺陷發(fā)現(xiàn)時(shí)序數(shù)據(jù)進(jìn)行擬合,擬合結(jié)果中Q的數(shù)值將可以輔助評(píng)估軟件缺陷發(fā)現(xiàn)時(shí)序過(guò)程的質(zhì)量.
ABDOM模型中的參數(shù)b設(shè)計(jì)用來(lái)描述軟件缺陷發(fā)現(xiàn)周期的衰減幅度.從物理意義上,當(dāng)b=0時(shí),表明軟件缺陷發(fā)現(xiàn)周期保持恒定;當(dāng)b>0時(shí),表示新的軟件缺陷發(fā)現(xiàn)峰值來(lái)臨的不斷推遲或消失;而b<0時(shí),表示新的軟件缺陷發(fā)現(xiàn)峰值來(lái)臨的不斷提前或與上一峰值合并.
這里參數(shù)b的取值范圍定義為b∈(-∞,∞),正常的測(cè)試過(guò)程中,b≥0,意味著有軟件缺陷越來(lái)越難被發(fā)現(xiàn)的趨勢(shì),而b<0則意味著可能有越來(lái)越多的軟件問(wèn)題有待發(fā)現(xiàn),這在軟件測(cè)試過(guò)程中屬于要被關(guān)注的現(xiàn)象.
在實(shí)際軟件測(cè)試過(guò)程中,影響軟件缺陷發(fā)現(xiàn)過(guò)程的因素很多,如開(kāi)發(fā)組織與測(cè)試組織的變化、被測(cè)軟件系統(tǒng)的變更、測(cè)試周期的延長(zhǎng)或縮短.這種變化都是非連續(xù)的,這些因素導(dǎo)致原有ABDOM-Q模型中的固定不變或連續(xù)取值的Amax,Q,τ和b無(wú)法描述這種離散變化.為此本文中引入ABDOM-Q 模型離散化參數(shù) Amaxi,Qi,τi和 bi,改進(jìn)ABDOM-Q模型對(duì)軟件缺陷發(fā)現(xiàn)時(shí)序過(guò)程各測(cè)試周期內(nèi)參數(shù)離散變化的適應(yīng)性.
在軟件測(cè)試實(shí)踐過(guò)程中,增量式測(cè)試是常見(jiàn)的一種測(cè)試演化類(lèi)型.初次測(cè)試版本可能是已實(shí)現(xiàn)近乎全部需求的軟件版本,后續(xù)只有部分小規(guī)模增量開(kāi)發(fā);也有可能是部分主干核心模塊,后續(xù)有與初測(cè)模塊規(guī)模相同或超出的軟件模塊加入.因此Ri的取值范圍0<Ri≤1可重新定義為Ri∈,以描述這種不斷增加被測(cè)模塊之間的比例關(guān)系和總和.改進(jìn)后的ABDOM-Q具備描述離散化參數(shù)能力,稱(chēng)為ABDOM-Qd.ABDOM-Qd的數(shù)學(xué)描述如下:
其中,i=1,2,3,…,k;t∈ Z+;Amax∈ Z+;τi∈Z+;Qi∈ (- ∞,5];bi∈(- ∞,∞);Ri∈(0,1]
本節(jié)中,對(duì)ABDOM-Qd模型的檢驗(yàn)基于某軟件測(cè)試項(xiàng)目的缺陷發(fā)現(xiàn)時(shí)序數(shù)據(jù)開(kāi)展.該項(xiàng)目是一個(gè)增量式測(cè)試,帶有典型的離散特征.軟件缺陷發(fā)現(xiàn)情況見(jiàn)表2.
表2 某系統(tǒng)軟件缺陷按時(shí)序發(fā)現(xiàn)統(tǒng)計(jì)
使用ABDOM-Qd對(duì)表2數(shù)據(jù)的擬合采用均方差最小值擬合法,獲得了較好的擬合結(jié)果,如圖3所示.
圖3 ABDOM-Qd對(duì)某系統(tǒng)缺陷發(fā)現(xiàn)數(shù)據(jù)擬合曲線
最佳擬合結(jié)果選取的各參數(shù)取值范圍如表3所示.式(3)與該項(xiàng)目實(shí)測(cè)數(shù)據(jù)的擬合效果較好,最小均方差為2.778821.
擬合結(jié)果表明,該測(cè)試項(xiàng)目屬于多次增量式測(cè)試過(guò)程,有多達(dá)12個(gè)缺陷發(fā)現(xiàn)峰值;1;測(cè)試周期接近5的整倍,推測(cè)與每周5日工作有關(guān);b=0.093;在正常范圍內(nèi),Q的取值在0.5~0.8之間,揭示該測(cè)試項(xiàng)目的軟件缺陷發(fā)現(xiàn)過(guò)程質(zhì)量總體屬于中等偏差水平.
表3 ABDOM-Qd對(duì)某系統(tǒng)缺陷數(shù)據(jù)擬合結(jié)果
經(jīng)過(guò)對(duì)ABODM的參數(shù)規(guī)范化和離散化改進(jìn)研究,有如下結(jié)論:
1)相比原有模型,ABDOM-Qd已具備描述復(fù)雜增量式開(kāi)發(fā)、測(cè)試周期離散化、測(cè)試團(tuán)隊(duì)離散變化和測(cè)試過(guò)程質(zhì)量離散變化等現(xiàn)實(shí)特征的能力;
2)提出了理想軟件缺陷發(fā)現(xiàn)時(shí)序過(guò)程ISPSDD,并在此基礎(chǔ)上提出了軟件缺陷發(fā)現(xiàn)過(guò)程質(zhì)量指數(shù)Q,該指數(shù)為定性評(píng)價(jià)一個(gè)軟件測(cè)試過(guò)程的質(zhì)量提供了直觀依據(jù),并進(jìn)而可輔助評(píng)估軟件測(cè)試的質(zhì)量.
References)
[1]何智濤,晏海華,劉超.軟件缺陷發(fā)現(xiàn)時(shí)序過(guò)程的疊加雙阻尼振蕩模型[J].軟件學(xué)報(bào),2010,21(12):2999 -3010 He Zhitao,Yan Haihua,Liu Chao.Accumulative bi-damped oscillation model for the sequential process of software defect discovery[J].Journal of Sofware,2010,21(12):2999 - 3010(in Chinese)
[2]王青,伍書(shū)劍,李明樹(shù),軟件缺陷預(yù)測(cè)技術(shù)[J].軟件學(xué)報(bào),2008,19(7):1565 -1580 Wang Qing,Wu Shujian,Li Mingshu.Software defect prediction[J].Journal of Sofware,2008,19(7):1565 - 1580(in Chinese)
[3]Trachtenberg M.Discovering how to ensure software reliability[J].RCA Engineer,1982,27(1):53 -57
[4]Jelinski Z,Moranda P.Software reliability research[C]//Freiberger W.Statistical Computer Performance Evaluation.New York:Academic Press,1972:465 -484
[5]Yamada S,Ohba M,Osaki S.S-shaped reliability growth modeling for software error detection[J].IEEE Trans on Relibility,1983,R-32(5):475 -478
[6]王彤,王良,基于時(shí)序模型的Bug數(shù)的分析與預(yù)測(cè)[J].現(xiàn)代計(jì)算機(jī),2007,273(12):33 -36 Wang Tong,Wang Liang.Analysis and forecas ting of bugs based on time series model[J].Modern Computer,2007,273(12):33-36(in Chinese)