按測試模式來分類: 瀑布模型、敏捷測試、基於腳本的測試、基於風險的測試、探索式測試等。
1、(傳統的)瀑布模型:
項目計划->需求分析->軟件設計->程序開發->軟件測試->集成維護
項目計划階段:主要是制定項目總體研發計划,樹立項目里程碑節點,輸出項目計划書;
需求分析階段:明確客戶的需求定義,並對這個定義進行清晰的描述,是充分理解客戶需求,描述產品功能的重要階段,這個階段會輸出產品的需求規格說明書;
軟件設計階段:則會根據需求的定義,來確定產品實現的方案,包括定義軟件硬件的結構,組建模塊的實現方法,接口、界面、數據如何進行組織,這個階段會輸出包括概要設計,詳細設計在內的多份說明書;
程序開發階段:這個階段是開發團隊根據需求和設計具體實現我們的產品,來根據編程規范,構建我們的組件模塊,最后輸出我們的產品版本;
軟件測試階段則是通過獨立的測試小組或者QI團隊評估我們的產品是否滿足需求的定義,最后輸出測試結果報告,
集成維護階段則是產品經過測試以后,交付給用戶,根據用戶的使用情況,再對產品進行維護,及必要的修改升級等操作。
優點:
- 強調需求,設計的作用;
- 前一階段完成后只需關注后續階段;
- 為項目提供按階段划分的檢查點,里程碑清晰
- 文檔規范
缺點:
- 線性研發過程難以適應需求的頻繁變化,
- 項目周期后段才可看到成果,用戶要到末期才能看到開發結果,增加了開發的風險
- 強制的里程碑,對於開發過程中出現的變化,適應能力較差,
- 文檔工作量較大,測試在項目的后期,文檔的開發帶來很大的工作量。
2、V模型(最廣泛)
需求分析->概要設計->詳細設計->軟件編碼->單元測試->集成測試->系統測試->驗收測試
瀑布模型的變種。
單元測試,集成測試:檢測程序是否滿足我們設計上的要求;
系統測試:在功能、性能這些質量特性上是否能夠滿足我們系統要求的指標;
驗收測試:確定軟件是否滿足用戶的一些需求,以及合同的一些規定;
優點:
在V模型里,強調軟件開發的協作和速度,反應測試活動和分析測試的關系,並且將軟件的實現和驗證有機的結合了起來,V模型,明確的界定測試過程是存在不同階段的。
缺點:
但是V模型也有一定的局限性,它僅僅把測試過程放在需求分析、系統設計、編碼之后的一個階段,忽視了測試對於需求的分析和驗證。我們對需求的驗證,對系統設計的驗證,到后期的驗收測試才有可能被發現,對於我們測試當中的測試需要盡早進行的原則在V模型中沒有體現,這是V模型的局限。
3、W模型(雙V模型)
優點:開發與測試並行,有利於盡早發現問題,有利於及時的了解項目的測試風險,來及早的執行相應的應對方案,加快項目的進度。
局限性:需求、設計、編碼仍然是串行進行的,測試和開發保持線性的關系,上一個階段完成之后才能進行下一個階段,不能夠很好的支持迭代的開發模型。
4、X模型
解決交接和頻繁集成周期的問題
左邊描述的是針對單獨的程序片段相互分離的編碼和測試,此后進行頻繁的交接,再通過集成,最終合成可執行的程序,對這些程序進行測試,這些程序還是需要冀衡測試,已經通過的程序可以進行封板提交給用戶,也可以作為更大集成的一部分,X模型還定位了探索式測試,探索式測試是不進行事先計划的特殊類型的測試,能夠幫助測試人員在測試計划之外發現更多的錯誤。
5、H模型:
把軟件測試看成一個完全獨立的流程,與其他流程並發進行,比如設計流程,編碼流程,甚至是測試流程,
H模型強調把測試分為測試准備和測試執行兩個不同的階段,只要由於其他流程的進展引發了測試就緒點的到位,這時候,只要測試准備不能完成,測試執行活動就可以或者需要開展,在H模型當中,測試是一個完全獨立的模型,所以可以和其他的流程交叉地進行,也便於我們盡早的執行測試。