邱 慧, 閆相斌, 彭 銳
(1.運城學院 經(jīng)濟管理系,山西 運城 044000; 2.北京科技大學 經(jīng)濟管理學院,北京 100083; 3.北京工業(yè)大學 經(jīng)濟管理學院,北京 100022)
隨著應用軟件系統(tǒng)規(guī)模越做越大越復雜,其可靠性越來越難保證。應用本身對系統(tǒng)運行的可靠性要求越來越高,其軟件系統(tǒng)的可靠性也直接關系到自身的聲譽和生存發(fā)展競爭能力。可靠性領域學者對軟件可靠性進行了研究,提出和開發(fā)了許多技術[1~3]。 為了保證軟件的可靠性,軟件在上市之前通常需要經(jīng)過一個很長的測試階段。在軟件測試階段,調試人員可以檢測到軟件缺陷并最終剔除[4]。為了研究軟件在測試過程中的可靠性,許多軟件可靠性增長模型被提出,其中非齊次泊松過程(NHPP)模型被廣泛應用。這些模型在促進管理層做出一些重要決策(如確定最佳軟件發(fā)布時間)方面發(fā)揮了重要作用。實際上,在測試階段檢測到的缺陷需要報告、診斷并最終剔除。因此,調試延遲是不可忽視的。調試延遲是指從缺陷檢測到缺陷剔除的時間。在過去的十年中,學者們提出了一些考慮調試延遲的模型[5~8]。雖然這些工作使軟件可靠性模型更接近現(xiàn)實,但是這些模型中的大多數(shù)都假設所有的缺陷都具有相同的檢測率或/和剔除率。然而,這種假設在實踐中可能并不正確,不同的缺陷可能需要不同的測試工作量和測試策略來將其從系統(tǒng)中剔除[9]。也就是說,在實際測試階段,不同類型的缺陷可能有不同的檢測或/和剔除率。檢測率或剔除率在很大程度上取決于測試團隊的技能、程序的大小、軟件的可測試性、缺陷密度和資源分配等參數(shù)。Yamada等[10]人較早從檢測過程出發(fā),指出根據(jù)軟件測試人員的測試經(jīng)驗可得軟件一般包含兩種類型缺陷:簡單缺陷和困難缺陷。即,一種缺陷容易檢測到而另一種缺陷難檢測到。Kimura等[11,12]人再次提出根據(jù)軟件測試人員的測試經(jīng)驗假設軟件包含兩種類型的缺陷,即簡單缺陷和困難缺陷,并給出指數(shù)S型模型。Verma等[13]人把軟件中的缺陷方便剔除的稱為簡單,難剔除和耗時的稱為困難,比較耗時、費力和需要相當專業(yè)知識的稱為復雜,結合軟件升級后對原版本中存在簡單、困難和復雜三種類型的缺陷進行剔除。以上研究成果為本文的開展打下了堅實的基礎,但他們沒有對缺陷檢測過程(FDP)和缺陷剔除過程(FCP)分別進行建模。本文在已有文獻的基礎上,給出分類的一般模型和四種分類的具體模型。通過與一些特殊情況的比較,說明了考慮不同檢測和剔除率的重要性。
假設軟件缺陷總數(shù)服從泊松分布,其期望值為a。缺陷檢測和剔除時間呈指數(shù)分布,將相應的指數(shù)分布的參數(shù)稱為缺陷檢測率和剔除率。檢測缺陷具有m個類型,所占比例分別為p1,p2,…,pm(p1+p2+…+pm=1), 相應地檢測率為b1,b2,…,bm。假設剔除缺陷具有n種類型,所占比例分別為q1,q2,…,qn(q1+q2+…+qn=1),相應地剔除率為c1,c2,…,cn。 假設軟件缺陷的檢出率和剔除率是獨立的。
根據(jù)上述假設,缺陷處于第i類檢測類型且第j類剔除類型的期望缺陷數(shù)是apiqj,(i=1,2,…,m;j=1,…,n)。
軟件可靠性增長模型通常用均值函數(shù)表示,均值函數(shù)是在測試過程中t時刻檢測過程或剔除過程中累積缺陷的期望數(shù)。因此,t時刻第i類檢測類型且第j類剔除類型的缺陷在檢測和剔除過程的累積缺陷數(shù)的均值函數(shù)分別為mdij(t),mcij(t)。這里下標,“d” 意為檢測, “c”意為剔除,i=1,2,…,m;j=1,2,…,n。
我們假設每種類型缺陷的檢測過程(FDP)服從非齊次泊松過程(NHPP),而在(t,t+Δt)期間檢測到的缺陷的期望數(shù)與在時刻t未檢測到的缺陷數(shù)成正比,故有
mdij(t)=apiqj(1-e-bit)
(1)
檢測過程累積缺陷數(shù)的均值函數(shù)為
(2)
缺陷剔除過程(FCP)可以看作是缺陷檢測過程(FDP)的一個延遲過程。我們假設每種缺陷的FCP服從NHPP,并且在(t,t+Δt)期間剔除的缺陷的期望數(shù)與在時刻t未剔除的缺陷數(shù)成正比。不難得到
mc1j(t)+mc2j(t)+…+mcmj(t)
(3)
剔除過程累積缺陷數(shù)的均值函數(shù)為
(4)
對軟件系統(tǒng)進行測試時,經(jīng)常會遇到有些缺陷花很少的時間就能檢測出來或進行剔除。反之,由于技術人員專業(yè)水平和系統(tǒng)難度系數(shù)等因素有些缺陷很難檢測出來或者剔除成功。為了進一步說明問題,我們構建具體模型,即把缺陷分為四種類型。假設缺陷分為四類:1)容易檢測和容易剔除;2)容易檢測但難以剔除;3)難以檢測但容易剔除;4)難以檢測和難以剔除。
假設容易檢測的缺陷比例為p,容易剔除的缺陷比例為q。由于容易檢測的缺陷不一定容易剔除,所以假設容易檢測過程和容易剔除過程是相互獨立的。因此,容易檢測和剔除的缺陷期望數(shù)是apq,容易檢測和難以剔除的缺陷期望數(shù)是ap(1-q),難以檢測和容易剔除的缺陷期望數(shù)是a(1-p)q,難以檢測和難以剔除的缺陷期望數(shù)是a(1-p)(1-q)。
容易檢測的缺陷檢測率為b1,難以檢測的缺陷檢測率為b2,且b2 在我們的案例中,假設有四種類型的缺陷其檢測過程和剔除過程的均值函數(shù)可以表示為mdi(t)和mci(t)。其中下標“d”表示“檢測”,“c”表示“剔除”,“i=1,2,3,4”表示缺陷類型。 我們假設每種類型缺陷的檢測過程(FDP)服從非齊次泊松過程(NHPP),而在(t,t+Δt)期間檢測到的缺陷的期望數(shù)與在時刻未檢測到的缺陷數(shù)成正比,故有 md1(t)=apq(1-e-b1t) (5) md2(t)=ap(1-q)(1-e-b1t) (6) md3(t)=a(1-p)q(1-e-b2t) (7) md4(t)=a(1-p)(1-q)(1-e-b2t) (8) 將這四種類型缺陷組合在一起,得到檢測過程累積缺陷數(shù)的均值函數(shù)為 md(t)=ap(1-e-b1t)+a(1-p)(1-e-b2t) (9) 這里,md(0)=0,md(∞)=a。 由公式(15)可得,在t時刻的檢測率為 (10) 對于這四種類型的缺陷,F(xiàn)CP可以看作是FDP的一個延遲過程。由于類型1缺陷和類型3缺陷都易于剔除,因此我們將它們放在一起建模。類似地,我們將缺陷類型2和缺陷類型4放在一起建模。很容易得到, (11) (12) 結合公式(11)和(12)得到剔除過程累積缺陷數(shù)的均值函數(shù)為 a(1-q)(1-e-c2t) (13) 為了說明考慮四種類型的優(yōu)點,我們需要與特殊情況進行比較。為了便于討論,將(9)和(13)所描述的模型稱為M1。這里選擇檢測缺陷不分容易和困難,剔除缺陷有容易和困難兩種情況,即缺陷檢測率相同,但剔除率不同的模型記為M2;檢測缺陷有容易和困難兩種情況,剔除缺陷不分容易和困難,即缺陷剔除率相同但檢測率不同的模型記為M3,檢測和剔除缺陷都不分容易和困難的模型記為M4。 數(shù)據(jù)集來自羅馬航空發(fā)展中心的System T1數(shù)據(jù)[7]。該數(shù)據(jù)集應用廣泛,既包含缺陷檢測數(shù)據(jù),又包含缺陷剔除數(shù)據(jù)。表1顯示了前21周內檢測到的缺陷和剔除的缺陷的累積數(shù)。在此期間,消耗了300.1小時的計算機時間,發(fā)現(xiàn)并剔除了136個缺陷。 表1 數(shù)據(jù)集:系統(tǒng)T1 本算例使用最小二乘法對數(shù)據(jù)集進行了擬合。四種模型M1~M4對數(shù)據(jù)集的估計參數(shù)見表2。 表2 數(shù)據(jù)集模型參數(shù)估計值 從表2可以看出, 在模型M1中的待估參數(shù)a(缺陷總數(shù))的值與Kapur和Younes[14]報告里面三年后測試檢測到的缺陷數(shù)量188非常接近。從模型M1中可以看出,故障容易檢測率b1并不等于故障難檢測率b2,這表明容易檢測和難檢測的現(xiàn)象存在。類似的,故障容易剔除率c1并不等于故障難剔除率c2,這表明容易剔除和難剔除的現(xiàn)象存在。特別地,模型M1的RMSE值明顯小于其他三種模型的值。模型M4的RMSE值是最大的,它表明,如果不區(qū)分容易和困難兩種類型,結果是最壞的。結果表明,考慮不同的檢測率和剔除率確實有一定的優(yōu)勢。 本算例使用兩種預測有效性度量方法對模型進行檢驗。四種模型M1~M4的預測度量結果如表3所示。 在給定算例21組數(shù)據(jù)集中分別選取15組、19組數(shù)據(jù)擬合模型,然后用剩下的數(shù)據(jù)進行預測有效性分析。 從表3可以看出, 在RMSE預測方法中k=15與k=19時,模型M1的RMSE值都是最小的。在ARPE預測方法中k=15與k=19時,模型M1的ARPE值也都是最小的。由此我們最終應該選擇模型M1。即,考慮不同的檢測率和剔除率結果優(yōu)于其他模型。 表3 預測度量結果 確定最佳發(fā)布時間是軟件項目的一個關鍵決策,它通??紤]成本和軟件可靠性。在本節(jié)中,基于所提出的模型構建考慮成本和軟件可靠性的最優(yōu)發(fā)布策略模型。假設在可靠性約束下使總成本最小化的最優(yōu)發(fā)布時間為。據(jù)此,基于混合準則發(fā)布策略模型如下: min:C(T)=k1[md1(T)+md2(T)]+k2[md3(T)+md4(T)]+k3[mc1(T)+mc3(T)]+ k4[mc2(T)+mc4(T)]+k5[md1(∞)+md3(∞)-mc1(T)-mc3(T)]+ k6[md2(∞)+md4(∞)-mc2(T)-mc4(T)]+k7T (14) 為了驗證模型的有效性,我們使用第二部分的模型M1來求解軟件發(fā)布策略。模型M1的參數(shù)分別為a=192.8715,p=0.0179,b1=0.0047,b2=0.0039,q=0.0385,c1=0.0398,c2=0.0258。假設k1=50,k2=100,k3=200,k4=300,k5=1000,k6=1500,k7=30,ΔT=12,R1(T)=0.95,R2(T)=0.95。將這些參數(shù)代入成本函數(shù)和可靠性準則約束條件中,就可以得到軟件最優(yōu)分布時間。 圖1 M1模型的成本函數(shù)和可靠性準則圖 當R1(T)=0.95時,T1=807.4737。當R2(T)=0.95時,T2=1323。成本函數(shù)C(T3)最小值為110700,這時使得成本函數(shù)最小的T3=892.4593。關于約束條件(可靠性準則),R1(T),R2(T)和成本函數(shù)C(T)的圖形如圖1所示。在圖1中我們可以看到,當考慮R1(T)和C(T)時,最優(yōu)分布時間等于成本函數(shù)取得最小值時的時間,即T3。 因此,最優(yōu)分布時間T*=892.4593。相應的最小成本C(T*)=110700。當考慮R2(T)和C(T)時,最優(yōu)分布時間等于T2。因此,最優(yōu)分布時間T*=1323,相應的最小成本C(T*)=117360。 本文提出了一種考慮多種類型缺陷和不同檢測/剔除率的軟件可靠性建模框架。為了進一步解釋模型框架,給出四種類型缺陷的具體模型。具體分類情況可以根據(jù)模型的檢驗方法(擬合準則和預測有效性度量)和模型復雜度來具體決定,如果有測試人員的分類建議或者分類數(shù)據(jù),可以結合模型共同決定。已有故障分類文獻,只考慮了一種過程,本文提出了缺陷檢測和剔除兩種過程的模型。首先從兩種過程:缺陷檢測過程(FDP)和缺陷剔除過程(FCP)出發(fā),給出考慮多種類型缺陷的一般模型,然后構建四種類型缺陷的具體模型。四種類型分為:1)容易檢測和容易剔除;2)容易檢測但難以剔除;3)難以檢測但容易剔除;4)難以檢測和難以剔除。為了驗證模型的有效性,對考慮四種類型缺陷的模型與實際數(shù)據(jù)集進行了擬合和預測有效性度量。結果顯示了考慮不同類型缺陷效果最好。最后,為了對模型進行實際應用,給出了軟件最優(yōu)發(fā)布策略。 本文假設缺陷是否容易剔除與缺陷是否容易檢測無關。在未來,可以研究易檢測性和易剔除性之間的依賴關系。另一項未來的工作是將缺陷引入效應也納入其中。例如,可以假設在剔除難以剔除的缺陷時,往往會引入更多的缺陷。2.1 缺陷檢測過程模型建立
2.2 缺陷剔除過程模型建立
2.3 模型比較
3 算例分析
3.1 擬合效果分析
3.2 預測有效性分析
4 軟件發(fā)布優(yōu)化策略
4.4 軟件發(fā)布策略算例分析
5 結論