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