- 軟件測試:實踐者方法
- 孫志安等編著
- 546字
- 2024-09-19 17:31:49
2.2.3 測試的時機
對于一個具有確定狀態的軟件系統,在其生命周期過程中,通過測試,能夠檢出絕大部分缺陷,使缺陷率下降至一個可以接受的水平。而事實上,軟件生命周期過程中,任何階段的任一過程活動,尤其是升級維護,可能因為需求調整、設計變更、代碼更改、數據更新、環境變化等引入新的錯誤,即便是測試過程中的錯誤分類、錯誤隔離、錯誤排除等過程活動,也可能引入新的錯誤。軟件生命周期過程中,軟件缺陷率隨變更而變化且呈如圖2-7所示的變化態勢。

圖2-7 軟件生命周期過程中軟件缺陷率的變化態勢
軟件生命周期過程中的任一階段,如果缺陷未能及時檢出,會向下傳遞、蔓延并放大,具有傳染性。任何用于防止或檢出缺陷的工作,都會殘留更為微妙的缺陷,且檢出這類缺陷將更加困難,此乃軟件測試中的“殺蟲劑”效應。統計表明,如果一個需求錯誤未能及時檢出,交付階段檢出該錯誤的成本將增長50~100倍。軟件缺陷傳遞放大模型如圖2-8所示。

圖2-8 軟件缺陷傳遞放大模型
假設模型中的缺陷放大因子為α,在開發過程中某個階段,通過評審、測試等工作,缺陷檢出率為,所有被檢出缺陷均能及時而徹底地被排除,那么在通過該階段之后傳遞到下一階段的軟件缺陷數為

(2-1)
由此可見,軟件測試不僅僅是基于開發模型的階段產品驗證以及最終產品的驗證確認,也是基于軟件質量風險及其傳遞的動態驗證。