V模型
V模型(V-model)是一種用圖像表示系統發展生命周期的模式,可以產出嚴謹的發展生命周期模型以及專案管理模型。V模型可分為三大類:德國的Das V-Modell、泛用的測試模式以及美國政府標準。
V模型列出了在產品開發時需進行的各個階段,以及各階段對應的產出。V模型描述了產品開發中需進行的活動,以及各活動產出的資料或是檔案。而這些檔案也是後面階段需要的資料輸入。
V模型是最具有代表意義的測試模型。V模型是軟體開發瀑布模型的變種,它反映了測試活動與分析和設計的關係 。
軟體測試若使用經典的V模型階段可以分為:
•單元測試
•集成測試
•系統測試
V模型問題:
測試是開發之後的一個階段。
測試的對象就是程式本身。
實際套用中容易導致需求階段的錯誤一直到最後系統測試階段才被發現。
整個軟體產品的過程質量保證完全依賴於開發人員的能力和對工作的責任心,而且上一步的結果必須是充分和正確的,如果任何一個環節出了問題,則必將嚴重的影響整個工程的質量和預期進度
1.測試是開發之後的一個階段。
2.測試的對象就是程式本身。
3.實際套用中容易導致需求階段的錯誤一直到最後系統測試階段才被發現。
4.整個軟體產品的過程質量保證完全依賴於開發人員的能力和對工作的責任心,而且上一步的結果必須是充分和正確的,如果任何一個環節出了問題,則必將嚴重的影響整個工程的質量和預期進度
W模型
W模型由Evolutif公司公司提出,相對於V模型,W模型增加了軟體各開發階段中應同步進行的驗證和確認活動。W模型由兩個V字型模型組成,分別代表測試與開發過程,圖中明確表示出了測試與開發的並行關係。
W模型中測試與開發對應關係如下:
開發:需求分析、概要設計、 詳細設計、 編碼、 軟體集成、系統集成、部署
↑ ↑ ↑ ↑ ↑ ↑ ↑
測試:需求評審、概要設計評審、詳細設計評審、單元測試、集成測試、系統測試、驗收測試
W模型強調:測試伴隨著整個軟體開發周期,而且測試的對象不僅僅是程式,需求、設計等同樣要測試,也就是說,測試與開發是同步進行的。W模型有利於儘早地全面的發現問題。例如,需求分析完成後,測試人員就應該參與到對需求的驗證和確認活動中,以儘早地找出缺陷所在。同時,對需求的測試也有利於及時了解項目難度和測試風險,及早制定應對措施,這將顯著減少總體測試時間,加快項目進度。 但W模型也存在局限性。在W模型中,需求、設計、編碼等活動被視為串列的,同時,測試和開發活動也保持著一種線性的前後關係,上一階段完全結束,才可正式開始下一個階段工作。這樣就無法支持疊代的開發模型。對於當前軟體開發複雜多變的情況,W模型並不能解除測試管理面臨著困惑。
H模型
在H模型中,軟體測試的過程活動完全獨立,形成了一個完全獨立的流程,貫穿於整個產品的周期,與其他流程並發進行,某個測試點準備就緒後就可以從測試準備階段進行到測試執行階段;軟體測試可以根據被測產品的不同分層進行。
X模型
X模型也是對V模型的改進,X模型提出針對單獨的程式片段進行相互分離的編碼和測試,此後通過頻繁的交接,通過集成最終合成為可執行的程式。 X模型的基本思想是由Marick提出的,但首先Marick不建議建立一個替代模型,同時,他也認為他的觀點並不足以支撐一個模型的完整描述,
不過,Robin F.Goldsmith先生在自己的文章里將其思想定義為X模型,理由是,在Marick的觀點中已經具備了一個模型所需要的一些主要內容, 其中也包括了像探索性測試這樣的亮點。
X模型的左邊描述的是針對單獨程式片段所進行的相互分離的編碼和測試,此後將進行頻繁的交接,通過集成最終成為可執行的程式, 然後再對這些可執行程式進行測試。己通過集成測試的成品可以進行封裝並提交給用戶,也可以作為更大規模和範圍內集成的一部分。 多根並行的曲線表示變更可以在各個部分發生。由圖中可見,X模型還定位了探索性測試,這是不進行事先計畫的特殊類型的測試, 這一方式往往能幫助有經驗的測試人員在測試計畫之外發現更多的軟體錯誤。但這樣可能對測試造成人力、物力和財力的浪費, 對測試員的熟練程度要求比較高。