?

基于問題等級的不完美排錯NHPP可靠性模型

2019-04-01 09:27
計算機應用與軟件 2019年3期
關鍵詞:測試人員開發人員可靠性

費 琪

(江蘇自動化研究所 江蘇 連云港 222061)

0 引 言

軟件定義世界,在當今軟件質量變得越來越重要,軟件可靠性直接影響著軟件質量和開發成本[1-2],軟件可靠性工程研究的重點和難點便是軟件可靠性評估[3,11]。軟件可靠性增長模型是軟件可靠性評估的一種重要模型,通過軟件可靠性增長模型對軟件可靠性進行評估可以為測試工作和軟件發布提供重要的參考依據。

1970年Goel和Okumoto首次使用非齊次泊松過程NHPP描述軟件可靠性模型,G-O模型[4]。此后在此模型的基礎上,提出了很多新模型[5-10],經分析,這些模型存在如下缺陷:

(1) 現有的可靠性模型未與問題等級進行關聯。不同的問題,測試人員故障檢測率及開發人員排錯率都有差別。

(2) 在對測試人員發現故障時僅考慮了測試人員的工作效率或學習能力,未與剩余的問題數進行關聯。同樣能力的2個測試人員在測試產品時,產品剩余的問題數越多,測試人員發現問題的概率越大,因此在考察故障檢測率時不僅要考慮測試人員的學習能力,同時需考察產品的問題數。

(3) 現有模型有的假設為排錯為完美排錯,有的假設為不完美排錯,但針對已排除的錯誤未考慮到錯誤引入率,不能對故障診斷率、錯誤排除率、錯誤引入率進行綜合考察得出可靠性模型。

按照GJB2786,問題等級劃分為4類:致命、嚴重、一般、輕微,其中針對輕微問題的定義為:“給操作員帶來不方便或麻煩,但不影響所要求的運行或任務的主要功能”。為了本模型更好地建立,本文將問題等級劃分為2類:輕微問題及非輕微問題。針對輕微問題及非輕微問題的特點總結如表1所示。

表1 問題等級及特點

1 基于問題等級的不完美排錯NHPP可靠性模型建立

在構建基于問題等級的不完美排錯非齊次泊松過程可靠性模型時,需做如下假設:

1) 軟件運行剖面與可靠性測試剖面相同。

2) 在任意時間序列內測試人員發現的不同問題等級的故障數是相互無關的。

3) 在時刻t發現的累計錯誤數[E(t),t≥0]是一個隨時間變化獨立增長的過程,E(t)服從期望函數為L(t)的泊松分布(注:輕微問題及分輕微問題分別服從期望函數為L1(t)及L2(t)的Poisson分布)。

4) 在時間間隔(t,t+Δt)內,單位時間所發現故障數的期望值與軟件殘留的故障數成比例,比例為故障檢測率φ(t),0≤φ(t)≤1,針對不同問題等級的故障檢測率φ(t)做如下假設:

① 在時間間隔(t,t+Δt)內軟件殘留的故障數越多,測試人員發現故障的概率越大。

② 針對問題等級為輕微的問題,在不同時間間隔內,測試人員發現輕微問題的概率僅與殘留的故障數相關,故障檢測率為φ1(t)。

③ 針對問題等級為非輕微問題,測試人員發現非輕微問題的概率不僅與殘留的故障數相關而且與測試人員的學習能力相關,故障檢測率為φ2(t)。

5) 在時間間隔(t,t+Δt)內,開發人員解決的錯誤數與單位時間內期望發現的錯誤數成正比,比例為錯誤排除率ρ(t),0≤ρ(t)≤1,針對不同問題等級的錯誤排除率ρ(t)做如下假設:

① 問題等級為輕微的問題,開發人員易解決,能完全排錯,錯誤排除率為ρ1(t)=1。

② 問題等級為非輕微的問題,開發人員不易解決,在排錯過程中可能會引入新的錯誤,錯誤排除率為ρ2(t)。

6) 針對不同等級的問題,排除錯誤并非全是完美排錯,時間t時刻預期的錯誤總量ω(t)與預期初始錯誤數α之差與排除的錯誤數成正比,比例為錯誤引入率γ(t),針對不同問題等級的錯誤引入率γ(t)做如下假設:

① 問題等級為輕微的問題,開發人員排錯過程中不會引入新的錯誤,即錯誤引入率為γ1(t)=0。

② 問題等級為非輕微的問題,開發人員在解決問題時有可能引入新問題,在此假設引入的新問題為非輕微問題,錯誤引入率為γ2(t)。

③t時刻預期的輕微問題總量為ω1(t),初始預期錯誤數為α1;t時刻預期的非輕微問題總量為ω2(t),初始預期錯誤數為α2。

在上述6個假設中前3個假設為NHPP可靠性模型的基本假設,后3個假設則是為反映NHPP可靠性模型與問題等級關聯而特別提出的。

1.1 輕微問題NHPP可靠性模型建立

依據基于問題等級的不完美排錯NHPP可靠性模型假設4)得如下方程:

(1)

式中:ξ1(t)表示t時刻開發人員已經解決的輕微問題數。

(2)

依據基于問題等級的不完美排錯NHPP可靠性模型假設6)中開發人員對輕微問題解決時不會引入新的問題,故任意時刻的問題總數與初始預期問題總數相同,即:ω1(t)=α1。

(3)

式中:λ1表示初始時刻測試人員發現輕微問題故障的檢測率。

由式(1)-式(3)可得問題等級為輕微問題的NHPP可靠性模型為:

(4)

對式(4)進行求解可得問題等級為輕微問題的累計故障數為:

L1(t)=α1[1-(1+t)-λ1]

(5)

1.2 非輕微問題不完美排錯NHPP可靠性模型建立

依據基于問題等級的不完美排錯NHPP可靠性模型假設4)得如下方程:

(6)

式中:ξ2(t)表示t時刻開發人員已經解決的非輕微問題數。

我的工作也不是天天去做,接了電話我便拿了門球棒到門球場去。吳小哥就是認準了門球場。雖說醒了過來,可是他的意識還很脆弱,稍一變換場景,他就會陷入糊涂中。第一次見面,我就告誡自己一定要演好這個古大富。一方面是出于對吳小哥的同情。一方面這也是我的工作。只是陪著扯扯閑篇,一個月就收入五百塊,這和彎腰拾錢有啥區別。這時我又想起了那個小伙子說過的話:彎腰會不?只要彎腰,就能撿到錢。

依據基于問題等級的不完美排錯NHPP可靠性模型假設5)得如下方程:

(7)

依據基于問題等級的不完美排錯NHPP可靠性模型假設6)得如下方程:

ω2(t)=α2+γ2(t)×ξ2(t)

(8)

依據基于問題等級的不完美排錯NHPP可靠性模型假設4)中測試人員對非輕微問題的故障檢測率不僅與測試人員對軟件的熟悉程度、測試人員的學習認知能力相關,而且與軟件中殘留的故障數相關。測試人員對軟件的學習認知能力會隨時間的增長而熟練,符合S型增長曲線,在此本文使用Logistic模型來描述測試人員對軟件的學習能力隨時間的變化,Logistic學習模型為如下方程:

(9)

式中:C表示測試人員對軟件的熟悉程度,θ表示測試人員對軟件的掌握速率。

(10)

開發人員對錯誤的排除率一般而言與時間無關,在此假設錯誤排除率為常數,ρ2(t)=ρ2,0≤ρ2≤1,開發人員排除錯誤時錯誤引入率與時間也無關,故假設錯誤引入率也為常數,γ2(t)=γ2,0≤γ2≤1。

由式(6)-式(8)、式(10)可得問題等級為非輕微問題的NHPP可靠性模型為:

(11)

對式(11)進行求解可得問題等級為非輕微問題的累計故障數為:

(12)

2 最大似然估計及模型求解

為了更好地預估問題等級為輕微問題及非輕微問題累計故障函數中的參數,采用最小誤差平方和來計算:

(13)

式中:n為測試階段數,ti為i階段軟件累計運行時間,yi為第i階段發現的輕微問題數,xi為第i階段發現的非輕微問題數,為獲得輕微問題最小誤差平方和,SSE1對α1、λ1求偏導,得如下方程組:

(14)

為獲得非輕微問題最小誤差平方和,SSE2對C、γ2、ρ2、α2求偏導,得如下方程組:

(15)

在約束條件為:0<α1<∞、0≤λ1≤1、0<α2<∞、0

L(t)=L1(t)+L2(t)=α1[1-(1+t)-λ1]+

(16)

3 實驗分析

為了證明本模型的有效性,并對新模型進行評估,引入某軟件測評中心針對網絡管理系統的測評數據進行評估。表2給出了缺陷累積數據包括問題的發布時間及檢測到不同問題等級的缺陷總數,測試團隊從第1周開始測試直至第32周結束共發現問題總數為2 328個。

表2 問題缺陷統計表

續表2

針對上述數據,由式(14)可求得:α1=1 856,λ1=0.25,針對輕微問題的可靠性模型為:

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,針對非輕微問題的可靠性模型為:

(18)

由式(16)可求得:基于不同問題等級的不完美排錯NHPP可靠性模型為:

L(t)=L1(t)+L2(t)=1 856×[1-(1+t)-0.25]+

(19)

針對問題等級為輕微時的故障擬合效果如圖1所示。

圖1 輕微問題故障數量擬合圖

針對問題等級為非輕微時的故障擬合效果如圖2所示。

圖2 非輕微問題故障數量擬合圖

通過MSE度量模型與G-O模型、Delayed S-shaped模型、變型S型-TEF模型、Weibull-TEF模型、Logistic-WE模型進行比較,比較結果如表3所示。

表3 MSE比較

通過以上實驗分析,本文對問題等級進行分類考慮并對可靠性進行綜合之后得到的預估數據擬合效果優于現有的模型。

4 結 語

本文通過分析測試人員對不同等級的問題檢測率有區別,開發人員對不同等級的問題排錯率不同,首次提出了基于問題等級的不完美排錯NHPP可靠性模型。在考慮模型時綜合考慮了測試人員的學習能力、排錯率、及排錯時會引入新問題的情況,更加切合實際。通過實際測試數據對本模型進行應用,并與現有模型進行比較,證明了本模型的優越性。但也有如下不足之處,在考慮開發人員對非輕微問題排錯時引入的新問題為非輕微問題,而在實際中也會出現對非輕微問題的排錯引入的新問題為輕微問題,針對此點還需在后續進一步進行研究。

猜你喜歡
測試人員開發人員可靠性
基于AK-IS法的航空齒輪泵滑動軸承可靠性分析
討論如何提高建筑電氣設計的可靠性和經濟性
論職務犯罪偵查中測謊技術的應用與完善*
Semtech發布LoRa Basics 以加速物聯網應用
合理使用及正確測試以提升DC/DC變換器可靠性
淺析軟件測試中的心理學應用
GO-FLOW法在飛機EHA可靠性分析中的應用
綠植防輻射只是個傳說,是真的嗎?
后悔了?教你隱藏開發人員選項
三星SMI擴展Java論壇 開發人員可用母語
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合