- 軟件測試:實踐者方法
- 孫志安等編著
- 1051字
- 2024-09-19 17:31:52
2.4 軟件可靠性
可靠性是重要的軟件質量特性之一。IEEE將軟件可靠性定義為:在規定的條件下和規定的時間內,軟件不引起系統失效的能力。該能力的概率表示就是軟件可靠度,即系統輸入和使用的函數。系統輸入以確定是否觸發軟件錯誤,軟件可靠度是軟件固有錯誤的函數。
規定的條件是指系統所處環境條件、負荷大小及運行方式。環境條件包括軟件運行、儲存等軟硬件環境、數據環境及其輸入分布。軟件運行一次所需要的輸入數據構成輸入空間的一個元素,該元素是一個多維向量,全體輸入向量集合構成軟件的輸入空間。輸出數據構成一個輸出向量,全部輸出向量集合構成輸出空間。在軟件運行過程中,輸入空間元素及每個元素被選用的概率構成運行剖面。軟件可靠性與規定的時間密切相關,在不同時間內,系統將呈現出不同的可靠性。規定的功能是指軟件具備的功能,即所能提供的服務。用表示規定的條件,t表示規定的時間,隨機變量
表示軟件從運行開始到失效所經歷的時間。那么,軟件可靠度為

(2-2)
軟件是從輸入空間到輸出空間的映射,軟件失效是由于未將某些輸入映射到期望的輸出所致,是邏輯錯誤、系統退化、外部環境、輸入錯誤等因素或其組合誘發,并非像硬件那樣因為老化、磨損、耗散等原因所致,機理復雜。軟件可靠性的概率性質主要體現在輸入選擇上。假設輸入空間上共有個輸入,則可以引入一個執行變量Y(i) :

對于特定的軟件系統,是輸入i時軟件運行正確的概率。在這一特定應用中的一次輸入導致軟件運行正常的概率為

(2-3)
因此有

(2-4)
式中,n是時間區間內軟件系統運行的總次數。
以上描述似乎從本質上反映了軟件可靠性定義的概率性質。事實上,輸入空間I的大小即使不是無窮大,也可能十分龐大,在某一特定應用中確定,可能非常困難。對于確定的軟件系統,這種定義并無實際意義。一種有效的方法是將基于運行的軟件可靠性定義描述為:假設在一特定應用中,軟件系統實際運行次數為
,cn表示在這
次運行中正確運行的次數,則
表示一次運行正確的概率。于是有

(2-5)
導致軟件失效的原因及機理非常復雜,至今還難以甚至無法事先判定軟件的錯誤性質以及錯誤引入時間、錯誤引入部位,難以準確確定軟件的運行狀態和執行路徑,且軟件失效的外部表象具有明顯的隨機性。對于隨機事件的變化規律,基于概率描述,是一種有效的方法,也是一種必然的選擇。硬件系統尤其是電子裝備系統,其可靠性分析評估技術已臻成熟,得以廣泛應用。創立一套與系統可靠性相兼容的軟件可靠性理論和方法,是軟件可靠性分析的基礎。上述定義恰到好處地反映了系統可靠性綜合與分析的要求,這種引申和擴展是十分自然的。