官术网_书友最值得收藏!

3.1.3 基于流程的測試過程模型

3.1.3.1 V模型

V模型定義了基本的開發過程和測試行為,描述測試過程活動與開發過程的關系,展示了動態測試的全部過程,確定了軟件開發過程中需要經歷的測試級別,是最具代表性、最基礎的測試過程模型之一。基于V模型的測試策略包括低層測試和高層驗證。低層測試旨在驗證源代碼的正確性,而高層驗證將關注的重點放在軟件系統與需求符合性的驗證上。V模型如圖3-3所示。

圖3-3 V模型

3.1.3.2 W模型

V模型將軟件測試作為編碼結束后查找程序錯誤的一項過程活動,忽視了對系統規格、需求規格、系統設計的驗證和確認,與瀑布模型形成緊耦合關系,不利于過程的展開和優化。1993年,為解決V模型存在的不足,Paul Herzlich將V模型耦合成V&V模型,即W模型。與V模型相比,W模型增加了軟件開發各階段需要同步開展的驗證和確認活動,強調測試與開發同步。W模型如圖 3-4所示。

圖3-4 W模型

W模型是V模型的自然拓展,將測試過程同開發過程融為一體,每項測試活動對應一個開發行為,展示了測試與開發的并行關系,同時將程序、文檔及數據作為測試對象,體現了測試貫穿于開發過程及“盡早和持續不斷地進行測試”的思想,更加科學地展示了軟件測試的目的和意義。

雖然V模型和W模型都將開發行為與測試行為相互對應,但W模型并不主張動態測試必須與開發階段嚴格對應。例如,在某些情況下,系統測試中的功能測試、性能測試、安全性測試等即可構成動態測試的全部內容,在驗收測試過程中,采信系統測試結果。同時,W模型也不限制動態測試行為必須嚴格地基于對應開發行為所產生的文檔。

W模型同樣基于瀑布模型,開發和測試保持線性的前后關系,不利于迭代支持、自發性及變更調整。對于迭代開發、敏捷開發、持續集成及基于原型的大型復雜系統開發,難以有效解決軟件測試管理所面臨的困難。

3.1.3.3 H模型

無論是V模型還是W模型,均基于瀑布模型,將需求分析、軟件設計、編碼實現過程線性展開。而工程上,這些活動可能相互交叉、相互重疊。軟件測試是一個反復觸發、不斷迭代的過程活動,并非嚴格的次序關系。H模型將測試過程活動獨立出來,形成一個獨立過程,構建開發過程中某階段的一次測試循環,清晰地展示測試策劃、測試設計、測試執行等過程活動,貫穿于軟件生命周期,與其他流程并發進行,當某個測試點準備就緒時,就可以從測試準備階段進入測試執行階段。H模型如圖3-5所示。

圖3-5 H模型

H模型描述了軟件開發過程中某個階段所對應的測試活動。模型中的其他開發流程可以是任意的開發流程,如軟件設計或編碼實現。也就是說,只要測試準備就緒,就可以開始測試執行活動。在軟件生命周期過程中,存在多個這樣獨立的測試活動,與其他活動并發進行,不同測試活動可以按次序進行,也可以迭代實施。

3.1.3.4 X模型

X模型針對單獨的軟件元素,進行相互分離的編碼和測試,然后通過頻繁的交接,集成為可執行程序。X模型同樣也是對V模型的改進。X模型如圖3-6所示。

圖3-6 X模型

X模型左側描述的是對單獨程序片段進行的相互分離的編碼和測試,然后進行交接,集成為最終的可執行程序,隨后對這些可執行程序進行測試。多條并行的曲線表示變更可能在各個部分發生。X模型定位了探索性測試,這是不進行事先計劃的特殊類型測試,該方法能幫助測試人員在測試計劃之外發現更多錯誤。但運用該模型可能造成人力、物力和財力浪費,并且對軟件測試人員的能力和素質提出了更高的要求。

主站蜘蛛池模板: 无棣县| 东宁县| 于都县| 通海县| 建平县| 南安市| 德庆县| 阆中市| 宾川县| 华蓥市| 揭西县| 绥宁县| 舞阳县| 呼和浩特市| 施甸县| 龙川县| 绍兴县| 九龙坡区| 玉山县| 沙河市| 开阳县| 辰溪县| 通化市| 神农架林区| 海林市| 古蔺县| 泾川县| 嵊泗县| 安阳县| 永川市| 修文县| 盐边县| 乐至县| 衡阳县| 上思县| 全州县| 岐山县| 林西县| 睢宁县| 瓦房店市| 闵行区|