費(fèi) 琪
(江蘇自動(dòng)化研究所 江蘇 連云港 222061)
軟件定義世界,在當(dāng)今軟件質(zhì)量變得越來越重要,軟件可靠性直接影響著軟件質(zhì)量和開發(fā)成本[1-2],軟件可靠性工程研究的重點(diǎn)和難點(diǎn)便是軟件可靠性評(píng)估[3,11]。軟件可靠性增長模型是軟件可靠性評(píng)估的一種重要模型,通過軟件可靠性增長模型對(duì)軟件可靠性進(jìn)行評(píng)估可以為測(cè)試工作和軟件發(fā)布提供重要的參考依據(jù)。
1970年Goel和Okumoto首次使用非齊次泊松過程N(yùn)HPP描述軟件可靠性模型,G-O模型[4]。此后在此模型的基礎(chǔ)上,提出了很多新模型[5-10],經(jīng)分析,這些模型存在如下缺陷:
(1) 現(xiàn)有的可靠性模型未與問題等級(jí)進(jìn)行關(guān)聯(lián)。不同的問題,測(cè)試人員故障檢測(cè)率及開發(fā)人員排錯(cuò)率都有差別。
(2) 在對(duì)測(cè)試人員發(fā)現(xiàn)故障時(shí)僅考慮了測(cè)試人員的工作效率或?qū)W習(xí)能力,未與剩余的問題數(shù)進(jìn)行關(guān)聯(lián)。同樣能力的2個(gè)測(cè)試人員在測(cè)試產(chǎn)品時(shí),產(chǎn)品剩余的問題數(shù)越多,測(cè)試人員發(fā)現(xiàn)問題的概率越大,因此在考察故障檢測(cè)率時(shí)不僅要考慮測(cè)試人員的學(xué)習(xí)能力,同時(shí)需考察產(chǎn)品的問題數(shù)。
(3) 現(xiàn)有模型有的假設(shè)為排錯(cuò)為完美排錯(cuò),有的假設(shè)為不完美排錯(cuò),但針對(duì)已排除的錯(cuò)誤未考慮到錯(cuò)誤引入率,不能對(duì)故障診斷率、錯(cuò)誤排除率、錯(cuò)誤引入率進(jìn)行綜合考察得出可靠性模型。
按照GJB2786,問題等級(jí)劃分為4類:致命、嚴(yán)重、一般、輕微,其中針對(duì)輕微問題的定義為:“給操作員帶來不方便或麻煩,但不影響所要求的運(yùn)行或任務(wù)的主要功能”。為了本模型更好地建立,本文將問題等級(jí)劃分為2類:輕微問題及非輕微問題。針對(duì)輕微問題及非輕微問題的特點(diǎn)總結(jié)如表1所示。
表1 問題等級(jí)及特點(diǎn)
在構(gòu)建基于問題等級(jí)的不完美排錯(cuò)非齊次泊松過程可靠性模型時(shí),需做如下假設(shè):
1) 軟件運(yùn)行剖面與可靠性測(cè)試剖面相同。
2) 在任意時(shí)間序列內(nèi)測(cè)試人員發(fā)現(xiàn)的不同問題等級(jí)的故障數(shù)是相互無關(guān)的。
3) 在時(shí)刻t發(fā)現(xiàn)的累計(jì)錯(cuò)誤數(shù)[E(t),t≥0]是一個(gè)隨時(shí)間變化獨(dú)立增長的過程,E(t)服從期望函數(shù)為L(t)的泊松分布(注:輕微問題及分輕微問題分別服從期望函數(shù)為L1(t)及L2(t)的Poisson分布)。
4) 在時(shí)間間隔(t,t+Δt)內(nèi),單位時(shí)間所發(fā)現(xiàn)故障數(shù)的期望值與軟件殘留的故障數(shù)成比例,比例為故障檢測(cè)率φ(t),0≤φ(t)≤1,針對(duì)不同問題等級(jí)的故障檢測(cè)率φ(t)做如下假設(shè):
① 在時(shí)間間隔(t,t+Δt)內(nèi)軟件殘留的故障數(shù)越多,測(cè)試人員發(fā)現(xiàn)故障的概率越大。
② 針對(duì)問題等級(jí)為輕微的問題,在不同時(shí)間間隔內(nèi),測(cè)試人員發(fā)現(xiàn)輕微問題的概率僅與殘留的故障數(shù)相關(guān),故障檢測(cè)率為φ1(t)。
③ 針對(duì)問題等級(jí)為非輕微問題,測(cè)試人員發(fā)現(xiàn)非輕微問題的概率不僅與殘留的故障數(shù)相關(guān)而且與測(cè)試人員的學(xué)習(xí)能力相關(guān),故障檢測(cè)率為φ2(t)。
5) 在時(shí)間間隔(t,t+Δt)內(nèi),開發(fā)人員解決的錯(cuò)誤數(shù)與單位時(shí)間內(nèi)期望發(fā)現(xiàn)的錯(cuò)誤數(shù)成正比,比例為錯(cuò)誤排除率ρ(t),0≤ρ(t)≤1,針對(duì)不同問題等級(jí)的錯(cuò)誤排除率ρ(t)做如下假設(shè):
① 問題等級(jí)為輕微的問題,開發(fā)人員易解決,能完全排錯(cuò),錯(cuò)誤排除率為ρ1(t)=1。
② 問題等級(jí)為非輕微的問題,開發(fā)人員不易解決,在排錯(cuò)過程中可能會(huì)引入新的錯(cuò)誤,錯(cuò)誤排除率為ρ2(t)。
6) 針對(duì)不同等級(jí)的問題,排除錯(cuò)誤并非全是完美排錯(cuò),時(shí)間t時(shí)刻預(yù)期的錯(cuò)誤總量ω(t)與預(yù)期初始錯(cuò)誤數(shù)α之差與排除的錯(cuò)誤數(shù)成正比,比例為錯(cuò)誤引入率γ(t),針對(duì)不同問題等級(jí)的錯(cuò)誤引入率γ(t)做如下假設(shè):
① 問題等級(jí)為輕微的問題,開發(fā)人員排錯(cuò)過程中不會(huì)引入新的錯(cuò)誤,即錯(cuò)誤引入率為γ1(t)=0。
② 問題等級(jí)為非輕微的問題,開發(fā)人員在解決問題時(shí)有可能引入新問題,在此假設(shè)引入的新問題為非輕微問題,錯(cuò)誤引入率為γ2(t)。
③t時(shí)刻預(yù)期的輕微問題總量為ω1(t),初始預(yù)期錯(cuò)誤數(shù)為α1;t時(shí)刻預(yù)期的非輕微問題總量為ω2(t),初始預(yù)期錯(cuò)誤數(shù)為α2。
在上述6個(gè)假設(shè)中前3個(gè)假設(shè)為NHPP可靠性模型的基本假設(shè),后3個(gè)假設(shè)則是為反映NHPP可靠性模型與問題等級(jí)關(guān)聯(lián)而特別提出的。
依據(jù)基于問題等級(jí)的不完美排錯(cuò)NHPP可靠性模型假設(shè)4)得如下方程:
(1)
式中:ξ1(t)表示t時(shí)刻開發(fā)人員已經(jīng)解決的輕微問題數(shù)。
(2)
依據(jù)基于問題等級(jí)的不完美排錯(cuò)NHPP可靠性模型假設(shè)6)中開發(fā)人員對(duì)輕微問題解決時(shí)不會(huì)引入新的問題,故任意時(shí)刻的問題總數(shù)與初始預(yù)期問題總數(shù)相同,即:ω1(t)=α1。
(3)
式中:λ1表示初始時(shí)刻測(cè)試人員發(fā)現(xiàn)輕微問題故障的檢測(cè)率。
由式(1)-式(3)可得問題等級(jí)為輕微問題的NHPP可靠性模型為:
(4)
對(duì)式(4)進(jìn)行求解可得問題等級(jí)為輕微問題的累計(jì)故障數(shù)為:
L1(t)=α1[1-(1+t)-λ1]
(5)
依據(jù)基于問題等級(jí)的不完美排錯(cuò)NHPP可靠性模型假設(shè)4)得如下方程:
(6)
式中:ξ2(t)表示t時(shí)刻開發(fā)人員已經(jīng)解決的非輕微問題數(shù)。
我的工作也不是天天去做,接了電話我便拿了門球棒到門球場(chǎng)去。吳小哥就是認(rèn)準(zhǔn)了門球場(chǎng)。雖說醒了過來,可是他的意識(shí)還很脆弱,稍一變換場(chǎng)景,他就會(huì)陷入糊涂中。第一次見面,我就告誡自己一定要演好這個(gè)古大富。一方面是出于對(duì)吳小哥的同情。一方面這也是我的工作。只是陪著扯扯閑篇,一個(gè)月就收入五百塊,這和彎腰拾錢有啥區(qū)別。這時(shí)我又想起了那個(gè)小伙子說過的話:彎腰會(huì)不?只要彎腰,就能撿到錢。
依據(jù)基于問題等級(jí)的不完美排錯(cuò)NHPP可靠性模型假設(shè)5)得如下方程:
(7)
依據(jù)基于問題等級(jí)的不完美排錯(cuò)NHPP可靠性模型假設(shè)6)得如下方程:
ω2(t)=α2+γ2(t)×ξ2(t)
(8)
依據(jù)基于問題等級(jí)的不完美排錯(cuò)NHPP可靠性模型假設(shè)4)中測(cè)試人員對(duì)非輕微問題的故障檢測(cè)率不僅與測(cè)試人員對(duì)軟件的熟悉程度、測(cè)試人員的學(xué)習(xí)認(rèn)知能力相關(guān),而且與軟件中殘留的故障數(shù)相關(guān)。測(cè)試人員對(duì)軟件的學(xué)習(xí)認(rèn)知能力會(huì)隨時(shí)間的增長而熟練,符合S型增長曲線,在此本文使用Logistic模型來描述測(cè)試人員對(duì)軟件的學(xué)習(xí)能力隨時(shí)間的變化,Logistic學(xué)習(xí)模型為如下方程:
(9)
式中:C表示測(cè)試人員對(duì)軟件的熟悉程度,θ表示測(cè)試人員對(duì)軟件的掌握速率。
(10)
開發(fā)人員對(duì)錯(cuò)誤的排除率一般而言與時(shí)間無關(guān),在此假設(shè)錯(cuò)誤排除率為常數(shù),ρ2(t)=ρ2,0≤ρ2≤1,開發(fā)人員排除錯(cuò)誤時(shí)錯(cuò)誤引入率與時(shí)間也無關(guān),故假設(shè)錯(cuò)誤引入率也為常數(shù),γ2(t)=γ2,0≤γ2≤1。
由式(6)-式(8)、式(10)可得問題等級(jí)為非輕微問題的NHPP可靠性模型為:
(11)
對(duì)式(11)進(jìn)行求解可得問題等級(jí)為非輕微問題的累計(jì)故障數(shù)為:
(12)
為了更好地預(yù)估問題等級(jí)為輕微問題及非輕微問題累計(jì)故障函數(shù)中的參數(shù),采用最小誤差平方和來計(jì)算:
(13)
式中:n為測(cè)試階段數(shù),ti為i階段軟件累計(jì)運(yùn)行時(shí)間,yi為第i階段發(fā)現(xiàn)的輕微問題數(shù),xi為第i階段發(fā)現(xiàn)的非輕微問題數(shù),為獲得輕微問題最小誤差平方和,SSE1對(duì)α1、λ1求偏導(dǎo),得如下方程組:
(14)
為獲得非輕微問題最小誤差平方和,SSE2對(duì)C、γ2、ρ2、α2求偏導(dǎo),得如下方程組:
(15)
在約束條件為:0<α1<∞、0≤λ1≤1、0<α2<∞、0 L(t)=L1(t)+L2(t)=α1[1-(1+t)-λ1]+ (16) 為了證明本模型的有效性,并對(duì)新模型進(jìn)行評(píng)估,引入某軟件測(cè)評(píng)中心針對(duì)網(wǎng)絡(luò)管理系統(tǒng)的測(cè)評(píng)數(shù)據(jù)進(jìn)行評(píng)估。表2給出了缺陷累積數(shù)據(jù)包括問題的發(fā)布時(shí)間及檢測(cè)到不同問題等級(jí)的缺陷總數(shù),測(cè)試團(tuán)隊(duì)從第1周開始測(cè)試直至第32周結(jié)束共發(fā)現(xiàn)問題總數(shù)為2 328個(gè)。 表2 問題缺陷統(tǒng)計(jì)表 續(xù)表2 針對(duì)上述數(shù)據(jù),由式(14)可求得:α1=1 856,λ1=0.25,針對(duì)輕微問題的可靠性模型為: L1(t)=α1[1-(1+t)-λ1]=1 856×[1-(1+t)-0.25] (17) 由式(15)可求得:α2=835,ρ2=0.8,γ2=0.15,θ=0.15,C=0.85,針對(duì)非輕微問題的可靠性模型為: (18) 由式(16)可求得:基于不同問題等級(jí)的不完美排錯(cuò)NHPP可靠性模型為: L(t)=L1(t)+L2(t)=1 856×[1-(1+t)-0.25]+ (19) 針對(duì)問題等級(jí)為輕微時(shí)的故障擬合效果如圖1所示。 圖1 輕微問題故障數(shù)量擬合圖 針對(duì)問題等級(jí)為非輕微時(shí)的故障擬合效果如圖2所示。 圖2 非輕微問題故障數(shù)量擬合圖 通過MSE度量模型與G-O模型、Delayed S-shaped模型、變型S型-TEF模型、Weibull-TEF模型、Logistic-WE模型進(jìn)行比較,比較結(jié)果如表3所示。 表3 MSE比較 通過以上實(shí)驗(yàn)分析,本文對(duì)問題等級(jí)進(jìn)行分類考慮并對(duì)可靠性進(jìn)行綜合之后得到的預(yù)估數(shù)據(jù)擬合效果優(yōu)于現(xiàn)有的模型。 本文通過分析測(cè)試人員對(duì)不同等級(jí)的問題檢測(cè)率有區(qū)別,開發(fā)人員對(duì)不同等級(jí)的問題排錯(cuò)率不同,首次提出了基于問題等級(jí)的不完美排錯(cuò)NHPP可靠性模型。在考慮模型時(shí)綜合考慮了測(cè)試人員的學(xué)習(xí)能力、排錯(cuò)率、及排錯(cuò)時(shí)會(huì)引入新問題的情況,更加切合實(shí)際。通過實(shí)際測(cè)試數(shù)據(jù)對(duì)本模型進(jìn)行應(yīng)用,并與現(xiàn)有模型進(jìn)行比較,證明了本模型的優(yōu)越性。但也有如下不足之處,在考慮開發(fā)人員對(duì)非輕微問題排錯(cuò)時(shí)引入的新問題為非輕微問題,而在實(shí)際中也會(huì)出現(xiàn)對(duì)非輕微問題的排錯(cuò)引入的新問題為輕微問題,針對(duì)此點(diǎn)還需在后續(xù)進(jìn)一步進(jìn)行研究。3 實(shí)驗(yàn)分析
4 結(jié) 語