軟件測試模型

常見的軟件測試模型包括V模型W模型H模型X模型前置模型

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模型還定位了探索性測試,這是不進行事先計劃的特殊類型的測試, 這一方式往往能幫助有經驗的測試人員在測試計劃之外發現更多的軟件錯誤。但這樣可能對測試造成人力、物力和財力的浪費, 對測試員的熟練程度要求比較高。

前置模型

編輯