李海峰,李秋英,陸民燕
(北京航空航天大學(xué)可靠性與系統(tǒng)工程學(xué)院,北京100191)
隨著軟件被廣泛地應(yīng)用于社會(huì)各個(gè)領(lǐng)域,軟件尤其是安全關(guān)鍵軟件的失效很可能會(huì)導(dǎo)致生命與財(cái)產(chǎn)的災(zāi)難性損失.軟件可靠性已成為軟件發(fā)布時(shí)用戶最為關(guān)心的質(zhì)量指標(biāo)之一[1].軟件可靠性增長(zhǎng)模型(software reliability growth modelsmodels,SRGMs)作為軟件可靠性定量評(píng)估與預(yù)計(jì)的主要手段,從20世紀(jì)70年代起,就一直是軟件可靠性工程領(lǐng)域最為關(guān)注的研究方向之一[1-3].有研究表明,若能在軟件可靠性建模過程中考慮軟件測(cè)試過程因素對(duì)軟件可靠性的影響效果,將會(huì)改進(jìn)現(xiàn)有模型的擬合與預(yù)計(jì)性能[4-8].測(cè)試工作量(testing effort,TE)[6]與不完美排錯(cuò)(imperfect debugging,ID)[9]就是這樣 2種重要測(cè)試過程因素.
測(cè)試工作量指的是在測(cè)試過程中所消耗的各類資源,可用人時(shí)、測(cè)試用例數(shù)、CPU時(shí)間等信息來度量[10].有研究表明,對(duì)軟件可靠性增長(zhǎng)曲線的形狀有著顯著影響[11-12].而早期的SRGMs或者不考慮TE或者假設(shè)TE隨時(shí)間的消耗率是一個(gè)常值[1,3,13],這顯然是不合理的.因此,如何準(zhǔn)確地定量描述TE隨測(cè)試時(shí)間的變化情況(即測(cè)試工作量函數(shù),testing effort function,TEF),進(jìn)而建立考慮TEF的SRGMs已成為近些年來軟件可靠性建模研究熱點(diǎn)之一[6,10,12,14-30].此外在軟件可靠性建模過程中對(duì)所謂不完美排錯(cuò)現(xiàn)象進(jìn)行準(zhǔn)確描述[9,23-24,29,31-39],也是提高軟件可靠性模型擬合與預(yù)計(jì)精度的重要手段.
在實(shí)際測(cè)試過程中,由于軟件結(jié)構(gòu)特征以及學(xué)習(xí)因素的綜合影響,TE的增長(zhǎng)速率隨時(shí)間會(huì)呈現(xiàn)出一種先增后減的S型增長(zhǎng)趨勢(shì)[12].變形S型(inflected S-shaped)函數(shù)非常適于描述S型增長(zhǎng)趨勢(shì),且具有結(jié)構(gòu)簡(jiǎn)單、靈活性好等優(yōu)點(diǎn)[33].因此,本文首先提出一種變形S型TEF(IS-TEF)來描述TE隨時(shí)間的S型增長(zhǎng)趨勢(shì);在此基礎(chǔ)上,將IS-TEF及2種不完美排錯(cuò)假設(shè)分別與指數(shù)型NHPP類模型相結(jié)合,從而給出兩種考慮 IS-TEF與 ID的 NHPP類SRGMs(IS-TEFID1與IS-TEFID2).最后在兩組真實(shí)失效數(shù)據(jù)集上對(duì)新模型進(jìn)行實(shí)例驗(yàn)證.
1.1.1 威布爾 TEF[14]
Yamada首先利用威布爾型函數(shù)來描述測(cè)試工作量,并給出如下3種形式的TEF:
式中:W(t)表示時(shí)段[0,t]內(nèi)所消耗的累積測(cè)試工作量,Wmax表示最終可消耗的總測(cè)試工作量,即Wmax=W(∞),b是刻度參數(shù),m是形狀參數(shù).
1.1.2 指數(shù)威布爾[15]TEF
上述2種威布爾類的TEF無法很好地描述S型增長(zhǎng)趨勢(shì),并且當(dāng)m>3時(shí),威布爾類型的函數(shù)會(huì)有較明顯的峰值現(xiàn)象[12];
1.1.3 Logistic TEF[12]
式中:α表示測(cè)試工作量消耗率,A是一個(gè)常數(shù).
當(dāng)t=0時(shí),根據(jù)式(3)計(jì)算出的W(0)不為0,這個(gè)結(jié)論與直覺不相符合,有時(shí)難以解釋.
式中:m(t)是時(shí)刻t的探測(cè)失效數(shù)均值,r表示缺陷探測(cè)率,N表示軟件中潛在的總?cè)毕輸?shù).
若將缺陷總數(shù)N視為隨時(shí)間變化的函數(shù)N(t),即軟件排錯(cuò)會(huì)引入新的缺陷,則可以描述所謂的不完美排錯(cuò)現(xiàn)象.由此,將式(4)重寫,得到考慮不完美排錯(cuò)與TEF的NHPP類建??蚣苋缦?
文獻(xiàn)[10]提出如下的考慮TEF的建??蚣?
將2.1節(jié)中介紹的各種TEFs代入式(4),即可得到不同的TEF-SRGMs.同理,將各種TEFs與不同的缺陷總數(shù)函數(shù)N(t)代入式(5),則可得到不同的IDTEF-SRGMs.表1中匯總了若干經(jīng)典 SRGMs、TEF-SRGMs以及 IDTEF-SRGMs.
表1 相關(guān)軟件可靠性模型匯總Table 1 A summary of various SRGMs
續(xù)表1
假設(shè)利用變形S型函數(shù)描述測(cè)試工作量隨時(shí)間的變化情況,則[0,t]內(nèi)的累積測(cè)試工作量為
式中:b表示測(cè)試工作量消耗率,ψ是一個(gè)常量.
根據(jù)式(6),可知:1)W(0)=0,即初始測(cè)試工作量為0;2)W(t)非負(fù)且隨時(shí)間t單調(diào)遞增,這與測(cè)試過程中測(cè)試工作量不斷增長(zhǎng)的行為相符;3)將W(t)對(duì)時(shí)間t求導(dǎo),則可得測(cè)試工作量增長(zhǎng)速率函數(shù)w(t)為
由式(7)可知,w(t)是一個(gè)隨測(cè)試時(shí)間先增后減的函數(shù),在t=lnψ/b時(shí),其達(dá)到最大值.
關(guān)于不完美排錯(cuò)的假設(shè)有很多種表達(dá)形式,比較常見且重要的為如下2種形式:
1)引入缺陷數(shù)與測(cè)試時(shí)間成正比[9,34-36,39]:
式中:β為缺陷引入率,N為軟件初始缺陷總數(shù).
2)引入缺陷數(shù)與探測(cè)缺陷數(shù)成正比[6,23]:
本文將分別采用形式1)與形式2)來描述不完美排錯(cuò)現(xiàn)象,進(jìn)而得到考慮變形S型TEF以及2種不完美排錯(cuò)假設(shè)的NHPP類軟件可靠性模型(ISTEFID).
考慮S型測(cè)試工作量函數(shù)與不完美排錯(cuò)的NHPP 類 SRGM 模型假設(shè)列舉如下[6,9,11,14]:
1)軟件的缺陷探測(cè)過程服從NHPP過程.
2)當(dāng)前軟件的失效是由殘存缺陷引發(fā)的.
3)當(dāng)前探測(cè)到的缺陷數(shù)均值與殘存缺陷數(shù)均值成正比.其比值是缺陷探測(cè)率,本文設(shè)其為常值.
4)利用變形S型測(cè)試工作量函數(shù)(式(6))來描述測(cè)試工作量隨時(shí)間的消耗情況.
5)缺陷一旦被發(fā)現(xiàn),立即被排除.
6)排除缺陷過程可能會(huì)引入新缺陷,新缺陷引入率設(shè)為β.缺陷總數(shù)函數(shù)為式(8)和(9).
邊界條件為m(0)=0,W(0)=0,將式(6),(8)與(9)代入式(5),對(duì)微分方程求解,可得到如下2種考慮TEF與不完美排錯(cuò)的模型.
下面以IS-TEFID2為例,討論此類模型的若干性質(zhì).
根據(jù)式(11),可進(jìn)一步得到
根據(jù)式(11)~(12),可得最終殘留缺陷數(shù)為
式(13)表明,即使測(cè)試的時(shí)間很長(zhǎng),軟件中的初始缺陷也不可能全部被排除,這是因?yàn)闇y(cè)試階段中的測(cè)試工作量消耗總量是有限的(Wmax).
1)選取表1中的21個(gè)SRGMs作為對(duì)比模型.
2)選用最小二乘估計(jì)(LSE)作為模型參數(shù)估計(jì)方法,LSE產(chǎn)生的估計(jì)結(jié)果具有無偏性.
3)選取均值誤差平方和[6](MSE),回歸曲線方程的相關(guān)指數(shù)[9](R-Square)來評(píng)價(jià)模型擬合效果.
式中:mi為真實(shí)的觀測(cè)數(shù)據(jù),m(ti)為模型計(jì)算出的對(duì)應(yīng)mi的擬合值.MSE值越小,則模型擬合效果越好,即表明模型的可靠性擬合性能越好.
式中:mave表示觀測(cè)數(shù)據(jù)mi的均值.R-Square值越接近于1,則模型擬合效果越好.
4)選擇相對(duì)誤差RE值[40]評(píng)價(jià)模型預(yù)計(jì)效果.
假設(shè)測(cè)試結(jié)束的時(shí)刻為tn,此時(shí)共觀測(cè)到mn個(gè)失效.使用截止到時(shí)刻te(te≤tn)的失效數(shù)據(jù)來估計(jì)模型me(t)的參數(shù)值.將參數(shù)估計(jì)值代入模型me(t),從而獲得tn時(shí)刻的失效數(shù)預(yù)計(jì)值為me(tn).然后將預(yù)計(jì)值me(tn)與tn時(shí)刻的真實(shí)失效數(shù)mn進(jìn)行對(duì)比,即計(jì)算式(16)中的 RE值.取不同的te(te≤tn)值,重復(fù)上述過程,可獲得不同的RE值.將不同的RE值制成RE圖,可用來檢驗(yàn)?zāi)P偷念A(yù)計(jì)能力.RE圖中接近于橫軸的點(diǎn)越多,模型預(yù)計(jì)能力越好.
5)實(shí)例驗(yàn)證選擇2組真實(shí)失效數(shù)據(jù)集,Ohba[41]與Wood[42],用于估計(jì)對(duì)比模型的參數(shù)值并計(jì)算模型的擬合結(jié)果.這2組數(shù)據(jù)集均是用于軟件可靠性模型擬合性能比較的經(jīng)典范例[43].需要說明的是,這2組數(shù)據(jù)集均包含測(cè)試時(shí)間(t),測(cè)試工作量(W)以及探測(cè)的缺陷數(shù)(m)信息.本實(shí)例將Wood數(shù)據(jù)集中的測(cè)試工作量數(shù)據(jù)縮小100倍,這樣做的目的是為了提高模型參數(shù)的估計(jì)質(zhì)量,這種縮放處理不會(huì)對(duì)模型擬合性能對(duì)比結(jié)果產(chǎn)生影響[6].
表2中列出23個(gè)模型在2組失效數(shù)據(jù)集上的參數(shù)估計(jì)值和模型擬合結(jié)果.其中,加粗?jǐn)?shù)字表示在該列評(píng)價(jià)準(zhǔn)則上的最佳計(jì)算結(jié)果.
3.2.1 Ohba數(shù)據(jù)集上的擬合結(jié)果分析
1)在Ohba數(shù)據(jù)集上,模型IS-TEFID2的擬合結(jié)果為最優(yōu)(MSE值最小,為69.47;R值最接近于1,為0.993),顯著好于其他模型.2)擬合結(jié)果最好的5 個(gè)模型依次為:IS-TEFID2,PNZ1,SEWE-TEF,SEWE-TEFID以及GGO.3)圖1描述了上述5個(gè)擬合結(jié)果最優(yōu)模型對(duì)Ohba數(shù)據(jù)集中每個(gè)失效數(shù)據(jù)的擬合值(m(ti))與實(shí)際觀測(cè)值(mi)的對(duì)比情形.4)值得注意的是,本文提出的IS-TEFID1的擬合結(jié)果雖然比較不錯(cuò)(MSE值為 107.05,R值為 0.990),但卻明顯不如IS-TEFID2等5個(gè)最優(yōu)模型.5)對(duì)于Ohba數(shù)據(jù)集,表2中的幾個(gè)不完美排錯(cuò)模型的缺陷引入率β都接近于0但卻不等于0(例如ISTEFID2的β值為0.003 624).這表明Ohba數(shù)據(jù)集的缺陷排除過程不是完美的.因此,在可靠性建模時(shí),應(yīng)當(dāng)盡量考慮不完美排錯(cuò)這一因素.
圖1 Ohba數(shù)據(jù)集上各對(duì)比模型的擬合結(jié)果Fig.1 The actual data and fitting results for Ohba
3.2.2 Ohba數(shù)據(jù)集上的預(yù)計(jì)結(jié)果分析
圖2中繪制了5個(gè)擬合結(jié)果最優(yōu)模型的預(yù)計(jì)RE圖.與其他模型相比,在Ohba數(shù)據(jù)集上,IS-TEFID2模型的RE曲線向橫軸(圖中橫線)接近的速度是最快的,也即表明IS-TEFID2模型在Ohba數(shù)據(jù)集上具有優(yōu)秀的預(yù)計(jì)結(jié)果.
圖2 Ohba數(shù)據(jù)集上的模型RE圖Fig.2 The RE figure for Ohba
3.2.3 Wood數(shù)據(jù)集上的擬合結(jié)果及分析
1)在Wood數(shù)據(jù)集上,IS-TEFID2的擬合結(jié)果依然為最優(yōu)(MSE值最小,為7.62;R值最接近于1,為0.991).
2)擬合結(jié)果最好的5個(gè)模型依次為:IS-TEFID2,IS,PNZ1,IS-TEFID1 與 GGO.
3)圖3描述了上述5個(gè)擬合結(jié)果最優(yōu)模型對(duì)Wood數(shù)據(jù)集中每個(gè)失效數(shù)據(jù)的擬合值(m(ti))與實(shí)際觀測(cè)值(mi)的對(duì)比情形.
4)IS-TEFID1對(duì)于Wood數(shù)據(jù)集的擬合結(jié)果表現(xiàn)非常不錯(cuò)(MSE 值為 9.64,R 值為0.988),但依然較IS-TEFID2的擬合結(jié)果差.
5)對(duì)于Wood數(shù)據(jù)集,表2中的幾個(gè)不完美排錯(cuò)模型的缺陷引入率β也都接近于0但卻不等于0(例如IS-TEFID2的β值為0.019 1).這表明Wood數(shù)據(jù)集的缺陷排除過程也不是完美的,對(duì)其進(jìn)行可靠性建模時(shí)應(yīng)當(dāng)盡量考慮不完美排錯(cuò)這一因素.
圖3 Wood數(shù)據(jù)集上各對(duì)比模型的擬合結(jié)果Fig.3 The actual data and fitting results for Wood
3.2.4 Wood數(shù)據(jù)集上的預(yù)計(jì)結(jié)果分析
圖4中繪制了5個(gè)擬合結(jié)果最優(yōu)模型的預(yù)計(jì)RE圖.由圖4可看出,在Wood數(shù)據(jù)集上,本文提出的IS-TEFID2模型的RE曲線向橫軸(圖中橫線)接近的速度依然是最快的.也即表明IS-TEFID2模型在Wood數(shù)據(jù)集上也具有最為優(yōu)秀的預(yù)計(jì)結(jié)果.
圖4 Wood數(shù)據(jù)集上的模型RE圖Fig.4 The RE figure for Wood
3.2.5 基于上述結(jié)果的分析
1)IS-TEFID2模型在2組失效數(shù)據(jù)集上的擬合與預(yù)計(jì)結(jié)果均是最優(yōu)秀的.2)與IS-TEFID2相比,IS-TEFID1的擬合與預(yù)計(jì)性能稍差.這表明在這兩組數(shù)據(jù)集上,第2種不完美排錯(cuò)形式較第1種不完美排錯(cuò)形式可能更合理.3)IS-TEFID2中所考慮的不完美排錯(cuò)假設(shè)與變形S型TEF可更精確描述不完美排錯(cuò)與測(cè)試工作量對(duì)軟件可靠性的影響效果.
本文首先提出一種新的變形S型測(cè)試工作量函數(shù),在此基礎(chǔ)上分別提出考慮變形S型測(cè)試工作量函數(shù)與2種不完美排錯(cuò)假設(shè)的指數(shù)型NHPP類軟件可靠性模型(即IS-TEFID1與IS-TEFID2).實(shí)例計(jì)算結(jié)果表明:本文提出的IS-TEFID2模型的擬合與預(yù)計(jì)性能均顯著優(yōu)于其他對(duì)比模型.本文的研究成果推進(jìn)了考慮測(cè)試工作量函數(shù)的軟件可靠性建模理論研究的進(jìn)展,同時(shí)其對(duì)于提升現(xiàn)有模型在工程實(shí)踐中的擬合與預(yù)計(jì)精度也具有重要的意義.
[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]謝景燕,安金霞,朱紀(jì)洪.考慮不完美排錯(cuò)情況的NHPP類軟件可靠性增長(zhǎng)模型[J].軟件學(xué)報(bào),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.