軟件可靠性測試通常是在系統測試、驗收、交付階段進行,它主要是在實驗室內仿真環境下進行,也可以根據需要和可能在用戶現場進行。
2 軟件可靠性測試過程
2.1 軟件可靠性測試活動
軟件可靠性測試的一般過程如圖1所示。主要活動包括:測試數據、測試環境的準備,測試運行,可靠性數據收集,可靠性數據分析和失效糾正。
(1) 構造運行剖面:軟件的運行剖面“是指對系統使用條件的定義。即系統的輸入值用其按時間的分布或按它們在可能輸入范圍內的出現概率的分布來定義”。粗略地說,運行剖面是用來描述軟件的實際使用情況的。運行剖面是否能代表、刻畫軟件的實際使用取決于可靠性工程人員對軟件的系統模式、功能、任務需求及相應的輸入激勵的分析,取決于他們對用戶使用這些系統模式、功能、任務的概率的了解。運行剖面構造的質量將對測試、分析的結果是否可信產生最直接的影響。
(2) 選取測試用例:軟件可靠性測試采用的是按照運行剖面對軟件進行可靠性測試的方法。因此,可靠性測試所用的測試用例是根據運行剖面隨機選取得到的。
(3) 測試環境的準備:為了得到盡可能真實的可靠性測試結果,可靠性測試應盡量在真實的環境下進行,但是在許多情況下,在真實的環境下進行軟件的可靠性測試很不實際,因此需要開發軟件可靠性仿真測試環境。比如,對于多數嵌入式軟件,由于與之交聯的環境的開發常常與軟件的開發是同步甚至是滯后的,因此無法及時進行軟件可靠性測試;有些系統中,由于交聯的環境非常昂貴而無法用于需要進行大量運行的可靠性測試。
(4) 可靠性測試運行: 即在真實的測試環境中或可靠性仿真測試環境中,用按照運行剖面生成的測試用例對軟件進行測試。
(5) 數據收集:收集的數據包括軟件的輸入數據、輸出結果,以便進行失效分析和進行回歸測試;軟件運行時間數據,可以是CPU執行時間、日歷時間、時鐘時間等;可靠性失效數據包括每次失效發生的時間或一段時間內發生的失效數,失效數據可以實時分析得到,也可以事后分析得到。數據收集的質量對于最終的可靠性分析結果有著很大的影響,應盡可能采用自動化手段進行數據的收集,以提高效率、準確性和完整性。
(6) 數據分析:主要包括失效分析和可靠性分析。失效分析是根據運行結果判斷軟件是否失效,以及失效的后果、原因等;而可靠性分析主要是指根據失效數據,估計軟件的可靠性水平,預計可能達到的水平,評價產品是否已經達到要求的可靠性水平。為管理決策提供依據。
(7) 失效糾正:如果軟件的運行結果與需求不一致,則稱軟件發生失效。通過失效分析,找到并糾正引起失效的程序中的缺陷,從而實現軟件可靠性的增長。
文章來源于領測軟件測試網 http://www.kjueaiud.com/