軟體測試過程模型介紹
V模型
V模型最早是由Paul Rook在20世紀80年代後期提出的,旨在改進軟體開發的效率和效果。V模型反映出了測試活動與分析設計活動的關係。在圖1-1中,從左到右描述了基本的開發過程和測試行為,非常明確的標註了測試過程中存在的不同型別的測試,並且清楚的描述了這些測試階段和開發過程期間各階段的對應關係。
圖1-1 軟體測試V模型
V模型指出,單元和整合測試應檢測程式的執行是否滿足軟體設計的要求;系統測試應檢測系統功能、效能的質量特性是否達到系統要求的指標;驗收測試確定軟體的實現是否滿足使用者需要或合同的要求。
但V模型存在一定的侷限性,它僅僅把測試作為在編碼之後的一個階段,是針對程式進行的尋找錯誤的活動,而忽視了測試活動對需求分析、系統設計等活動的驗證和確認的功能。
W模型
W模型由Evolutif公司公司提出,相對於V模型,W模型增加了軟體各開發階段中應同步進行的驗證和確認活動。如圖1-2所示,W模型由兩個V字型模型組成,分別代表測試與開發過程,圖中明確表示出了測試與開發的並行關係。
W模型強調:測試伴隨著整個軟體開發週期,而且測試的物件不僅僅是程式,需求、設計等同樣要測試,也就是說,測試與開發是同步進行的。W模型有利於儘早地全面的發現問題。例如,需求分析完成後,測試人員就應該參與到對需求的驗證和確認活動中,以儘早地找出缺陷所在。同時,對需求的測試也有利於及時瞭解專案難度和測試風險,及早制定應對措施,這將顯著減少總體測試時間,加快專案進度。
但W模型也存在侷限性。在W模型中,需求、設計、編碼等活動被視為序列的,同時,測試和開發活動也保持著一種線性的前後關係,上一階段完全結束,才可正式開始下一個階段工作。這樣就無法支援迭代的開發模型。對於當前軟體開發複雜多變的情況,W模型並不能解除測試管理面臨著困惑。
圖1-2 軟體測試W模型
H模型
V模型和W模型均存在一些不妥之處。如前所述,它們都把軟體的開發視為需求、設計、編碼等一系列序列的活動,而事實上,這些活動在大部分時間內是可以交叉進行的,所以,相應的測試之間也不存在嚴格的次序關係。同時,各層次的測試(單元測試、整合測試、系統測試等)也存在反覆觸發、迭代的關係。
為了解決以上問題,有專家提出了H模型。它將測試活動完全獨立出來,形成了一個完全獨立的流程,將測試準備活動和測試執行活動清晰地體現出來,如圖1-3所示。
圖1-3 軟體測試H模型
這個示意圖僅僅演示了在整個生產週期中某個層次上的一次測試“微迴圈”。圖中標註的其他流程可以是任意的開發流程。例如,設計流程或編碼流程。也就是說,只要測試條件成熟了,測試準備活動完成了,測試執行活動就可以(或者說需要)進行了。
H模型揭示了一個原理:軟體測試是一個獨立的流程,貫穿產品整個生命週期,與其他流程併發地進行。H模型指出軟體測試要儘早準備,儘早執行。不同的測試活動可以是按照某個次序先後進行的,但也可能是反覆的,只要某個測試達到準備就緒點,測試執行活動就可以開展。
作者: 千里和他的軟體測試
軟體測試學習交流: 軟體測試交流群 172489141
銀行金融業務交流: 新網銀測試群 52304542
介面自動化效能交流: 一個正經的測試群 188427938