費(fèi) 琪
(江蘇自動(dòng)化研究所 江蘇 連云港 222061)
軟件定義世界,在當(dāng)今軟件質(zhì)量變得越來(lái)越重要,軟件可靠性直接影響著軟件質(zhì)量和開(kāi)發(fā)成本[1-2],軟件可靠性工程研究的重點(diǎn)和難點(diǎn)便是軟件可靠性評(píng)估[3,11]。軟件可靠性增長(zhǎng)模型是軟件可靠性評(píng)估的一種重要模型,通過(guò)軟件可靠性增長(zhǎng)模型對(duì)軟件可靠性進(jìn)行評(píng)估可以為測(cè)試工作和軟件發(fā)布提供重要的參考依據(jù)。
1970年Goel和Okumoto首次使用非齊次泊松過(guò)程N(yùn)HPP描述軟件可靠性模型,G-O模型[4]。此后在此模型的基礎(chǔ)上,提出了很多新模型[5-10],經(jīng)分析,這些模型存在如下缺陷:
(1) 現(xiàn)有的可靠性模型未與問(wèn)題等級(jí)進(jìn)行關(guān)聯(lián)。不同的問(wèn)題,測(cè)試人員故障檢測(cè)率及開(kāi)發(fā)人員排錯(cuò)率都有差別。
(2) 在對(duì)測(cè)試人員發(fā)現(xiàn)故障時(shí)僅考慮了測(cè)試人員的工作效率或?qū)W習(xí)能力,未與剩余的問(wèn)題數(shù)進(jìn)行關(guān)聯(lián)。同樣能力的2個(gè)測(cè)試人員在測(cè)試產(chǎn)品時(shí),產(chǎn)品剩余的問(wèn)題數(shù)越多,測(cè)試人員發(fā)現(xiàn)問(wèn)題的概率越大,因此在考察故障檢測(cè)率時(shí)不僅要考慮測(cè)試人員的學(xué)習(xí)能力,同時(shí)需考察產(chǎn)品的問(wèn)題數(shù)。
(3) 現(xiàn)有模型有的假設(shè)為排錯(cuò)為完美排錯(cuò),有的假設(shè)為不完美排錯(cuò),但針對(duì)已排除的錯(cuò)誤未考慮到錯(cuò)誤引入率,不能對(duì)故障診斷率、錯(cuò)誤排除率、錯(cuò)誤引入率進(jìn)行綜合考察得出可靠性模型。
按照GJB2786,問(wèn)題等級(jí)劃分為4類(lèi):致命、嚴(yán)重、一般、輕微,其中針對(duì)輕微問(wèn)題的定義為:“給操作員帶來(lái)不方便或麻煩,但不影響所要求的運(yùn)行或任務(wù)的主要功能”。為了本模型更好地建立,本文將問(wèn)題等級(jí)劃分為2類(lèi):輕微問(wèn)題及非輕微問(wèn)題。針對(duì)輕微問(wèn)題及非輕微問(wèn)題的特點(diǎn)總結(jié)如表1所示。

表1 問(wèn)題等級(jí)及特點(diǎn)
在構(gòu)建基于問(wèn)題等級(jí)的不完美排錯(cuò)非齊次泊松過(guò)程可靠性模型時(shí),需做如下假設(shè):
1) 軟件運(yùn)行剖面與可靠性測(cè)試剖面相同。
2) 在任意時(shí)間序列內(nèi)測(cè)試人員發(fā)現(xiàn)的不同問(wèn)題等級(jí)的故障數(shù)是相互無(wú)關(guān)的。
3) 在時(shí)刻t發(fā)現(xiàn)的累計(jì)錯(cuò)誤數(shù)[E(t),t≥0]是一個(gè)隨時(shí)間變化獨(dú)立增長(zhǎng)的過(guò)程,E(t)服從期望函數(shù)為L(zhǎng)(t)的泊松分布(注:輕微問(wèn)題及分輕微問(wèn)題分別服從期望函數(shù)為L(zhǎng)1(t)及L2(t)的Poisson分布)。
4) 在時(shí)間間隔(t,t+Δt)內(nèi),單位時(shí)間所發(fā)現(xiàn)故障數(shù)的期望值與軟件殘留的故障數(shù)成比例,比例為故障檢測(cè)率φ(t),0≤φ(t)≤1,針對(duì)不同問(wèn)題等級(jí)的故障檢測(cè)率φ(t)做如下假設(shè):
① 在時(shí)間間隔(t,t+Δt)內(nèi)軟件殘留的故障數(shù)越多,測(cè)試人員發(fā)現(xiàn)故障的概率越大。
② 針對(duì)問(wèn)題等級(jí)為輕微的問(wèn)題,在不同時(shí)間間隔內(nèi),測(cè)試人員發(fā)現(xiàn)輕微問(wèn)題的概率僅與殘留的故障數(shù)相關(guān),故障檢測(cè)率為φ1(t)。
③ 針對(duì)問(wèn)題等級(jí)為非輕微問(wèn)題,測(cè)試人員發(fā)現(xiàn)非輕微問(wèn)題的概率不僅與殘留的故障數(shù)相關(guān)而且與測(cè)試人員的學(xué)習(xí)能力相關(guān),故障檢測(cè)率為φ2(t)。
5) 在時(shí)間間隔(t,t+Δt)內(nèi),開(kāi)發(fā)人員解決的錯(cuò)誤數(shù)與單位時(shí)間內(nèi)期望發(fā)現(xiàn)的錯(cuò)誤數(shù)成正比,比例為錯(cuò)誤排除率ρ(t),0≤ρ(t)≤1,針對(duì)不同問(wèn)題等級(jí)的錯(cuò)誤排除率ρ(t)做如下假設(shè):
① 問(wèn)題等級(jí)為輕微的問(wèn)題,開(kāi)發(fā)人員易解決,能完全排錯(cuò),錯(cuò)誤排除率為ρ1(t)=1。
② 問(wèn)題等級(jí)為非輕微的問(wèn)題,開(kāi)發(fā)人員不易解決,在排錯(cuò)過(guò)程中可能會(huì)引入新的錯(cuò)誤,錯(cuò)誤排除率為ρ2(t)。
6) 針對(duì)不同等級(jí)的問(wèn)題,排除錯(cuò)誤并非全是完美排錯(cuò),時(shí)間t時(shí)刻預(yù)期的錯(cuò)誤總量ω(t)與預(yù)期初始錯(cuò)誤數(shù)α之差與排除的錯(cuò)誤數(shù)成正比,比例為錯(cuò)誤引入率γ(t),針對(duì)不同問(wèn)題等級(jí)的錯(cuò)誤引入率γ(t)做如下假設(shè):
① 問(wèn)題等級(jí)為輕微的問(wèn)題,開(kāi)發(fā)人員排錯(cuò)過(guò)程中不會(huì)引入新的錯(cuò)誤,即錯(cuò)誤引入率為γ1(t)=0。
② 問(wèn)題等級(jí)為非輕微的問(wèn)題,開(kāi)發(fā)人員在解決問(wèn)題時(shí)有可能引入新問(wèn)題,在此假設(shè)引入的新問(wèn)題為非輕微問(wèn)題,錯(cuò)誤引入率為γ2(t)。
③t時(shí)刻預(yù)期的輕微問(wèn)題總量為ω1(t),初始預(yù)期錯(cuò)誤數(shù)為α1;t時(shí)刻預(yù)期的非輕微問(wèn)題總量為ω2(t),初始預(yù)期錯(cuò)誤數(shù)為α2。
在上述6個(gè)假設(shè)中前3個(gè)假設(shè)為NHPP可靠性模型的基本假設(shè),后3個(gè)假設(shè)則是為反映NHPP可靠性模型與問(wèn)題等級(jí)關(guān)聯(lián)而特別提出的。
依據(jù)基于問(wèn)題等級(jí)的不完美排錯(cuò)NHPP可靠性模型假設(shè)4)得如下方程:

(1)
式中:ξ1(t)表示t時(shí)刻開(kāi)發(fā)人員已經(jīng)解決的輕微問(wèn)題數(shù)。
(2)
依據(jù)基于問(wèn)題等級(jí)的不完美排錯(cuò)NHPP可靠性模型假設(shè)6)中開(kāi)發(fā)人員對(duì)輕微問(wèn)題解決時(shí)不會(huì)引入新的問(wèn)題,故任意時(shí)刻的問(wèn)題總數(shù)與初始預(yù)期問(wèn)題總數(shù)相同,即:ω1(t)=α1。

(3)
式中:λ1表示初始時(shí)刻測(cè)試人員發(fā)現(xiàn)輕微問(wèn)題故障的檢測(cè)率。
由式(1)-式(3)可得問(wèn)題等級(jí)為輕微問(wèn)題的NHPP可靠性模型為:
(4)
對(duì)式(4)進(jìn)行求解可得問(wèn)題等級(jí)為輕微問(wèn)題的累計(jì)故障數(shù)為:
L1(t)=α1[1-(1+t)-λ1]
(5)
依據(jù)基于問(wèn)題等級(jí)的不完美排錯(cuò)NHPP可靠性模型假設(shè)4)得如下方程:

(6)
式中:ξ2(t)表示t時(shí)刻開(kāi)發(fā)人員已經(jīng)解決的非輕微問(wèn)題數(shù)。
我的工作也不是天天去做,接了電話我便拿了門(mén)球棒到門(mén)球場(chǎng)去。吳小哥就是認(rèn)準(zhǔn)了門(mén)球場(chǎng)。雖說(shuō)醒了過(guò)來(lái),可是他的意識(shí)還很脆弱,稍一變換場(chǎng)景,他就會(huì)陷入糊涂中。第一次見(jiàn)面,我就告誡自己一定要演好這個(gè)古大富。一方面是出于對(duì)吳小哥的同情。一方面這也是我的工作。只是陪著扯扯閑篇,一個(gè)月就收入五百塊,這和彎腰拾錢(qián)有啥區(qū)別。這時(shí)我又想起了那個(gè)小伙子說(shuō)過(guò)的話:彎腰會(huì)不?只要彎腰,就能撿到錢(qián)。
依據(jù)基于問(wèn)題等級(jí)的不完美排錯(cuò)NHPP可靠性模型假設(shè)5)得如下方程:
(7)
依據(jù)基于問(wèn)題等級(jí)的不完美排錯(cuò)NHPP可靠性模型假設(shè)6)得如下方程:
ω2(t)=α2+γ2(t)×ξ2(t)
(8)
依據(jù)基于問(wèn)題等級(jí)的不完美排錯(cuò)NHPP可靠性模型假設(shè)4)中測(cè)試人員對(duì)非輕微問(wèn)題的故障檢測(cè)率不僅與測(cè)試人員對(duì)軟件的熟悉程度、測(cè)試人員的學(xué)習(xí)認(rèn)知能力相關(guān),而且與軟件中殘留的故障數(shù)相關(guān)。測(cè)試人員對(duì)軟件的學(xué)習(xí)認(rèn)知能力會(huì)隨時(shí)間的增長(zhǎng)而熟練,符合S型增長(zhǎng)曲線,在此本文使用Logistic模型來(lái)描述測(cè)試人員對(duì)軟件的學(xué)習(xí)能力隨時(shí)間的變化,Logistic學(xué)習(xí)模型為如下方程:
(9)
式中:C表示測(cè)試人員對(duì)軟件的熟悉程度,θ表示測(cè)試人員對(duì)軟件的掌握速率。

(10)
開(kāi)發(fā)人員對(duì)錯(cuò)誤的排除率一般而言與時(shí)間無(wú)關(guān),在此假設(shè)錯(cuò)誤排除率為常數(shù),ρ2(t)=ρ2,0≤ρ2≤1,開(kāi)發(fā)人員排除錯(cuò)誤時(shí)錯(cuò)誤引入率與時(shí)間也無(wú)關(guān),故假設(shè)錯(cuò)誤引入率也為常數(shù),γ2(t)=γ2,0≤γ2≤1。
由式(6)-式(8)、式(10)可得問(wèn)題等級(jí)為非輕微問(wèn)題的NHPP可靠性模型為:
(11)
對(duì)式(11)進(jìn)行求解可得問(wèn)題等級(jí)為非輕微問(wèn)題的累計(jì)故障數(shù)為:

(12)
為了更好地預(yù)估問(wèn)題等級(jí)為輕微問(wèn)題及非輕微問(wèn)題累計(jì)故障函數(shù)中的參數(shù),采用最小誤差平方和來(lái)計(jì)算:
(13)
式中:n為測(cè)試階段數(shù),ti為i階段軟件累計(jì)運(yùn)行時(shí)間,yi為第i階段發(fā)現(xiàn)的輕微問(wèn)題數(shù),xi為第i階段發(fā)現(xiàn)的非輕微問(wèn)題數(shù),為獲得輕微問(wèn)題最小誤差平方和,SSE1對(duì)α1、λ1求偏導(dǎo),得如下方程組:
(14)
為獲得非輕微問(wèn)題最小誤差平方和,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ù)包括問(wèn)題的發(fā)布時(shí)間及檢測(cè)到不同問(wèn)題等級(jí)的缺陷總數(shù),測(cè)試團(tuán)隊(duì)從第1周開(kāi)始測(cè)試直至第32周結(jié)束共發(fā)現(xiàn)問(wèn)題總數(shù)為2 328個(gè)。 表2 問(wèn)題缺陷統(tǒng)計(jì)表 續(xù)表2 針對(duì)上述數(shù)據(jù),由式(14)可求得:α1=1 856,λ1=0.25,針對(duì)輕微問(wèn)題的可靠性模型為: 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ì)非輕微問(wèn)題的可靠性模型為: (18) 由式(16)可求得:基于不同問(wèn)題等級(jí)的不完美排錯(cuò)NHPP可靠性模型為: L(t)=L1(t)+L2(t)=1 856×[1-(1+t)-0.25]+ (19) 針對(duì)問(wèn)題等級(jí)為輕微時(shí)的故障擬合效果如圖1所示。 圖1 輕微問(wèn)題故障數(shù)量擬合圖 針對(duì)問(wèn)題等級(jí)為非輕微時(shí)的故障擬合效果如圖2所示。 圖2 非輕微問(wèn)題故障數(shù)量擬合圖 通過(guò)MSE度量模型與G-O模型、Delayed S-shaped模型、變型S型-TEF模型、Weibull-TEF模型、Logistic-WE模型進(jìn)行比較,比較結(jié)果如表3所示。 表3 MSE比較 通過(guò)以上實(shí)驗(yàn)分析,本文對(duì)問(wèn)題等級(jí)進(jìn)行分類(lèi)考慮并對(duì)可靠性進(jìn)行綜合之后得到的預(yù)估數(shù)據(jù)擬合效果優(yōu)于現(xiàn)有的模型。 本文通過(guò)分析測(cè)試人員對(duì)不同等級(jí)的問(wèn)題檢測(cè)率有區(qū)別,開(kāi)發(fā)人員對(duì)不同等級(jí)的問(wèn)題排錯(cuò)率不同,首次提出了基于問(wèn)題等級(jí)的不完美排錯(cuò)NHPP可靠性模型。在考慮模型時(shí)綜合考慮了測(cè)試人員的學(xué)習(xí)能力、排錯(cuò)率、及排錯(cuò)時(shí)會(huì)引入新問(wèn)題的情況,更加切合實(shí)際。通過(guò)實(shí)際測(cè)試數(shù)據(jù)對(duì)本模型進(jìn)行應(yīng)用,并與現(xiàn)有模型進(jìn)行比較,證明了本模型的優(yōu)越性。但也有如下不足之處,在考慮開(kāi)發(fā)人員對(duì)非輕微問(wèn)題排錯(cuò)時(shí)引入的新問(wèn)題為非輕微問(wèn)題,而在實(shí)際中也會(huì)出現(xiàn)對(duì)非輕微問(wèn)題的排錯(cuò)引入的新問(wèn)題為輕微問(wèn)題,針對(duì)此點(diǎn)還需在后續(xù)進(jìn)一步進(jìn)行研究。3 實(shí)驗(yàn)分析





4 結(jié) 語(yǔ)