軟件可靠性測試的第一步就是進行功能識別,確定使用剖面。功能識別的目標是:識別所有被測功能以及執行這些功能所需的相關輸入,識別每一個使用需求及其相關輸入的概率分布。為達到第一個目標,需要分析軟件功能的所有集合,這些功能之間全部的約束條件,功能之間的獨立性、相互關系和相互影響,還需分析系統的不同運行模式、失效發生時系統重構策略等對軟件運行方式有較大影響的因素。第一個目標也是一般軟件功能測試需要達到的目標,但第二個目標則是軟件可靠性測試特別強調的。為了得到能夠反映軟件使用的有代表性的概率分布,測試人員必須和系統工程師、系統運行分析員和顧客共同合作。需要指出的是,由于可靠性的要求,輸入數據的概率分布應包括合法數據的概率分布和非法數據的概率分布兩部分。有時為了更好地反映實際使用狀況,還需給出那些影響程序運行方式的條件,如硬件配置、負荷等的概率分布。
2.定義換效等級
定義失效等級主要是為了解決下面兩個問題:
·對發生概率小但失效后危害嚴重的功能需求的識別。
·對可不查找失效原因、并不做統計的功能需求的識別。
在制定測試計劃時,失效及其等級的定義應由測試人員、設計人員和用戶共同商定,達成協議。一般的等級定義如表所示@@16115000.GIF;表1 失效等級定義@@如果存在1級和2級失效可能性,那么就應該進行故障樹分析,標識出所有可能造成嚴重失效的功能需求和其相關的輸入域、外部條件和發生的可能性對引起1級和2級失效的功能需求及其相關的輸入域必須進行嚴格的強化測試。對引起3級失效的功能可按其發生概率選擇測試實例。第4級失效可不查找原因,可在以后的版本中處理。
3.可靠性測試覆蓋
可靠性測試必須保證輸入覆蓋和環境覆蓋,這是準確估計軟件可靠性的基礎。
輸入覆蓋包括下面幾個內容:
·輸入域覆蓋,即所有被測輸入值域的發生概率之和必須大于軟件可靠度的要求。
·重要輸入變量值的覆蓋。
·相關輸入變量可能組合的覆蓋,以確保相關輸入變量的相互影響不會導致軟件失效。
·設計輸入空間與實際輸入空間之間區域的覆蓋,即不合法輸入域的覆蓋。
·各種使用功能的覆蓋。
環境覆蓋是指測試時必須覆蓋所有可能影響程序運行方式的條件。
三、軟件可靠性測試的步驟
軟件可靠性測試分為四個階段:
1.制訂測試方案
本階段的目標是識別軟件功能需求,觸發該功能的輸入和對應的數據域,確定相關的概率分布及需強化測試的功能。
以下是我們推薦的步驟。在一些特定的應用中,有的步驟并不是必須的。
(1)分析功能需求 分析各種功能需求,識別觸發該功能的輸入及相關的數據域(包括合法與不合法的兩部分)。分析時要注意下述問題:
·該軟件是否存在不同的運行模式?如果存在,那么應列出所有的系統運行模式。
·是否存在影響程序運行方式的外部條件?如果存在,那么有多少?它們的影響程度如何
·各種功能需求之間是相互獨立的還是相關的?如果相關,是密切相關還是部分相關?如果兩種功能密切相關,那么可將兩種功能合并為一種功能。如果功能之間為部分相關,則需列出相應輸入變量的合法組合。
(2)定義失效等級 判斷是否存在出現危害度較大的1級和2級失效的可能性。如果這種可能性存在,則應進行故障樹分析,標識出所有可能造成嚴重失效的功能需求和其相關的輸入域。
(3)確定概率分布
·確定各種不同運行方式的發生概率,判斷是否需要對不同的運行方式進行分別測試。
如果需要,則應給出各種運行方式下各數據域的概率分布;否則,給出各數據域的概率分布。
·判斷是否需要強化測試某些功能。
(4)整理概率分布的信息 將這些信息編碼送入數據庫。
2.制訂測試計劃
本階段的目標是:
(1)根據前一階段整理的概率分布信息生成相對應的測試實例集,并計算出每一測試實例預期的軟件輸出結果。本階段需要注意:在按概率分布隨機選擇生成測試實例的同時,要保證測試的覆蓋面。
原文轉自:http://www.uml.org.cn/Test/200903243.asp