軟體可靠性及可靠性測試知識總結(二)

前面講到軟體可靠性和軟體可靠性測試的定義,本節主要總結軟體可靠性評估相關知識。軟體可靠性測試分為驗收測試和增長測試,其核心都是軟體可靠性模型,即軟體可靠性評估。

軟體失效機理

講述軟體失效機理之前,我們首先明確幾個概念:

(1)人為錯誤:指在軟體生存期內不期望或者不可接受的人為差錯,是軟體設計人員在開發過程中由疏忽、失誤或者錯誤導致的行為過失。它既包括程序員開發的代碼存在的錯誤,也包括不準確的軟體設計文檔的描述、不合理的功能需求以及功能存在遺漏;

(2)軟體缺陷:指存在於軟體中的不期望或者不可接受的偏差,是軟體開發過程中的人為錯誤導致的結果,可能出現在軟體開發的不同階段,表現為在某一特定條件下出現軟體故障;

Advertisements

(3)軟體故障:指軟體在運行過程中出現的不期望或者不可接受的內部狀態,是軟體缺陷被激活后的表現形式,一般指軟體運行錯誤,在無適當措施對其加以處理時會產生軟體失效;

(4)軟體失效:指軟體運行時產生的不期望或者不可接受的外部行為結果,是軟體在運行過程中產生了對要求行為的偏離,即軟體不再能夠滿足用戶功能需求甚至出現軟體崩潰的情況,根據軟體失效的影響可將其分為暫時失效、永久失效、可恢復的失效、不可恢復的失效、不再惡化的失效和可能惡化的失效等。

根據以上定義,我們可以理解,軟體缺陷和軟體失效描述的是軟體兩個不同層次的問題。軟體缺陷是軟體的內部問題,是只有軟體開發人員可以察覺到的問題;而軟體失效是軟體的外部問題,是用戶就能夠察覺到的問題。軟體失效機理可以這樣描述,人為錯誤會導致軟體缺陷,軟體缺陷在相應的人為錯誤被修正前長期存在;當遇到特定的條件時,軟體缺陷會被激活表現出軟體故障,軟體故障會導致軟體不能正常實現預期的要求;軟體故障發生后,在沒有適當措施進行處理時,就會產生能被用戶察覺的軟體失效。

Advertisements

軟體可靠性評估

軟體可靠性評估指「確定現有系統或系統部件可靠性所達到的水平的過程」。可靠性評估通過軟體可靠性模型來描述。軟體可靠性與軟體失效直接相關,所以軟體可靠性會受開發人員發現和修復那些引起失效的軟體缺陷的過程有關。可靠性模型通過軟體測試或軟體實操中收集的失效數據提供量化的可靠性估計,模型的選取也是以失效數據體現出的開發人員對軟體缺陷的修復行為對軟體系統的影響為根據的。總之,軟體可靠性的量化評估過程是通過失效數據經過統計推斷實現的。

軟體失效數據

軟體失效數據是在軟體測試或軟體實操過程中軟體失效的數據記錄,是進行軟體可靠性評估的基礎。可靠性模型的假設是否合理、建模是否精準、估測的結果是否令人滿意,都應該通過軟體失效數據來進行驗證。

在軟體失效數據的收集過程中,常把其分為兩類:

(1)完全數據:指在軟體測試或軟體實操過程中,被觀察並記錄下來的每一次失效的以及它出現的時間。由於它反映的數據是完全的,且每兩次失效出現的時間間隔是已知的,所以我們也把完全數據成為失效時間間隔數據。

(2)不完全數據:指在軟體測試或軟體實操過程中出現一連串的失效情況,被記錄為某個時間間隔內發生的失效的總數。也就是說,我們只知道在一個時間間隔內發生了若干次失效情況,但是並不具體的知道每一次發生失效的具體時間。相比於完全數據,不完全數據缺少一些信息,我們也將其稱為某個時間間隔內的累計錯誤數據。

軟體可靠性模型

Advertisements

你可能會喜歡