軟件測試是軟件質量保證的重要手段之一,軟件測試模型則是軟件測試的工作框架,用于指導軟件測試過程。今天,我們就來介紹幾個基本的軟件測試模型——V-模型、W-模型和前置測試模型。
一、V-模型:
? ??在傳統(tǒng)的瀑布型軟件開發(fā)過程中,僅僅把測試過程作為在需求分析、概要設計、詳細設計及編碼之后的一個階段,對軟件測試過程沒有進一步的描述。V-模型針對瀑布模型對軟件測試過程進行了補充。V-模型最早由已故的Paul Rook在80年代后期提出。在該模型中,測試過程被加在開發(fā)過程的后半部分,如下圖所示。

在開發(fā)階段一側,先從定義業(yè)務需求開始,然后把需求轉換為軟件規(guī)格,再轉換到概要設計和詳細設計中,最后進行編碼成為程序代碼。在測試執(zhí)行階段一側,先進
行單元測試,然后是集成測試、系統(tǒng)測試,最后是驗收測試,這些測試形成了軟件測試的不同層次(級別),并與開發(fā)過程的相應階段相對應。
二、W-模型:
軟件開發(fā)過程各階段都可能產(chǎn)生錯誤。據(jù)國外對一些大型軟件系統(tǒng)的統(tǒng)計,需求分析與設計階段產(chǎn)生的錯誤占64%,編碼錯誤占36%。軟件錯誤具有傳遞性,即需求分析產(chǎn)生的錯誤如果沒有發(fā)現(xiàn),會依次傳遞到設計和編碼。軟件錯誤的發(fā)現(xiàn)和解決具有放大性。據(jù)估計,在分析設計階段產(chǎn)生的錯誤,如果在編碼結束后的測試過程才被發(fā)現(xiàn),其代價約為在分析設計階段發(fā)現(xiàn)和解決錯誤的代價的10倍。如果該錯誤在產(chǎn)品交付使用后才發(fā)現(xiàn)和解決,則其代價將超過100倍。因此,測試工作越早進行,發(fā)現(xiàn)和解決錯誤的代價越小,風險越小。根據(jù)這個觀點,Systeme Evolutif公司在V-模型的基礎上,提出了W-模型,如下圖所示。

??圖中,W-模型由兩個“V”重疊而成。其中一個“V”表示開發(fā)過程,包括需求分析、規(guī)格書生成、軟件設計、代碼編程、軟件構建、系統(tǒng)構建以及安裝等階
段。另一個“V”表示測試過程,包括需求測試、規(guī)格測試、設計測試、單元測試、集成測試、系統(tǒng)測試以及驗收測試等活動。軟件測試的各項測試活動與開發(fā)過程
的各個階段相對應。
三、前置測試模型:
? ??前置測試是一個將測試和開發(fā)緊密結合的模型,其示意圖如下圖。
? ? 前置測試模型將開發(fā)和測試的生命周期整合在一起,標識了項目生命周期從開始到結束之間的關鍵活動。如果其中有些活動沒有得到很好的執(zhí)行,那么項目成功的可能性就會因此而有所降低。