亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

一種基于基本塊的軟件可靠性評估方法與流程

文檔序號:12863704閱讀:319來源:國知局

本發(fā)明屬于軟件可靠性領(lǐng)域,具體涉及一種基于基本塊的軟件可靠性評估方法。



背景技術(shù):

軟件可靠性是軟件的重要質(zhì)量屬性之一,對于安全關(guān)鍵的系統(tǒng)而言,軟件的可靠性要求極高,通常要求軟件失效率低于10-7以下。但是,目前的軟件可靠性評估方法難以滿足如此高的可靠性評估要求。當(dāng)前的軟件可靠性存在評估精度低、有效評估數(shù)據(jù)不足等問題,主要體現(xiàn)在如下幾方面:

a)無法使用硬件可靠性評估的成熟方法

軟件缺陷都是設(shè)計缺陷,不具有類似硬件的疲勞特征,硬件可靠性相關(guān)的疲勞評估方法無法用于對軟件的可靠性開展評估;

b)基于黑盒測試的方法無法滿足要求

軟件的失效行為往往與具體的軟件功能和需求密切相關(guān),難以用一種統(tǒng)一、一致的方法表示。它們在運行過程中的表征各不相同,從產(chǎn)生了大量的軟件可靠性模型,如musa模型、jelinski-moranda模型、goel-okumoto模型、nhpp模型等數(shù)十個模型。每種模型考慮軟件可靠性的某一方面特征,往往難以對軟件的可靠性進行全面的評估。大部分模型都將軟件看作一個黑盒,通過對軟件開展黑盒測試,利用測試失效數(shù)據(jù)的趨勢來評估可靠性。這些方法面臨的難點在于評估結(jié)果精度較低,評估需要采集大量具有統(tǒng)計意義的測試數(shù)據(jù),測試工作量巨大。

c)基于架構(gòu)的方法面臨數(shù)據(jù)采集困難問題

研究人員發(fā)現(xiàn)軟件的架構(gòu)對軟件的可靠性具有極大的影響。建議通過白盒方式對軟件可靠性開展分析評估。分別提出了以離散時間馬爾科夫鏈(dtmc)和連續(xù)時間馬爾科夫鏈(ctmc)的面向軟件結(jié)構(gòu)的評估方法。這些方法為了簡化評估難度,往往采用粗粒度的方式對軟件進行分割,試圖利用軟件架構(gòu)關(guān)系開展評估。但是每個軟件部件自身也是可以被看作為一個獨立的軟件,它的可靠性如何評估、軟件之間的交互可靠性如何評估對整體軟件可靠性有較大影響,這導(dǎo)致了這類方法難以使用。



技術(shù)實現(xiàn)要素:

發(fā)明目的:為了支持對安全關(guān)鍵系統(tǒng)的軟件進行準(zhǔn)確有效評估,解決軟件可靠性評估過程中面臨的數(shù)據(jù)采集困難、測試成本過高、評估有效性等幾方面的難題,本發(fā)明公開了一種基于基本塊的軟件可靠性評估方法。

技術(shù)方案:一種基于基本塊的軟件可靠性評估方法,包括以下步驟:

(1)構(gòu)建控制流圖

利用二進制代碼分析軟件構(gòu)建被測軟件的控制流圖,控制流圖表示方式為一個控制流矩陣cfg=n×n=[tij],控制流矩陣cfg的行和列都是基本塊,如果從第i個基本塊bi到第j個基本塊bj有一條控制轉(zhuǎn)移,那么tij=1;否則tij=0;在控制流矩陣cfg中n表示被測軟件的基本塊的數(shù)量;

(2)利用被測軟件的基本塊指令數(shù)建立基本塊的缺陷系數(shù)矩陣fn=[fi](0≤i≤n),其中fi表示基本塊bi包含缺陷的指數(shù)

其中:

li表示基本塊bi包含的指令條數(shù),且1≤i≤n;

(3)評估基本塊潛在的缺陷數(shù)

評估每個基本塊的潛在缺陷數(shù),構(gòu)成缺陷分布矩陣fc=[fci],潛在缺陷數(shù)fci的計算公式如下:

其中:

e表示軟件的潛在缺陷總數(shù);

fk表示表示基本塊bk的缺陷指數(shù);

i為基本塊編號,1≤i≤n;

k為基本塊編號;1≤k≤n;

(4)評估基本塊的缺陷暴露系數(shù)

利用一組測試用例集對被測軟件進行測試,捕捉各個基本塊的運行次數(shù)bci,然后評估每個基本塊的缺陷隱藏概率pffi為:

(a)如果測試過程中基本塊bi沒有發(fā)生失效,那么

(b)如果測試過程中基本塊bi發(fā)生失效的次數(shù)為eci,那么

(c)如果基本塊bi沒被執(zhí)行過,即bci=0,那么設(shè)置bci=1;

(5)評估基本塊的可靠性

利用缺陷暴露系數(shù)計算基本塊bi的可靠性pi,其計算公式如下:

pi=1-pffi

(6)評估基本塊對運行剖面的貢獻(xiàn)度

給定運行剖面,生成與運行剖面匹配的測試用例,然后采集運行剖面的基本塊bi的執(zhí)行次數(shù)為然后評估出每個基本塊的貢獻(xiàn)度cdi

(7)評估運行剖面下基本塊間遷移概率

以控制流矩陣cfg為指導(dǎo),利用如下約束條件構(gòu)成的線性方程組,以為參數(shù),求解得出基本塊的之間的遷移概率;

控制流圖的矩陣第i行之和表示基本塊bi的執(zhí)行次數(shù);

控制流圖的矩陣第j列之和表示基本塊bj的執(zhí)行次數(shù);

對于基本塊bi和基本塊bj之間的遷移概率pij為:

其中:

nij表示從基本塊bi和基本塊bj跳轉(zhuǎn)的次數(shù);

n(i)表示基本塊bi的執(zhí)行次數(shù);

(8)消減控制流圖為等價控制流樹

從入口基本塊開始,遍歷各個基本塊,消除控制流圖中存在的循環(huán),得到一個約解的控制流樹,該控制流樹是一個棵二叉樹,數(shù)的節(jié)點為基本塊的可靠性;樹的邊表示從一個節(jié)點到子節(jié)點的遷移概率;

(9)計算被測軟件在給定運行剖面的可靠性

從控制流樹的葉子節(jié)點開始回溯,指導(dǎo)回溯到根節(jié)點,回溯方法如下:

(91)對于節(jié)點a和節(jié)點b,它們的可靠性分別為ra和rb,它們的父節(jié)點為c,可靠性為rc,從節(jié)點c到節(jié)點a、節(jié)點b的概率分別為pca和pcb,那么創(chuàng)建一個新的節(jié)點c1,節(jié)點c1的可靠性為:

然后進入步驟(92);

(92)刪除節(jié)點a、節(jié)點b和節(jié)點c,將節(jié)點c1作為c父節(jié)點的一個葉子節(jié)點;

(93)重復(fù)步驟(91)和(92),直到計算出根節(jié)點替代節(jié)點的可靠性,然后進入步驟(10);

(10)根節(jié)點替代節(jié)點的可靠性即為被測軟件在運行剖面上的可靠性,結(jié)束此次運行。

進一步地,步驟(1)中的二進制代碼構(gòu)件軟件為通過軟件編譯器編譯后,可以在計算機上運行的任何可執(zhí)行軟件,利用反匯編工具可以反匯編出所有軟件包含的所有指令,并找出軟件所包含的基本塊。

進一步地,步驟(1)中的控制轉(zhuǎn)移包括各種條件或者絕對跳轉(zhuǎn)或者順序執(zhí)行。

進一步地,步驟(3)中軟件的潛在缺陷總數(shù)是通過缺陷密度方法獲得,若軟件是新開發(fā)軟件,缺陷密度為15/kol,若軟件是成熟軟件,缺陷密度為4/kol。

進一步地,步驟(92)中葉子節(jié)點指的是控制流樹的的最下一層節(jié)點。

有益效果:本發(fā)明公開的一種基于基本塊的軟件可靠性評估方法具有以下有益效果:

a)基于基本塊這一程序的基本要素,其可以看作為軟件的基因,基本塊邏輯結(jié)構(gòu)簡單,它的可靠性評估比較容易和準(zhǔn)確;

b)基本塊的執(zhí)行次數(shù)、基本塊之間的遷移次數(shù)數(shù)量較大,因此具有統(tǒng)計意義,可以支持對軟件的可靠性評估,避免可靠性評估過程中數(shù)據(jù)量過少而導(dǎo)致的置信度差問題。

具體實施方式:

下面對本發(fā)明的具體實施方式詳細(xì)說明。

一種基于基本塊的軟件可靠性評估方法,包括以下步驟:

(1)構(gòu)建控制流圖

利用二進制代碼分析軟件構(gòu)建被測軟件的控制流圖,控制流圖表示方式為一個控制流矩陣cfg=n×n=[tij],控制流矩陣cfg的行和列都是基本塊,如果從第i個基本塊bi到第j個基本塊bj有一條控制轉(zhuǎn)移,那么tij=1;否則tij=0;在控制流矩陣cfg中n表示被測軟件的基本塊的數(shù)量;

(2)利用被測軟件的基本塊指令數(shù)建立基本塊的缺陷系數(shù)矩陣fn=[fi](0≤i≤n),其中fi表示基本塊bi包含缺陷的指數(shù)

其中:

li表示基本塊bi包含的指令條數(shù),且1≤i≤n;

(3)評估基本塊潛在的缺陷數(shù)

評估每個基本塊的潛在缺陷數(shù),構(gòu)成缺陷分布矩陣fc=[fci],潛在缺陷數(shù)fci的計算公式如下:

其中:

e表示軟件的潛在缺陷總數(shù);

fk表示表示基本塊bk的缺陷指數(shù);

i為基本塊編號,1≤i≤n;

k為基本塊編號;1≤k≤n;

(4)評估基本塊的缺陷暴露系數(shù)

利用一組測試用例集對被測軟件進行測試,捕捉各個基本塊的運行次數(shù)bci,然后評估每個基本塊的缺陷隱藏概率pffi為:

(a)如果測試過程中基本塊bi沒有發(fā)生失效,那么

(b)如果測試過程中基本塊bi發(fā)生失效的次數(shù)為eci,那么

(c)如果基本塊bi沒被執(zhí)行過,即bci=0,那么設(shè)置bci=1;

(5)評估基本塊的可靠性

利用缺陷暴露系數(shù)計算基本塊bi的可靠性pi,其計算公式如下:

pi=1-pffi

(6)評估基本塊對運行剖面的貢獻(xiàn)度

給定運行剖面,生成與運行剖面匹配的測試用例,然后采集運行剖面的基本塊bi的執(zhí)行次數(shù)為然后評估出每個基本塊的貢獻(xiàn)度cdi

(7)評估運行剖面下基本塊間遷移概率

以控制流矩陣cfg為指導(dǎo),利用如下約束條件構(gòu)成的線性方程組,以為參數(shù),求解得出基本塊的之間的遷移概率;

控制流圖的矩陣第i行之和表示基本塊bi的執(zhí)行次數(shù);

控制流圖的矩陣第j列之和表示基本塊bj的執(zhí)行次數(shù);

對于基本塊bi和基本塊bj之間的遷移概率pij為:

其中:

nij表示從基本塊bi和基本塊bj跳轉(zhuǎn)的次數(shù);

n(i)表示基本塊bi的執(zhí)行次數(shù);

(8)消減控制流圖為等價控制流樹

從入口基本塊開始,遍歷各個基本塊,消除控制流圖中存在的循環(huán),得到一個約解的控制流樹,該控制流樹是一個棵二叉樹,數(shù)的節(jié)點為基本塊的可靠性;樹的邊表示從一個節(jié)點到子節(jié)點的遷移概率;

(9)計算被測軟件在給定運行剖面的可靠性

從控制流樹的葉子節(jié)點開始回溯,指導(dǎo)回溯到根節(jié)點,回溯方法如下:

(91)對于節(jié)點a和節(jié)點b,它們的可靠性分別為ra和rb,它們的父節(jié)點為c,可靠性為rc,從節(jié)點c到節(jié)點a、節(jié)點b的概率分別為pca和pcb,那么創(chuàng)建一個新的節(jié)點c1,節(jié)點c1的可靠性為:

然后進入步驟(92);

(92)刪除節(jié)點a、節(jié)點b和節(jié)點c,將節(jié)點c1作為c父節(jié)點的一個葉子節(jié)點;

(93)重復(fù)步驟(91)和(92),直到計算出根節(jié)點替代節(jié)點的可靠性,然后進入步驟(10);

(10)根節(jié)點替代節(jié)點的可靠性即為被測軟件在運行剖面上的可靠性,結(jié)束此次運行。

進一步地,步驟(1)中的二進制代碼構(gòu)件軟件為通過軟件編譯器編譯后,可以在計算機上運行的任何可執(zhí)行軟件,利用反匯編工具可以反匯編出所有軟件包含的所有指令,并找出軟件所包含的基本塊。

進一步地,步驟(1)中的控制轉(zhuǎn)移包括各種條件或者絕對跳轉(zhuǎn)或者順序執(zhí)行。

進一步地,步驟(3)中軟件的潛在缺陷總數(shù)是通過缺陷密度方法獲得,若軟件是新開發(fā)軟件,缺陷密度為15/kol,若軟件是成熟軟件,缺陷密度為4/kol。

進一步地,步驟(92)中葉子節(jié)點指的是控制流樹的的最下一層節(jié)點。

上面對本發(fā)明的實施方式做了詳細(xì)說明。但是本發(fā)明并不限于上述實施方式,在所屬技術(shù)領(lǐng)域普通技術(shù)人員所具備的知識范圍內(nèi),還可以在不脫離本發(fā)明宗旨的前提下做出各種變化。

當(dāng)前第1頁1 2 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1