李海峰,李秋英,陸民燕
(北京航空航天大學可靠性與系統工程學院,北京100191)
隨著軟件被廣泛地應用于社會各個領域,軟件尤其是安全關鍵軟件的失效很可能會導致生命與財產的災難性損失.軟件可靠性已成為軟件發布時用戶最為關心的質量指標之一[1].軟件可靠性增長模型(software reliability growth modelsmodels,SRGMs)作為軟件可靠性定量評估與預計的主要手段,從20世紀70年代起,就一直是軟件可靠性工程領域最為關注的研究方向之一[1-3].有研究表明,若能在軟件可靠性建模過程中考慮軟件測試過程因素對軟件可靠性的影響效果,將會改進現有模型的擬合與預計性能[4-8].測試工作量(testing effort,TE)[6]與不完美排錯(imperfect debugging,ID)[9]就是這樣 2種重要測試過程因素.
測試工作量指的是在測試過程中所消耗的各類資源,可用人時、測試用例數、CPU時間等信息來度量[10].有研究表明,對軟件可靠性增長曲線的形狀有著顯著影響[11-12].而早期的SRGMs或者不考慮TE或者假設TE隨時間的消耗率是一個常值[1,3,13],這顯然是不合理的.因此,如何準確地定量描述TE隨測試時間的變化情況(即測試工作量函數,testing effort function,TEF),進而建立考慮TEF的SRGMs已成為近些年來軟件可靠性建模研究熱點之一[6,10,12,14-30].此外在軟件可靠性建模過程中對所謂不完美排錯現象進行準確描述[9,23-24,29,31-39],也是提高軟件可靠性模型擬合與預計精度的重要手段.
在實際測試過程中,由于軟件結構特征以及學習因素的綜合影響,TE的增長速率隨時間會呈現出一種先增后減的S型增長趨勢[12].變形S型(inflected S-shaped)函數非常適于描述S型增長趨勢,且具有結構簡單、靈活性好等優點[33].因此,本文首先提出一種變形S型TEF(IS-TEF)來描述TE隨時間的S型增長趨勢;在此基礎上,將IS-TEF及2種不完美排錯假設分別與指數型NHPP類模型相結合,從而給出兩種考慮 IS-TEF與 ID的 NHPP類SRGMs(IS-TEFID1與IS-TEFID2).最后在兩組真實失效數據集上對新模型進行實例驗證.
1.1.1 威布爾 TEF[14]
Yamada首先利用威布爾型函數來描述測試工作量,并給出如下3種形式的TEF:

式中:W(t)表示時段[0,t]內所消耗的累積測試工作量,Wmax表示最終可消耗的總測試工作量,即Wmax=W(∞),b是刻度參數,m是形狀參數.
1.1.2 指數威布爾[15]TEF

上述2種威布爾類的TEF無法很好地描述S型增長趨勢,并且當m>3時,威布爾類型的函數會有較明顯的峰值現象[12];
1.1.3 Logistic TEF[12]

式中:α表示測試工作量消耗率,A是一個常數.
當t=0時,根據式(3)計算出的W(0)不為0,這個結論與直覺不相符合,有時難以解釋.

式中:m(t)是時刻t的探測失效數均值,r表示缺陷探測率,N表示軟件中潛在的總缺陷數.
若將缺陷總數N視為隨時間變化的函數N(t),即軟件排錯會引入新的缺陷,則可以描述所謂的不完美排錯現象.由此,將式(4)重寫,得到考慮不完美排錯與TEF的NHPP類建模框架如下:

文獻[10]提出如下的考慮TEF的建模框架:
將2.1節中介紹的各種TEFs代入式(4),即可得到不同的TEF-SRGMs.同理,將各種TEFs與不同的缺陷總數函數N(t)代入式(5),則可得到不同的IDTEF-SRGMs.表1中匯總了若干經典 SRGMs、TEF-SRGMs以及 IDTEF-SRGMs.

表1 相關軟件可靠性模型匯總Table 1 A summary of various SRGMs

續表1
假設利用變形S型函數描述測試工作量隨時間的變化情況,則[0,t]內的累積測試工作量為

式中:b表示測試工作量消耗率,ψ是一個常量.
根據式(6),可知:1)W(0)=0,即初始測試工作量為0;2)W(t)非負且隨時間t單調遞增,這與測試過程中測試工作量不斷增長的行為相符;3)將W(t)對時間t求導,則可得測試工作量增長速率函數w(t)為

由式(7)可知,w(t)是一個隨測試時間先增后減的函數,在t=lnψ/b時,其達到最大值.
關于不完美排錯的假設有很多種表達形式,比較常見且重要的為如下2種形式:
1)引入缺陷數與測試時間成正比[9,34-36,39]:

式中:β為缺陷引入率,N為軟件初始缺陷總數.
2)引入缺陷數與探測缺陷數成正比[6,23]:

本文將分別采用形式1)與形式2)來描述不完美排錯現象,進而得到考慮變形S型TEF以及2種不完美排錯假設的NHPP類軟件可靠性模型(ISTEFID).
考慮S型測試工作量函數與不完美排錯的NHPP 類 SRGM 模型假設列舉如下[6,9,11,14]:
1)軟件的缺陷探測過程服從NHPP過程.
2)當前軟件的失效是由殘存缺陷引發的.
3)當前探測到的缺陷數均值與殘存缺陷數均值成正比.其比值是缺陷探測率,本文設其為常值.
4)利用變形S型測試工作量函數(式(6))來描述測試工作量隨時間的消耗情況.
5)缺陷一旦被發現,立即被排除.
6)排除缺陷過程可能會引入新缺陷,新缺陷引入率設為β.缺陷總數函數為式(8)和(9).
邊界條件為m(0)=0,W(0)=0,將式(6),(8)與(9)代入式(5),對微分方程求解,可得到如下2種考慮TEF與不完美排錯的模型.

下面以IS-TEFID2為例,討論此類模型的若干性質.
根據式(11),可進一步得到

根據式(11)~(12),可得最終殘留缺陷數為

式(13)表明,即使測試的時間很長,軟件中的初始缺陷也不可能全部被排除,這是因為測試階段中的測試工作量消耗總量是有限的(Wmax).
1)選取表1中的21個SRGMs作為對比模型.
2)選用最小二乘估計(LSE)作為模型參數估計方法,LSE產生的估計結果具有無偏性.
3)選取均值誤差平方和[6](MSE),回歸曲線方程的相關指數[9](R-Square)來評價模型擬合效果.

式中:mi為真實的觀測數據,m(ti)為模型計算出的對應mi的擬合值.MSE值越小,則模型擬合效果越好,即表明模型的可靠性擬合性能越好.

式中:mave表示觀測數據mi的均值.R-Square值越接近于1,則模型擬合效果越好.
4)選擇相對誤差RE值[40]評價模型預計效果.

假設測試結束的時刻為tn,此時共觀測到mn個失效.使用截止到時刻te(te≤tn)的失效數據來估計模型me(t)的參數值.將參數估計值代入模型me(t),從而獲得tn時刻的失效數預計值為me(tn).然后將預計值me(tn)與tn時刻的真實失效數mn進行對比,即計算式(16)中的 RE值.取不同的te(te≤tn)值,重復上述過程,可獲得不同的RE值.將不同的RE值制成RE圖,可用來檢驗模型的預計能力.RE圖中接近于橫軸的點越多,模型預計能力越好.
5)實例驗證選擇2組真實失效數據集,Ohba[41]與Wood[42],用于估計對比模型的參數值并計算模型的擬合結果.這2組數據集均是用于軟件可靠性模型擬合性能比較的經典范例[43].需要說明的是,這2組數據集均包含測試時間(t),測試工作量(W)以及探測的缺陷數(m)信息.本實例將Wood數據集中的測試工作量數據縮小100倍,這樣做的目的是為了提高模型參數的估計質量,這種縮放處理不會對模型擬合性能對比結果產生影響[6].
表2中列出23個模型在2組失效數據集上的參數估計值和模型擬合結果.其中,加粗數字表示在該列評價準則上的最佳計算結果.
3.2.1 Ohba數據集上的擬合結果分析
1)在Ohba數據集上,模型IS-TEFID2的擬合結果為最優(MSE值最小,為69.47;R值最接近于1,為0.993),顯著好于其他模型.2)擬合結果最好的5 個模型依次為:IS-TEFID2,PNZ1,SEWE-TEF,SEWE-TEFID以及GGO.3)圖1描述了上述5個擬合結果最優模型對Ohba數據集中每個失效數據的擬合值(m(ti))與實際觀測值(mi)的對比情形.4)值得注意的是,本文提出的IS-TEFID1的擬合結果雖然比較不錯(MSE值為 107.05,R值為 0.990),但卻明顯不如IS-TEFID2等5個最優模型.5)對于Ohba數據集,表2中的幾個不完美排錯模型的缺陷引入率β都接近于0但卻不等于0(例如ISTEFID2的β值為0.003 624).這表明Ohba數據集的缺陷排除過程不是完美的.因此,在可靠性建模時,應當盡量考慮不完美排錯這一因素.

圖1 Ohba數據集上各對比模型的擬合結果Fig.1 The actual data and fitting results for Ohba
3.2.2 Ohba數據集上的預計結果分析
圖2中繪制了5個擬合結果最優模型的預計RE圖.與其他模型相比,在Ohba數據集上,IS-TEFID2模型的RE曲線向橫軸(圖中橫線)接近的速度是最快的,也即表明IS-TEFID2模型在Ohba數據集上具有優秀的預計結果.

圖2 Ohba數據集上的模型RE圖Fig.2 The RE figure for Ohba
3.2.3 Wood數據集上的擬合結果及分析
1)在Wood數據集上,IS-TEFID2的擬合結果依然為最優(MSE值最小,為7.62;R值最接近于1,為0.991).
2)擬合結果最好的5個模型依次為:IS-TEFID2,IS,PNZ1,IS-TEFID1 與 GGO.
3)圖3描述了上述5個擬合結果最優模型對Wood數據集中每個失效數據的擬合值(m(ti))與實際觀測值(mi)的對比情形.
4)IS-TEFID1對于Wood數據集的擬合結果表現非常不錯(MSE 值為 9.64,R 值為0.988),但依然較IS-TEFID2的擬合結果差.
5)對于Wood數據集,表2中的幾個不完美排錯模型的缺陷引入率β也都接近于0但卻不等于0(例如IS-TEFID2的β值為0.019 1).這表明Wood數據集的缺陷排除過程也不是完美的,對其進行可靠性建模時應當盡量考慮不完美排錯這一因素.

圖3 Wood數據集上各對比模型的擬合結果Fig.3 The actual data and fitting results for Wood
3.2.4 Wood數據集上的預計結果分析
圖4中繪制了5個擬合結果最優模型的預計RE圖.由圖4可看出,在Wood數據集上,本文提出的IS-TEFID2模型的RE曲線向橫軸(圖中橫線)接近的速度依然是最快的.也即表明IS-TEFID2模型在Wood數據集上也具有最為優秀的預計結果.

圖4 Wood數據集上的模型RE圖Fig.4 The RE figure for Wood
3.2.5 基于上述結果的分析
1)IS-TEFID2模型在2組失效數據集上的擬合與預計結果均是最優秀的.2)與IS-TEFID2相比,IS-TEFID1的擬合與預計性能稍差.這表明在這兩組數據集上,第2種不完美排錯形式較第1種不完美排錯形式可能更合理.3)IS-TEFID2中所考慮的不完美排錯假設與變形S型TEF可更精確描述不完美排錯與測試工作量對軟件可靠性的影響效果.
本文首先提出一種新的變形S型測試工作量函數,在此基礎上分別提出考慮變形S型測試工作量函數與2種不完美排錯假設的指數型NHPP類軟件可靠性模型(即IS-TEFID1與IS-TEFID2).實例計算結果表明:本文提出的IS-TEFID2模型的擬合與預計性能均顯著優于其他對比模型.本文的研究成果推進了考慮測試工作量函數的軟件可靠性建模理論研究的進展,同時其對于提升現有模型在工程實踐中的擬合與預計精度也具有重要的意義.
[1]LYU M R.Handbook of software reliability engineering[M].[s.l.]:McGraw Hill,1996:102-110.
[2]GOKHALE S S,LYU M R.A simulation approach to structure-based software reliability analysis[J].IEEE Trans on Software Engineering,2005,31(8):643-656.
[3]PHAM H.Software reliability[M].Singapore:Springer-Verlag,2000:210-223.
[4]GANA A,HUANG S T.Statistical modeling applied to managing global 5ESS-2000 switch software development[J].Bell Labs Technical Journal,1997,2(1):144-153.
[5]KRUGER G A.Validation and further application of software reliability growth models[J].Hewlett-Packard Journal,1989,40(4):75-79.
[6]HUANG C Y,KUO S Y,LYU M R.An assessment of testing-effort dependent software reliability growth models[J].IEEE Transactions on Reliability,2007,56(2):198-211.
[7]SHIBATA K,RINSAKA K,DOHI T.Metrics-based software reliability models using non-homogeneous Poisson processes[C]//Proc of the 17th IEEE International Symposium on Software Reliability Engineering(ISSRE).Washington DC:IEEE Computer Society,2006:52-61.
[8]CAI X,LYU M R.Software reliability modeling with test coverage experimentation and measurement with a fault-tolerant software project[C]//ISSRE2007.Washington DC:2007:17-26.
[9]謝景燕,安金霞,朱紀洪.考慮不完美排錯情況的NHPP類軟件可靠性增長模型[J].軟件學報,2010,21(5):942-949.
XIE Jingyan,AN Jinxua,ZHU Jihong.NHPP software reliability growth model considering imperfect debugging[J].Journal of Software,2010,21(5):942-949 .
[10]KUO S Y,HUANG C Y,LYU M R.Framework for modeling software reliability,using various testing-efforts and fault-detection rates[J].IEEE Transactions on Reliability,2001,50(3):310-320.
[11]FENTON N E,NEIL M.A critique of software defect prediction models[J].IEEE Transactions on Software Engineering,1999,25(5):675-689.
[12]HUANG C Y,KUOS Y.Analysis of incorporating logistic testing-effort function into software reliability modeling[J].IEEE Transactions on Reliability,2002,51(3):261-270.
[13]MUSA J D,IANNINO A,OKUMOTO K.Software reliability, measurement, prediction and application[M].America:McGraw Hill,1987:135-139.
[14]YAMADA S,HISHITANI J,OSAKI S.Software reliability growth model with Weibull testing effort:a model and application[J].IEEE Transactions on Reliability,1993,42(1):100-106.
[15]AHMAD N,BOKHARI M U,QUADRI S M K,KHAN M G M.The exponentiated Weibull software reliability growth model with various testing-efforts and optimal release policy[J].International Journal of Quality& Reliability Management,2008,25(2):211-235.
[16]QUADRI S M,AHMAD K,PEER M A,et al.NHPP process software reliability growth model with generalized exponential testing effort function[J].RAU Journal of Research,2006,16(2):159-163.
[17]AHMAD N,KHAN M G M,QUADRI S M K,et al.Modeling and analysis of software reliability with Burr type X testing-effort and release-time determination[J].Journal of Modeling in Management,2009,4(1):28-54.
[18]LIN C T,HUANG C Y.Enhancing and measuring the predictive capabilities of testing-effort dependent software reliability models[J].The Journal of Systems and Software,2008,81:1025-1038.
[19]HUANG C Y.Cost-reliability-optimal release policy for software reliability models incorporating improvements in testing efficiency[J].The Journal of Systems and Software,2005,77:139-155.
[20]HUANG C Y,LYU M R.Optimal release time for software systems considering cost,testing-effort,and test efficiency[J].IEEE Transactions on Reliability,2005,54(4):583-591.
[21]BOKHARI M U,AHMAD N.Analysis of a software reliability growth models:the case of log-logistic test-effort function[C]//Proceedings of the 17th IASTED International Conference on Modeling and Simulation.Montreal,Canada,2006:540-545.
[22]CHATTERJEE S,MISRA R B,ALAM S S.Joint effect of test effort and learning factor on software reliability and optimal release policy[J].International Journal of System Science,1997,28(4):391-396.
[23]AHMAD N,KHAN M G M,RAFI L S.A study of testingeffort dependent inflection S-shaped software reliability growth models with imperfect debugging[J].International Journal of Quality& Reliability Management,2010,27(1):89-110.
[24]KAPUR P K,GOSWAMI D N,BARDHAN A,SINGH O.Flexible software reliability growth model with testing effort dependent learning process[J].Applied Mathematical Modeling,2008,32:1298-1307.
[25]KAPUR P K,SHATNAWI O,AGGARWAL A G,RAVI K.Unified framework for developing testing effort dependent software reliability growth models[J].WSEAS Transactions on Systems,2009,4(8):521-531.
[26]JHA P C,GUPTA D,YANG B.Optimal testing resource allocation during module testing considering cost,testing effort and reliability[J].Computers& Industrial Engineering,2009,57:1122-1130.
[27]HUANG C Y.Performance analysis of software reliability growth models with testing-effort and change-point[J].The Journal of Systems and Software,2005,76:181-194.
[28]KAPUR P K,GUPTA A,OMAR S.Testing effort control using flexible software reliability growth model with change point[J].International Journal of Performability Engineering,2006,2(3):245-262.
[29]KAPUR P K,GROVER P S,YOUNES S.Modelling an imperfect debugging phenomenon with testing effort[C]//ISSRE1994.Washington DC,1994:178-183.
[30]LIN C T,HUANG C Y,CHANG J R.Integrating generalized Weibull-type testing-effortfunction and multiple change-points into software reliability growth models[C]//Proceedings of the 12th Asia-Pacific Software Engineering Conference.Washington DC,2005:431-438.
[31]CHANG Y C,LIU C T.A generalized JM model with applications to imperfect debugging in software reliability[J].Applied Mathematical Modeling,2009,33:3578-3588.
[32]SHYUR H J.A stochastic software reliability model with imperfect-debugging and change-point[J].The Journal of Systems and Software,2003,66:135-141.
[33]OHBA M.Inflection S-shaped software reliability growth models[M]//Stochastic Models in Reliability Theory.Berlin:Springer,1984:144-162.
[34]PHAM H,ZHANG Xuemei.NHPP software reliability and cost models with testing coverage[J].European Journal of Operational Research,2003,145(2):445-454.
[35]PHAM H.An imperfect-debugging fault-detection dependent-parameter software[J].International Journal of Automation and Computing,2007,4(4):325-328.
[36]PHAM H,NORDMANN L,ZHANG X.A general imperfect-software-debugging model with S-shaped fault-detection rate[J].IEEE Transactions on reliability,1999,48(2):169-175.
[37]BARGHOUT M.Predicting software reliability using an imperfect debugging Jelinski Moranda non-homogeneous poisson process model[J].Model Assisted Statistics and Applications,2010,5:31-41.
[38]XIE M,YANG B.A study of the effect of imperfect debugging on software development cost model[J].IEEE Transaction on Software Engineering,2003,29(5):471-473.
[39]YAMADA S,TOKUNO K,OSAKI S.Imperfect debugging models with fault introduction rate for software reliability assessment[J].International Journal of Systems Science,1992,23(12):2241-2252.
[40]MUSA J D,IANNINO A,OKUMOTO K.Software reliability measurement,prediction and application[M].[s.l.]:McGraw Hill,1987:87-99.
[41]OHBA M.Software reliability analysis models[J].IBM Journal of Research and Development,1984,28(4):428-443.
[42]WOOD A P.Predicting software reliability[J].IEEE Computer,1996,30(1):69-77.
[43]HUANG C Y,LIN C T.Software reliability analysis by considering fault dependency and debugging time lag[J].IEEE Transactions on Reliability,2006,55(3):436-450.