軟體測試模型有幾種?這4中軟體測試模型你都知道嗎

黑馬程序員 發佈 2024-03-01T05:55:44.432985+00:00

在軟體開發過程中,人們根據經驗教訓並結合未來軟體的發展趨勢總結出了很多軟體開發模型,如瀑布模型、快速原型模型、疊代模型等,這些模型對軟體開發過程具有很好的指導作用,但遺憾的是它們對軟體測試並沒有給予足夠的重視,利用這些模型無法更好地指導軟體測試工作。

在軟體開發過程中,人們根據經驗教訓並結合未來軟體的發展趨勢總結出了很多軟體開發模型,如瀑布模型、快速原型模型、疊代模型等,這些模型對軟體開發過程具有很好的指導作用,但遺憾的是它們對軟體測試並沒有給予足夠的重視,利用這些模型無法更好地指導軟體測試工作。

軟體測試是與軟體開發緊密相關的一系列有計劃的活動,是保證軟體質量的重要手段因此人們又相繼設計了很多軟體測試模型用於指導測試工作。軟體測試模型兼顧了軟體開發過程,對軟體開發和測試進行了很好的融合,它既明確了軟體開發與測試之間的關係,又使測試過程與開發過程產生交互,是測試工作的重要參考依據。

軟體測試模型對測試工作具有指導作用,對測試效果與質量都有很大的影響,很多測試專家在實踐中不斷改進創新,創建了很多實用的軟體測試模型。下面介紹幾種比較重要的軟體測試模型。

V模型

V模型是由保羅·魯克(Paul Rook)在20世紀80年代提出的,它是軟體測試模型中最具有代表性的模型之一。V模型是瀑布模型的變種,在瀑布模型的後半部分添加了測試工作如下圖所示。

V模型描述了基本的開發過程與測試行為,主要反映了測試活動分析與設計之間的關係。它非常明確地表明了測試過程所包含的不同級別,以及測試各階段與開發各階段所對應的關係。V模型的左邊是自上而下、逐步細化的開發過程,右邊是自下而上、逐步集成的過程,這也符合了軟體開發與軟體測試的關係。

V模型應用瀑布模型的思想將複雜的測試工作分成了目標明確的小階段來完成,具有階段性、順序性和依賴性,它既包含了對於原始碼的底層測試,也包含了對於軟體需求的高層測試。但是V模型也有一定的局限性,它只有在編碼之後才能開始測試,早期的需求分析等前期工作沒有涵蓋其中,因此它不能發現需求分析等早期的錯誤,這為後期的系統測試、驗收測試埋下了隱患。

W模型

W模型是由Ⅴ模型演變而來的,它強調測試應伴隨整個軟體生命周期。其實W模型是個雙V模型,軟體開發是一個V模型,而軟體測試是與開發同步進行的另一個V模型如下圖所示。

W模型的測試範圍不僅包括程序,還包括需求分析、軟體設計等前期工作,這樣有利於儘早地全面發現問題。但是W模型也有自己的局限性,它將軟體開發過程分成需求、設計、編碼、集成等一系列的串行活動,無法支持疊代、自發性等需要變更調整的項目。

H模型

為了解決V模型與W模型存在的問題,有專家提出了H模型,H模型將測試活動完全獨立了出來,形成一個完全獨立的流程,這個流程將測試準備活動和測試執行活動清晰地體現出來。測試流程和其他工作流程是並發執行的,只要某一個工作流程的條件成熟就可以開始進行測試。例如在概要設計工作流程上完成一個測試,其過程如下圖所示。

只是體現了軟體生命周期中概要設計層次上的一個測試「微循環」。在H模型中測試級別不存在嚴格的次序關係,軟體生命周期的各階段的測試工作可以反覆觸發、疊代,即不同的測試可以反覆疊代地進行。在實際測試工作中,H模型並無太多指導意義,讀者重點是理解其中的設計意義。

X模型

X模型的設計原理是將程序分成多個片段反覆疊代測試,然後將多個片段集成再進行選代測試,如下圖所示。

X模型左邊描述的是針對單獨程序片段進行的相互分離的編碼和測試,多個程序片段進行頻繁的交接,在X模型的右上部分,將多個片段集成為一個可執行的程序再進行測試。通過集成測試的產品可以進行更大規模的集成,也可以進行封裝提交給客戶。

在X模型的右下部分還定位了探索性測試,它能夠幫助有經驗的測試人員發現更多測試計劃之外的軟體錯誤,但這對測試人員要求會高一些。

上面共介紹了4種軟體測試模型,在實際測試工作中,測試人員更多的是結合W模型與H模型進行工作,軟體各個方面的測試內容是以W模型為準,而測試周期、測試計劃和進度是以H模型為指導。X模型更多是作為最終測試、熟練性測試的模板,例如對一個業務測試已經有2年時間,則可以使用X模型進行模塊化的、探索性的方向測試。

關鍵字: