專利名稱:一種基于混合測試的軟件可靠性評估方法及其裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及軟件可靠性工程領(lǐng)域,尤其涉及軟件可靠性測試和評估領(lǐng)域,具體地 說,是指一種基于混合測試的軟件可靠性評估方法及其裝置。
背景技術(shù):
軟件可靠性評估技術(shù)作為評價(jià)軟件質(zhì)量和可靠性的重要手段,正成為國內(nèi)外軟件 可靠性工程的主要研究方向之一。為了滿足用戶對軟件可靠性要求、評估軟件可靠性水平 及驗(yàn)證軟件產(chǎn)品是否達(dá)到可靠性要求,軟件可靠性測試是一種有效的途徑。它是隨機(jī)測試 中的一種,其主要特征是按照用戶實(shí)際使用軟件的方式來測試軟件。它一方面繼承了軟件 測試的思想,另一方面又有自身的特點(diǎn),特別是在測試機(jī)理上與一般軟件測試是不同的。當(dāng)前有兩種主要的傳統(tǒng)的軟件可靠性測試及評估方法,一種是Richard C. Linger 1988 年在其論文〈〈A case study in cleanroom software engineering〉〉中提出的“基于 使用模型的統(tǒng)計(jì)測試方法”,其中使用模型包括馬爾可夫模型和形式化的語法,根據(jù)這些使 用模型來產(chǎn)生測試用例(軟件所有可能輸入的一個(gè)子集)并評估和度量軟件可靠性;另 外一種是AT&T貝爾實(shí)驗(yàn)室的John D. Musa 1993年在其論文《Operational profiles in software reliability engineering))提出的“基于操作剖面的可靠性測試方法”,其中操 作剖面即用戶使用軟件的統(tǒng)計(jì)規(guī)律,其構(gòu)造流程如
圖1所示,首先確定操作模式和操作的 發(fā)起者,然后選擇表格表示法或圖形表示法對每個(gè)操作發(fā)起者創(chuàng)建操作表,最后確定單個(gè) 操作或?qū)傩灾档某霈F(xiàn)率,將總的發(fā)生概率分解到每個(gè)操作上,最后生成MUSA操作剖面,該 方法是根據(jù)操作剖面抽樣隨機(jī)生成測試數(shù)據(jù)。上述兩種方法的基本思想都是基于統(tǒng)計(jì)學(xué)的 基本原理,即根據(jù)軟件實(shí)際使用情況的統(tǒng)計(jì)規(guī)律的描述,對軟件進(jìn)行隨機(jī)測試,利用測試結(jié) 果進(jìn)行軟件可靠性評估。該特點(diǎn)決定了這一過程時(shí)間長、費(fèi)用高、資源消耗大,因此如何加 快軟件可靠性測試,及提高軟件可靠性評估的效率和準(zhǔn)確性,是亟待突破的技術(shù)難關(guān)。另外目前大部分軟件在發(fā)布之前都會(huì)根據(jù)被測軟件的特點(diǎn)和其所要達(dá)到的要求 或指標(biāo)(主要是與缺陷相關(guān)的要求或指標(biāo))進(jìn)行針對性測試,如針對覆蓋率要求的各種覆 蓋率測試、針對功能實(shí)現(xiàn)的功能測試等等,它們在發(fā)現(xiàn)軟件缺陷提高軟件質(zhì)量方面具有明 顯的效果。但是針對性測試中的缺陷信息并沒有用于對軟件可靠性的評估中,軟件可靠性 評估仍然是通過“從頭開始的”軟件可靠性測試和重新收集失效數(shù)據(jù)等方面來進(jìn)行。因此 如何充分、綜合地利用這些已有的測試信息綜合到軟件可靠性評估過程中,并通過其實(shí)現(xiàn) 裝置提高軟件可靠性評估的效率也已成為當(dāng)務(wù)之急。
發(fā)明內(nèi)容
本發(fā)明為了解決現(xiàn)有技術(shù)中存在的軟件可靠性測試效率低的問題,提供了一種基 于混合測試的軟件可靠性評估方法及其裝置,所述的方法是基于針對性測試與運(yùn)行測試相 結(jié)合的混合兩階段可靠性加速測試方法,同時(shí)結(jié)合次序統(tǒng)計(jì)量理論,提出了基于混合測試 的軟件可靠性次序統(tǒng)計(jì)量模型,充分利用針對性測試以及運(yùn)行測試的測試數(shù)據(jù),并給出軟件可靠性評估,從而加速軟件可靠性測試過程,提高軟件可靠性測試效率。本發(fā)明從軟件可靠性評估方法數(shù)據(jù)輸入的角度,對傳統(tǒng)軟件可靠性測試方法進(jìn)行 了改進(jìn),采用由針對性測試向運(yùn)行測試過渡的混合測試方法。這種混合測試方法中,充分利 用了針對性測試中收集到的缺陷信息,通過面向缺陷的針對性測試中發(fā)現(xiàn)的缺陷被不斷剔 除,軟件的可靠性得到了增長。當(dāng)針對性測試基本結(jié)束后,通常這個(gè)時(shí)候軟件可靠性還沒有 達(dá)到規(guī)定的可靠性要求,因此還要繼續(xù)轉(zhuǎn)入軟件可靠性測試,直到滿足規(guī)定的可靠性要求。 其中針對性測試采取的是基于覆蓋率的白盒測試,運(yùn)行測試為黑盒測試,所以本發(fā)明提供 的這種混合測試從某種程度上來說可以看作是一種灰盒測試方法。本發(fā)明提供的基于混合測試的軟件可靠性評估方法的原理為假設(shè)被測軟件中有η個(gè)缺陷,其缺陷失效率分別為Φ2,...,Φη,將缺陷失效 率按照從小到大的順序排列,記為次序缺陷失效率Φ1:η,Φ2:η,.. .,Φη:η。假設(shè)混合測試過 程中共發(fā)現(xiàn)k個(gè)缺陷,將這k個(gè)缺陷按照缺陷失效率從大到小的順序排列,并將排序好的缺 陷失效率依次記為WiG = 1,2,..., k)。根據(jù)測試的順序特性,可以認(rèn)為這k個(gè)缺陷是η 個(gè)缺陷中失效率最大的前k個(gè)缺陷,因此有如下對應(yīng)關(guān)系= Φ(η+1_ ):η0將剩余n-k個(gè)缺陷的缺陷失效率按照從大到小的順序排列,記為Vj(j = k+l,...,n)。則測試停止時(shí)的軟件失效率Xk可以表示為
權(quán)利要求
1.一種基于混合測試的軟件可靠性評估方法,其特征在于步驟一、確定被測軟件的缺陷失效率分布,得到缺陷失效率分布函數(shù)和密度函數(shù);步驟二、根據(jù)次序統(tǒng)計(jì)量,確定次序缺陷失效率的密度函數(shù);所述的次序缺陷失效率是指將被測軟件的缺陷失效率按照從大到小的順序排列之后 的缺陷失效率;步驟三、確定被測軟件的次序缺陷失效率期望值和軟件失效率期望值;步驟四、對被測軟件進(jìn)行混合測試,得到缺陷失效率數(shù)據(jù)和軟件失效率數(shù)據(jù);步驟五,利用步驟四中的混合測試結(jié)果數(shù)據(jù),對分布參數(shù)進(jìn)行最小二乘估計(jì),確定分布 參數(shù)。
2.根據(jù)權(quán)利要求1所述的一種基于混合測試的軟件可靠性評估方法,其特征在于步 驟四中所述的混合測試是通過如下步驟實(shí)現(xiàn)的(a)分析軟件功能信息和結(jié)構(gòu)信息來選定具體的針對性測試方法,并根據(jù)其選定的測 試方法生成針對性測試用例;(b)根據(jù)需要搭建針對性測試環(huán)境;(c)在針對性測試環(huán)境上執(zhí)行步驟(a)中生成的針對性測試用例,并收集記錄缺陷失 效率數(shù)據(jù)A;(d)判斷上述針對性測試過程是否滿足相應(yīng)的規(guī)范或準(zhǔn)則,如果是,則進(jìn)入步驟(e), 否則根據(jù)步驟(a)中所選定的針對性測試方法重新生成針對性測試用例,并返回步驟(c);(e)停止針對性測試,得到一組缺陷失效率數(shù)據(jù)IrJ;實(shí)施基于MUSA操作剖面的運(yùn)行 測試,分析被測軟件的任務(wù)書和需求分析文檔,根據(jù)軟件功能和使用信息,構(gòu)造MUSA操作 剖面;(f)根據(jù)步驟(e)中構(gòu)造的MUSA操作剖面進(jìn)行隨機(jī)抽樣生成可靠性測試用例首先確 定被測軟件的操作中每個(gè)輸入變量的具體值,通過抽取操作和確定各輸入變量取值兩個(gè)步 驟的抽樣,生成可靠性測試用例;(g)根據(jù)被測軟件特點(diǎn)和可靠性測試要求搭建可靠性測試環(huán)境;(h)在可靠性測試環(huán)境中執(zhí)行步驟(f)中可靠性測試用例,并收集記錄失效數(shù)據(jù),得到 軟件失效率數(shù)據(jù)Pi ;(i)判斷此時(shí)被測軟件是否滿足規(guī)定的可靠性要求,如果是,則進(jìn)入步驟(j),否則根 據(jù)步驟(e)中構(gòu)造的MUSA操作剖面進(jìn)行隨機(jī)抽樣重新生成可靠性測試用例,并返回步驟 (h);(j)停止運(yùn)行測試過程,得到一組缺陷失效率數(shù)據(jù){pj ;從而完成整個(gè)混合測試過程。
3.根據(jù)權(quán)利要求1所述的一種基于混合測試的軟件可靠性評估方法,其特征在于所 述的步驟五,以正態(tài)分布參數(shù)的確定為例,是通過如下步驟實(shí)現(xiàn)的(a)輸入針對性測試階段的缺陷失效率數(shù)據(jù)IrJ和運(yùn)行測試階段的軟件失效率數(shù)據(jù) {pj,由輸入數(shù)據(jù)的個(gè)數(shù)可知針對性測試過程發(fā)現(xiàn)缺陷個(gè)數(shù)m個(gè)和運(yùn)行測試過程發(fā)現(xiàn)缺陷 數(shù),兩種失效率數(shù)據(jù)之和為已發(fā)現(xiàn)缺陷數(shù),記為k,m < k,則運(yùn)行測試過程發(fā)現(xiàn)缺陷數(shù)為k-m 個(gè);(b)根據(jù)最小二乘法,并結(jié)合次序缺陷失效率的期望值和軟件失效率的期望值,得到最 小二乘式
4. 一種基于混合測試的軟件可靠性評估方法的實(shí)現(xiàn)裝置,其特征在于所述的實(shí)現(xiàn)裝 置具體包括測試數(shù)據(jù)輸入模塊、數(shù)學(xué)計(jì)算模塊、表達(dá)式預(yù)處理模塊、參數(shù)估計(jì)模塊和軟件 失效率預(yù)計(jì)及輸出模塊;所述的測試數(shù)據(jù)輸入模塊用于讀取軟件失效率數(shù)據(jù)和缺陷失效率 數(shù)據(jù);所述的數(shù)學(xué)計(jì)算模塊包括積分子模塊和求導(dǎo)子模塊;積分子模塊調(diào)整精度計(jì)算符號(hào) 表達(dá)式的定積分,求導(dǎo)子模塊調(diào)整精度計(jì)算符號(hào)表達(dá)式的導(dǎo)數(shù);所述的表達(dá)式預(yù)處理模塊 具有兩個(gè)功能(1)根據(jù)用戶選擇的失效率分布類型,讀入失效率分布函數(shù)存儲(chǔ)文件中的相應(yīng)失效率 分布函數(shù),計(jì)算出次序缺陷失效率密度函數(shù)符號(hào)表達(dá)式;(2)調(diào)用積分子模塊并利用次序缺陷失效率密度函數(shù)符號(hào)表達(dá)式計(jì)算得出缺陷失效率 期望及軟件失效率期望符號(hào)表達(dá)式;所述的參數(shù)估計(jì)模塊采用最小二乘法估計(jì)參數(shù)值;所述的軟件失效率預(yù)計(jì)及輸出模塊調(diào)用參數(shù)估計(jì)模塊得到的模型參數(shù)估計(jì)值,代入到表達(dá)式預(yù)處理模塊中的軟件失效率期望 符號(hào)表達(dá)式,進(jìn)而預(yù)計(jì)出軟件失效率,并輸出相應(yīng)的評估結(jié)果。
全文摘要
本發(fā)明公開了一種基于混合測試的軟件可靠性評估方法及其裝置,屬于軟件可靠性工程領(lǐng)域,所述方法通過確定被測軟件的缺陷失效率分布,得到缺陷失效率分布函數(shù)和密度函數(shù);然后根據(jù)次序統(tǒng)計(jì)量確定次序缺陷失效率的密度函數(shù)、次序缺陷失效率期望值和軟件失效率期望值;對被測軟件進(jìn)行混合測試,利用混合測試結(jié)果數(shù)據(jù),確定分布參數(shù)。本發(fā)明充分結(jié)合并利用運(yùn)行測試和針對性測試的優(yōu)點(diǎn),克服傳統(tǒng)可靠性測試忽視軟件結(jié)構(gòu)內(nèi)部信息、測試用例多、測試時(shí)間長、資源消耗大等缺點(diǎn),縮短了軟件可靠性測試的時(shí)間,加快了軟件缺陷暴露速度及軟件可靠性測試的進(jìn)程,同時(shí)也大大減少了測試費(fèi)用和資源消耗。
文檔編號(hào)G06F11/36GK102063375SQ20111000675
公開日2011年5月18日 申請日期2011年1月13日 優(yōu)先權(quán)日2011年1月13日
發(fā)明者吳玉美, 王栓奇, 陸民燕 申請人:北京航空航天大學(xué)