專利名稱:基于貝葉斯方法的軟件運(yùn)行剖面獲取方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種軟件運(yùn)行剖面獲取技術(shù),特別是一種基于貝葉斯方法的軟件運(yùn)行剖面獲取技術(shù)。
背景技術(shù):
隨著軟件功能的增強(qiáng),軟件規(guī)模的增大,軟件的質(zhì)量越來(lái)越重要,軟件可靠性評(píng)估就是衡量軟件質(zhì)量的有力手段。軟件可靠性是軟件無(wú)失效運(yùn)行的定量的度量。在對(duì)軟件進(jìn)行可靠性分析時(shí),軟件運(yùn)行剖面直接影響了軟件的可靠性。軟件運(yùn)行剖面(software operational profile)是指軟件的數(shù)據(jù)環(huán)境,指軟件數(shù)據(jù)輸入域以及各種輸入數(shù)據(jù)的組合使用的機(jī)會(huì)(概率)。
把軟件看作是輸入數(shù)據(jù)域到輸出數(shù)據(jù)的映射,由于軟件輸入數(shù)據(jù)很復(fù)雜,所以把軟件的輸入數(shù)據(jù)域劃分成等價(jià)的幾類輸入,這些輸入等價(jià)類在軟件運(yùn)行過程中被使用的概率就可以近似看成軟件運(yùn)行剖面。
軟件運(yùn)行剖面對(duì)于軟件開發(fā)的整個(gè)過程都具有指導(dǎo)意義。在設(shè)計(jì)時(shí),基于運(yùn)行剖面的分析、設(shè)計(jì)使得軟件開發(fā)目標(biāo)更明確;在開發(fā)完成后,軟件運(yùn)行剖面可用于指導(dǎo)軟件測(cè)試過程,集中精力對(duì)使用概率較高的等價(jià)類進(jìn)行測(cè)試。同時(shí),也可以使開發(fā)人員之間交流,開發(fā)人員與用戶交流,對(duì)客戶培訓(xùn)更有的放矢。同樣,軟件運(yùn)行剖面的考慮也可以提高管理人員的管理效率。
對(duì)于軟件運(yùn)行剖面的獲取,已經(jīng)出現(xiàn)多種方法,其中有的假設(shè)軟件運(yùn)行剖面為靜態(tài)的、時(shí)齊次的概率分布模型,也有的假設(shè)軟件運(yùn)行剖面為離散的馬爾科夫鏈的模型,還有的將軟件運(yùn)行剖面看成是連續(xù)時(shí)間的馬爾科夫鏈的模型,以及將軟件運(yùn)行剖面看作是泊松過程的模型等。其中,目前使用較多的是靜態(tài)分布模型。但在測(cè)試用例樣本較少時(shí),使用靜態(tài)模型得出的結(jié)果不能正確反映運(yùn)行剖面。
發(fā)明內(nèi)容
本發(fā)明技術(shù)解決問題是克服現(xiàn)有技術(shù)的不足,提供一種基于貝葉斯方法的軟件運(yùn)行剖面獲取方法,該方法不僅可以提高軟件運(yùn)行剖面獲取的精度,而且還可以提高軟件運(yùn)行剖面獲取的穩(wěn)定性。
本發(fā)明的技術(shù)解決方案是基于貝葉斯方法的軟件運(yùn)行剖面獲取方法,其特點(diǎn)在于按下列步驟獲取軟件運(yùn)行剖面(1)確定軟件運(yùn)行剖面的先驗(yàn)分布;先驗(yàn)分布的獲取主要有三種方法一是根據(jù)專家經(jīng)驗(yàn)來(lái)確定各節(jié)點(diǎn)先驗(yàn)分布,二是根據(jù)歷史數(shù)據(jù)估計(jì)各節(jié)點(diǎn)先驗(yàn)分布,三是當(dāng)既無(wú)專家經(jīng)驗(yàn)也無(wú)歷史數(shù)據(jù)時(shí),可以采用無(wú)信息的先驗(yàn)分布,一般采用均勻分布做先驗(yàn)分布;(2)軟件運(yùn)行和軟件測(cè)試,軟件測(cè)試采用分區(qū)測(cè)試方法;(3)由先驗(yàn)分布和軟件測(cè)試的當(dāng)前數(shù)據(jù),利用貝葉斯公式得到后驗(yàn)分布;(4)由步驟(3)中后驗(yàn)分布計(jì)算軟件運(yùn)行剖面的期望,得到軟件運(yùn)行剖面的估計(jì)值;(5)如果滿足某停止準(zhǔn)則就轉(zhuǎn)至步驟(6),如不是則以得到的后驗(yàn)分布為下一輪試驗(yàn)的先驗(yàn)分布,轉(zhuǎn)至步驟(2)。停止準(zhǔn)則一般有兩種一種是根據(jù)連續(xù)若干次的估計(jì)穩(wěn)定在預(yù)先給定的變化范圍內(nèi),另一種達(dá)到預(yù)先規(guī)定的測(cè)試步數(shù);(6)輸出結(jié)果。
本發(fā)明的原理假設(shè)D表示軟件的輸入域,Ci是軟件的第i個(gè)測(cè)試等價(jià)類。
D=Yi=1mCi]]>其中CiICj=φ,i≠j這里輸入域包含了m個(gè)不相交的測(cè)試等價(jià)類。
假設(shè)q={q1,q2,Λ,qm} 并且Σi=1mqi=1]]>其中qi表示一個(gè)輸入選自第i個(gè)測(cè)試等價(jià)類的概率。
此時(shí),軟件運(yùn)行剖面就定義為SOP={D,q}={<Ci,qi>,i=1,2,Λ,m}將軟件輸入域D,劃分成測(cè)試等價(jià)類Ci,i=1,2,Λ,m,用qi來(lái)表示一個(gè)輸入選自第i個(gè)測(cè)試等價(jià)類的概率。則軟件運(yùn)行剖面為(q1,q2,Λ,qm)??梢园衍浖\(yùn)行剖面看成是隨機(jī)向量Q。
首先是選擇先驗(yàn)分布,假設(shè)Q的先驗(yàn)分布為π(θ),其中θ是相關(guān)的參數(shù);然后根據(jù)當(dāng)前選擇的測(cè)試輸入方案Zi=(n1,n2,Λ,nm),其中ni表示在測(cè)試時(shí)取自第i個(gè)測(cè)試等價(jià)類的測(cè)試用例數(shù)。修改Q的先驗(yàn)分布,得出后驗(yàn)分布。
由于Dirichlet分布是公認(rèn)的擬合度較好的多元分布。假設(shè)Q的先驗(yàn)分布為Dirichlet分布。Dirichlet分布定義如下Q={q1,q2,Λ,qm}是一個(gè)隨機(jī)向量,如果它滿足(1)對(duì)于任意的1≤i≤m,有0≤qi≤1,且Σi=1mqi=1;]]>(2)(q1,q2,Λ,qm)的分布密度為 其中α0=Σi=1mαi,]]>對(duì)任意的αi,αi>0。
記成(q1,q2,Λ,qm-1)~Dir(q|α1,Λ,αm-1;αm)或(q1,q2,Λ,qm)~Dir(q|α1,α2,Λ,αm)。
記Q~Dir(Q|α),其中參數(shù)向量α=(α1,α2,Λ,αm)。
使用測(cè)試用例進(jìn)行軟件測(cè)試,各測(cè)試用例的概率分布服從多項(xiàng)式分布,假設(shè)有m個(gè)測(cè)試等價(jià)類,其概率分布為Q=(q1,q2,Λ,qm),若進(jìn)行測(cè)試時(shí),可能有N次測(cè)試用例選擇,其中落入第1個(gè)等價(jià)類的有n1次,落入第2個(gè)等價(jià)類的有n2次,...,落入第m個(gè)等價(jià)類的有nm次,分布函數(shù)為
f(n1,n2,Λ,nm)=(N!n1!×n2!×Λ×nm!)×q1n1×q2n2×Λ×qmnm]]>其中Σi=1mni=N]]>選擇Dirichlet分布作為Q的先驗(yàn)分布,那麼Q的后驗(yàn)分布為h(q|n1,n2,Λ,nm)∝Πi=1mqi(α1-1)×q1n1×q2n2×Λ×qmnm]]>∝q1(α1-1+n1)×q2(α2-1+n2)×Λ×qm(αm-1+nm)]]>∝Πi=1mqi(αi-1+ni)]]>確定出先驗(yàn)分布一般采用下面三種方法①咨詢領(lǐng)域?qū)<襾?lái)確定如何選取先驗(yàn)分布;②通過歷史數(shù)據(jù)估計(jì)先驗(yàn)分布中參數(shù);③沒有先驗(yàn)信息時(shí),選取無(wú)信息先驗(yàn)分布。
由于Dirichlet分布與多項(xiàng)式分布是共軛分布,Q的后驗(yàn)分布也是Dirichlet分布。隨著測(cè)試(使用)過程進(jìn)行,特定的輸入測(cè)試用例被選擇使用。當(dāng)一組測(cè)試用例被選擇使用后,可以得到其分布。假設(shè)有m個(gè)測(cè)試等價(jià)類,其概率分布為Q=(q1,q2,Λ,qm),進(jìn)行測(cè)試時(shí),有N次測(cè)試用例選擇,其中屬于第1個(gè)等價(jià)類的有n1個(gè),屬于第2個(gè)等價(jià)類的有n2個(gè),...,屬于第m個(gè)等價(jià)類的有nm個(gè)。
后驗(yàn)分布的參數(shù)使用下面公式調(diào)整αi(j)=αi(j-1)+ni,i=1,2,Λ,m,j=1,2,Λ,k其中k是測(cè)試用例的組數(shù)。
最后,采用隨機(jī)變量qi的期望E(qi)來(lái)對(duì)其進(jìn)行估計(jì),得到運(yùn)行剖面。
本發(fā)明采用貝葉斯方法建模軟件運(yùn)行剖面,將先驗(yàn)信息和試驗(yàn)數(shù)據(jù)有機(jī)的結(jié)合起來(lái)利用貝葉斯方法獲取軟件運(yùn)行剖面,可以隨著軟件運(yùn)行利用貝葉斯理論在線獲取軟件運(yùn)行剖面。
本發(fā)明與現(xiàn)有技術(shù)相比的優(yōu)點(diǎn)(1)由于考慮了先驗(yàn)信息,提高運(yùn)行剖面獲取的精度;(2)由于采用了貝葉斯技術(shù),提高了穩(wěn)定性。貝葉斯方法較之傳統(tǒng)的頻率估計(jì)要穩(wěn)定,特別是在小樣本的情況下。
圖1為本發(fā)明的方法步驟示意圖。
實(shí)施例1以Space軟件為例。Space軟件是一個(gè)公認(rèn)的軟件測(cè)試對(duì)象,它是為歐洲航天局開發(fā)的一個(gè)矩陣描述語(yǔ)言(ADL)解釋器,從文件中讀取ADL描述語(yǔ)句并檢查文件內(nèi)容是否合乎語(yǔ)法規(guī)則。如果ADL文件解釋正確,Space將輸出一個(gè)矩陣數(shù)據(jù)文件,包含矩陣元素信息、位置、激勵(lì),否則將輸出錯(cuò)誤提示。Space軟件包含9564行C語(yǔ)言代碼。
試驗(yàn)設(shè)軟件有3個(gè)測(cè)試等價(jià)類,測(cè)試用的實(shí)際運(yùn)行剖面為(q1,q2,q3)=(0.3243675,0.2981678,0.3774648)。
(1)確定軟件運(yùn)行剖面的先驗(yàn)分布。由于Dirichlet分布是公認(rèn)的擬合度較好的多元分布。假設(shè)Q的先驗(yàn)分布為Dirichlet分布。通過分析,本實(shí)施例選取α1=α2=α3=40。
(2)軟件運(yùn)行和軟件測(cè)試,本實(shí)施例采用分區(qū)隨機(jī)測(cè)試方法,即按運(yùn)行剖面為(q1,q2,q3)=(0.3243675,0.2981678,0.3774648)產(chǎn)生測(cè)試用例。
(3)由先驗(yàn)分布和軟件測(cè)試的當(dāng)前數(shù)據(jù),利用貝葉斯公式得到后驗(yàn)分布。
(4)由上述步驟(3)中后驗(yàn)分布計(jì)算軟件運(yùn)行剖面的期望,得到軟件運(yùn)行剖面的估計(jì)值。
(5)如果測(cè)試步數(shù)達(dá)到50則轉(zhuǎn)至步驟(6),如不是則以得到的后驗(yàn)分布為下一輪試驗(yàn)的先驗(yàn)分布,轉(zhuǎn)至步驟(2)。
(6)輸出結(jié)果。
50步后Bayes估計(jì)和頻率估計(jì)的運(yùn)行剖面分別是(0.370926,0.313036,0.316038)和(0.372966,0.311935,0.315099),它們和實(shí)際運(yùn)行剖面的誤差 分別是0.125868和0.174956。因此可以看出使用Bayes方法的產(chǎn)生的數(shù)據(jù)有機(jī)的結(jié)合了原有的對(duì)運(yùn)行剖面的認(rèn)識(shí)經(jīng)驗(yàn),和測(cè)試用例的信息,比傳統(tǒng)的頻率估計(jì)更好的逼近了運(yùn)行剖面值。
實(shí)施例2以一個(gè)度量軟件SESS(Software Environment for Software ScienceData Collection)為例。該軟件使用VC6編寫,能夠讀取C語(yǔ)言源程序,統(tǒng)計(jì)源代碼行數(shù)、操作符、操作數(shù)的種類和個(gè)數(shù)并顯示,是進(jìn)行部分重復(fù)性理論研究的工具。共有源代碼17807行,源文件106個(gè)。
試驗(yàn)設(shè)軟件有4個(gè)測(cè)試等價(jià)類,測(cè)試用的實(shí)際運(yùn)行剖面為(q1,q2,q3,q4)=(0.2570,0.1740,0.3580,0.2110)。
(1)確定軟件運(yùn)行剖面的先驗(yàn)分布。由于Dirichlet分布是公認(rèn)的擬合度較好的多元分布。假設(shè)Q的先驗(yàn)分布為Dirichlet分布。通過分析,本實(shí)施例選取α1=α2=α3=α3=α4=50。
(2)軟件運(yùn)行和軟件測(cè)試,本實(shí)施例采用分區(qū)隨機(jī)測(cè)試方法,即按運(yùn)行剖面為(q1,q2,q3,q4)=(0.2570,0.1740,0.3580,0.2110)產(chǎn)生測(cè)試用例。
(3)由先驗(yàn)分布和軟件測(cè)試的當(dāng)前數(shù)據(jù),利用貝葉斯公式得到后驗(yàn)分布。
(4)由步驟(3)中后驗(yàn)分布計(jì)算軟件運(yùn)行剖面的期望,得到軟件運(yùn)行剖面的估計(jì)值。
(5)如果測(cè)試步數(shù)達(dá)到50轉(zhuǎn)至步驟(6),如不是則以得到的后驗(yàn)分布為下一輪試驗(yàn)的先驗(yàn)分布,轉(zhuǎn)至步驟(2)。
(6)輸出結(jié)果。
50步后Bayes估計(jì)和頻率估計(jì)的運(yùn)行剖面分別是(0.2731,0.1838,0.3128,0.2303)和(0.2904,0.2147,0.2863,0.2086),它們和實(shí)際運(yùn)行剖面的誤差 分別是0.0028和0.0079。
因此實(shí)施例也可以看出使用Bayes方法比傳統(tǒng)的頻率估計(jì)更好的逼近了運(yùn)行剖面值。
權(quán)利要求
1.基于貝葉斯方法的軟件運(yùn)行剖面獲取方法,其特征在于將貝葉斯方法應(yīng)用到軟件運(yùn)行剖面獲取中,具體包括下列步驟(1)確定軟件運(yùn)行剖面的先驗(yàn)分布;(2)軟件運(yùn)行和軟件測(cè)試;(3)由先驗(yàn)分布和軟件測(cè)試的當(dāng)前數(shù)據(jù),利用貝葉斯公式得到后驗(yàn)分布;(4)由步驟(3)中后驗(yàn)分布計(jì)算軟件運(yùn)行剖面的期望,得到軟件運(yùn)行剖面的估計(jì)值;(5)如果滿足某停止準(zhǔn)則就轉(zhuǎn)至步驟(6),如不是則以得到的后驗(yàn)分布為下一輪試驗(yàn)的先驗(yàn)分布,轉(zhuǎn)至步驟(2);(6)輸出結(jié)果。
2.根據(jù)權(quán)利要求1所述的基于貝葉斯方法的軟件運(yùn)行剖面獲取方法,其特征在于所述的先驗(yàn)分布的獲取主要有三種方法一是根據(jù)專家經(jīng)驗(yàn)來(lái)確定各節(jié)點(diǎn)先驗(yàn)分布,二是根據(jù)歷史數(shù)據(jù)估計(jì)各節(jié)點(diǎn)先驗(yàn)分布,三是當(dāng)既無(wú)專家經(jīng)驗(yàn)也無(wú)歷史數(shù)據(jù)時(shí),可以采用無(wú)信息的先驗(yàn)分布,一般采用均勻分布做先驗(yàn)分布。
3.根據(jù)權(quán)利要求1所述的基于貝葉斯方法的軟件運(yùn)行剖面獲取方法,其特征在于所述的停止準(zhǔn)則有兩種一種是根據(jù)連續(xù)若干次的估計(jì)穩(wěn)定在預(yù)先給定的變化范圍內(nèi),另一種達(dá)到預(yù)先規(guī)定的測(cè)試步數(shù)。
4.根據(jù)權(quán)利要求1所述的基于貝葉斯方法的軟件運(yùn)行剖面獲取方法,其特征在于所述的軟件測(cè)試方法為分區(qū)測(cè)試方法。
全文摘要
一種基于貝葉斯方法的軟件運(yùn)行剖面獲取方法,它是將貝葉斯方法應(yīng)用到軟件運(yùn)行剖面獲取中,具體包括下列步驟(1)確定軟件運(yùn)行剖面的先驗(yàn)分布;(2)軟件運(yùn)行和測(cè)試;(3)由先驗(yàn)分布,得到后驗(yàn)分布;(4)計(jì)算后驗(yàn)分布的期望,得到軟件運(yùn)行剖面的估計(jì)值;(5)如果滿足某停止準(zhǔn)則就轉(zhuǎn)入步驟(6),如不是則以得到的后驗(yàn)分布為下一輪試驗(yàn)的先驗(yàn)分布,轉(zhuǎn)步驟(2);(6)輸出結(jié)果。本發(fā)明根據(jù)充分利用了專家經(jīng)驗(yàn)等先驗(yàn)信息,提高軟件獲取軟件運(yùn)行剖面的精度和穩(wěn)定性。
文檔編號(hào)G06F11/36GK1667588SQ200510011550
公開日2005年9月14日 申請(qǐng)日期2005年4月11日 優(yōu)先權(quán)日2005年4月11日
發(fā)明者白成剛, 李宗民, 劉玉杰, 胡德斌, 蔡開元 申請(qǐng)人:北京航空航天大學(xué)