軟件測試是軟件質量保證的重要手段之一,軟件測試模型則是軟件測試的工作框架,用於指導軟件測試過程。今天,我們就來介紹幾個基本的軟件測試模型——V-模型、W-模型和前置測試模型。
一、V-模型:
在傳統的瀑布型軟件開發過程中,僅僅把測試過程作為在需求分析、概要設計、詳細設計及編碼之后的一個階段,對軟件測試過程沒有進一步的描述。V-模型針對瀑布模型對軟件測試過程進行了補充。V-模型最早由已故的Paul Rook在80年代后期提出。在該模型中,測試過程被加在開發過程的后半部分,如下圖所示。
在開發階段一側,先從定義業務需求開始,然后把需求轉換為軟件規格,再轉換到概要設計和詳細設計中,最后進行編碼成為程序代碼。在測試執行階段一側,先進行單元測試,然后是集成測試、系統測試,最后是驗收測試,這些測試形成了軟件測試的不同層次(級別),並與開發過程的相應階段相對應。
二、W-模型:
軟件開發過程各階段都可能產生錯誤。據國外對一些大型軟件系統的統計,需求分析與設計階段產生的錯誤占64%,編碼錯誤占36%。軟件錯誤具有傳遞性,即需求分析產生的錯誤如果沒有發現,會依次傳遞到設計和編碼。軟件錯誤的發現和解決具有放大性。據估計,在分析設計階段產生的錯誤,如果在編碼結束后的測試過程才被發現,其代價約為在分析設計階段發現和解決錯誤的代價的10倍。如果該錯誤在產品交付使用后才發現和解決,則其代價將超過100倍。因此,測試工作越早進行,發現和解決錯誤的代價越小,風險越小。根據這個觀點,Systeme Evolutif公司在V-模型的基礎上,提出了W-模型,如下圖所示。
圖中,W-模型由兩個“V”重疊而成。其中一個“V”表示開發過程,包括需求分析、規格書生成、軟件設計、代碼編程、軟件構建、系統構建以及安裝等階段。另一個“V”表示測試過程,包括需求測試、規格測試、設計測試、單元測試、集成測試、系統測試以及驗收測試等活動。軟件測試的各項測試活動與開發過程的各個階段相對應。
三、前置測試模型:
前置測試是一個將測試和開發緊密結合的模型,其示意圖如下圖。
前置測試模型將開發和測試的生命周期整合在一起,標識了項目生命周期從開始到結束之間的關鍵活動。如果其中有些活動沒有得到很好的執行,那么項目成功的可能性就會因此而有所降低。