軟件測試V模型與X模型對比軟件測試工具
X模型的目標是彌補V模型的一些缺陷。X模型真的能解決測試過程各方面的問題,例如交接、經常性的集成?
在軟件測試方面,V模型是最廣為人知的模型,盡管很多富有實際經驗的測試人員還是不太熟悉V模型,或者其它的模型。V模型已存在了很長時間,和瀑布開發模型有著一些共同的特性,由此也和瀑布模型一樣地受到了批評和質疑。在《 軟件測試:不可忽略的階段 》中已經詳細討論了V模型,這里只作一個概要的介紹。
V模型中的過程從左到右,描述了基本的開發過程和測試行為。V模型的價值在于它非常明確地標明了測試過程中存在的不同級別,并且清楚地描述了這些測試階段和開發過程期間各階段的對應關系。
圖1--V模型示意圖
在V模型中,單元測試是基于代碼的測試,最初由開發人員執行,以驗證其可執行程序代碼的各個部分是否已達到了預期的功能要求;
集成測試驗證了2個或多個單元之間的集成是否正確,并有針對性地對詳細設計中所定義的各單元之間的接口進行檢查;
在所有單元測試和集成測試完成后,系統測試開始以客戶環境模擬系統的運行,以驗證系統是否達到了在概要設計中所定義的功能和性能;
最后,當技術部門完成了所有測試工作后,由業務專家或用戶進行驗收測試,以確保產品能真正符合用戶業務上的需要。
盡管很多人對V模型表示了否定,但很少有人真正詳細地討論這些問題。Brian Marick(《The Craft of Software Testing (Prentice Hall, 1995)》一書的作者)曾如此表示。在STAR2000 (Software Testing Analysis and Review) 東部會議上,Marick曾經和Dorothy Graham(本系列文章的另一位作者)進行過一場論爭,并在其個人網站www.testing.com上對V模型提出過一些中肯的反對意見。
X模型
Marick曾提出過一些觀點和意見,其中首先是Marick不建議要建立一個替代模型。這里我很冒昧地引用了一些Marick的想法,并重新經過組織,形成了“X模型”。其實并不是為了和V模型相對應而選擇這樣的名字,而是由于其它一些原因:X通常代表未知,而Marick也認為他的觀點并不足以支撐一個模型的完整描述,但其中已經有一個模型所需要的一些主要內容,其中也包括了象探索性測試(exploratory testing)這樣的亮點。我還需要在使用文字方面也向Marick道歉,因為認同Marick觀點的無疑大多屬于X一代(X一代)。另外,我勾畫了一張X形狀的示意圖,我相信該圖能夠很好地以另一種表達形式來體現Marick的觀點。
圖2--X模型示意圖
由于X模型從沒有被文檔化,其內容一開始需要從在V模型的相關內容中進行推斷,這在Marick的相關文章中已有體現。這里關于X模型的論述比較簡短,因為它還沒有完全從文字上成為V模型的全面擴展,而且我不想在這里重復在《 軟件測試:不可忽略的階段 》文章中所提到的很多測試技術的概念。
Marick對V模型的最主要批評是V模型無法引導項目的全部過程。他認為一個模型必須能處理開發的所有方面,包括交接,頻繁重復的集成,以及需求文檔的缺乏等等。
文章來源于領測軟件測試網 http://www.kjueaiud.com/