標籤:
軟體工程中介紹了很多開發模型,例如瀑布模型、原型模型、螺旋模型等等,還有比較流行的RUP,這些模型對軟體開發過程具有很好的指導作用。但是在軟體工程中並沒有給測試足夠的重視,軟體測試與開發是緊密相關的一系列有計劃的活動,所以軟體測試也需要相應的測試模型進行指導。下面是對一些測試模型的簡單介紹
1.V模型
V模型是軟體測試方面最具有代表性的模型,它最早由Paul Rook在20世紀80年代提出,旨在改進軟體開發的效率和效果。V模型是軟體開發瀑布模型的變種,反映了測試活動與分析和設計的關係,它非常明確地表明了測試過程中存在的不同層級,且清楚地描述了這些測試階段和開發過程期間各階段的對應關係。中左邊下降的是開發過程各階段,與此相對應的是右邊上升的測試過程的各個階段。
各階段特點:
V模型的軟體測試,包括底層測試與高層測試。底層測試是為了原始碼的正確性,高層測試是為了使整個系統滿足使用者的需求。
單元測試:是基於代碼的測試,最初由開發人員執行,以驗證其可執行程式代碼的各個部分是否已達到了預期的功能要求
整合測試:驗證2個或多個單元之間的整合是否正確,並有針對性地對詳細設計中所定義的各單元之間的介面進行檢查
系統測試:驗證系統設計,開始以客戶環境類比系統的運行,以驗證系統是否達到了概要設計中所定義的功能和效能。
確認測試和驗收測試:由測試人員、業務專家或使用者進行測試,追溯軟體需求說明書進行測試,以確定軟體的實現是否滿足使用者需求或合約的要求。
局限性:
它僅僅把測試過程作為了需求分析、概要設計、詳細設計及編碼之後的一個階段。容易使人理解為測試是軟體開發的最後一個階段,主要針對程式進行測試尋找錯誤,而需求分析階段隱藏的問題只有在後期的驗收測試才能被發現。(V模型的局限性是在於沒有明確地說明早期的測試,不能體現“儘早地和不斷地進行軟體測試”的原則)
2.W模型
W模型由Evolutif公司提出,相對於V模型,W模型增加了軟體開發各階段中同步進行的驗證和確認活動。W模型由兩個V字型模型組成,分別代表測試與開發過程,圖中明確表示出了測試與開發的並行關係。它可以說是V模型自然而然的發展,它強調測試伴隨著整個軟體開發週期,而且測試的對象不僅僅是程式,需求、功能和設計童謠要測試,且只要相應的開發活動完成,測試活動就可開始,也可以說測試與開發同步進行,從而有利於儘早地發現問題。
根據W模型的要求,一旦有文檔提供,就要及時確定測試條件,以及編寫測試案例。當需求被提交後,就需要確定進階別的測試案例來測試這些需求。當概要設計編寫完成後,就需要確定測試條件來尋找該階段的設計缺陷。
局限性:
W模型與V模型都把軟體的開發視為需求、設計、編碼等一系列串列活動。軟體開發與測試保持著一種線性前後關係,需要有嚴格的指令表示上一階段完全結束,才可正式開始下一個階段。這樣就無法支援反覆式開發法以及變更調整,對於很多文檔需要事後補充或者沒有文檔的做法下,W模型根本無法解除測試管理方面面臨的困難。
3.H模型
H模型將測試活動完全獨立出來,形成了一個完全獨立的流程,將測試準備活動和測試執行活動清晰地體現出來。H模型揭示了一個原理:軟體測試是一個獨立的流程,貫穿產品的整個生命週期,與其它流程並發地進行。H模型指出軟體測試要儘早準備,儘早執行。
H模型揭示了不同的測試活動可以是按照某個次序先後進行的,但也可能是反覆的,只要某個測試達到準備就緒點,測試執行活動就可以開展。
小結:
軟體測試是一種用來促進評鑑軟體的正確性、完整性、安全性和品質的過程,是軟體開發必不可少的一部分。測試模型和軟體開發模型一樣,都在不斷地變化中發展、改進,越來越靈活易用。
軟體測試模型