與開發(fā)模型一樣,軟件測試根據(jù)不同的被測對象驻售、測試背景露久、被測對象質(zhì)量要求、項目進度要求等欺栗,可以采用不同的測試模型實施測試活動毫痕,來指導(dǎo)軟件測試活動安排。
業(yè)界常見模型:
1纸巷、V模型
2镇草、W模型(雙V模型)
3眶痰、X模型
4瘤旨、H模型
5、敏捷模型
------------------------------------------------------------------------------------------------------------------------------
1竖伯、V模型
?V模型是所有軟件測試模型中最為大家熟知的一種模型存哲。它是從瀑布研發(fā)模型演變而來的測試模型,如圖所示七婴。
V模型流程是從上至下祟偷,從左到右
①測試工程師在研發(fā)人員編程過程中,對其生成的代碼函數(shù)做單元測試
②單元測試通過后進行集成測試
③集成測試通過后做系統(tǒng)測試打厘、驗收測試
?V模型缺點:項目早期的缺陷修肠,在后期才能發(fā)現(xiàn)
2、W模型
W模型是在V模型的基礎(chǔ)上演變而來的户盯,一般又稱為雙V模型嵌施。在V模型中,研發(fā)活動沒有完成莽鸭、無任何輸出物時吗伤,測試工程師無法開展測試工作,相對而言硫眨,測試活動嚴重滯后足淆。為了解決V模型的缺點,W模型提出了測試活動與研發(fā)活動并行的概念,并且在生產(chǎn)流程演進過程中巧号,增加了驗證與確認活動族奢。
W模型從用戶需求開始,研發(fā)團隊根據(jù)用戶需求進行需求分析丹鸿、概要設(shè)計歹鱼、詳細設(shè)計、編碼開發(fā)等活動卜高,測試團隊則根據(jù)用戶需求進行驗收測試弥姻、系統(tǒng)測試、集成測試及單元測試設(shè)計掺涛。測試工作與研發(fā)活動分離庭敦,實現(xiàn)了并行操作。測試活動伴隨著整個研發(fā)過程薪缆,而不僅在研發(fā)有成果輸出后才參與秧廉。
W模型強調(diào)了測試活動不僅僅包括研發(fā)活動所產(chǎn)生的軟件源代碼,還考慮各種文檔拣帽,如需求文檔疼电、概要設(shè)計文檔、詳細設(shè)計文檔减拭、代碼等蔽豺。
W模型要求測試活動從用戶需求階段就介入,有利于盡早地發(fā)現(xiàn)問題拧粪,在模型實施過程中修陡,時刻進行確認(validation)、驗證(verification)活動
3可霎、X模型
?X模型產(chǎn)生的背景亦與V模型有關(guān)魄鸦,V模型的缺點是測試活動滯后于研發(fā)活動,無法盡早地開展測試活動癣朗。而X模型與W模型一樣拾因,提出的初衷都是解決V模型的缺點。
?X模型的基本思想是由Marick提出的旷余, Robin F.Goldsmith進行了完善绢记。X模型如圖所示。
X模型左邊表明針對單獨的程序片段n進行獨立的編碼和測試活動荣暮,以此為基本過程庭惜,不斷迭代,通過集成活動最終成為可執(zhí)行程序穗酥,然后再對這些可執(zhí)行程序進行測試护赊。通過集成測試的成品可以進行封裝并提交給系統(tǒng)測試環(huán)節(jié)或直接給用戶惠遏。多條并行的曲線表示變更可以在各個部分發(fā)生。
X模型提出了探索性測試的概念骏啰。探索性測試與常規(guī)的測試方法不同节吮,無須事先制定測試計劃或設(shè)計,有經(jīng)驗的測試工程師可根據(jù)自己的思維活動及對被測對象的理解判耕,在測試計劃之外發(fā)現(xiàn)更多的軟件錯誤透绩。但探索性測試通常情況下僅作為其他測試方法的補充,因其消耗測試資源較多壁熄,且受制于測試工程師的經(jīng)驗帚豪,所以不能成為獨立的測試方法。
4草丧、H模型
H模型將測試活動與其他研發(fā)流程獨立狸臣,測試活動分為測試準備與測試執(zhí)行兩個部分,便于測試設(shè)計與測試執(zhí)行活動定義昌执,如圖所示烛亦。測試準備活動包括測試需求分析、測試計劃懂拾、測試設(shè)計煤禽、測試編碼、測試驗證等岖赋,測試執(zhí)行包括測試運行檬果、測試報告、測試結(jié)果分析贾节、確認回歸測試等汁汗。
H模型與W模型一樣衷畦,揭示了軟件測試活動應(yīng)該是一個獨立的軟件生產(chǎn)流程栗涂,貫穿整個軟件生命周期,測試活動應(yīng)該盡早準備祈争、盡早執(zhí)行斤程,當測試準備工作完成后,一旦到達測試就緒點菩混,就可開展測試執(zhí)行活動忿墅,不會受制于研發(fā)活動。
5沮峡、敏捷測試模型
強調(diào)從客戶角度進行測試疚脐;
重點關(guān)注迭代測試新功能,不再強調(diào)測試階段
盡早測試邢疙,不間斷測試棍弄,具備條件即測試
強調(diào)持續(xù)反饋
預(yù)防缺陷重于發(fā)現(xiàn)缺陷
--------------------------------------------敏捷測試與傳統(tǒng)測試的區(qū)別-----------------------------------------------------------
--------------傳統(tǒng)測試:--------------
測試是質(zhì)量的最后保護者
嚴格的變更管理
預(yù)先的計劃和細節(jié)的準備
重量級文檔
各階段測試嚴格的入口和出口標準
更多在回歸測試時進行重量級的自動化測試
嚴格依賴流程執(zhí)行
測試團隊和開發(fā)團隊是相對獨立的
--------------敏捷測試:--------------
開發(fā)和測試人員是緊密合作望薄,大家都有責(zé)任對軟件負責(zé);
變更是可接受的呼畸,擁抱變更
計劃隨著進展時常調(diào)整
只需要絕對必要的文檔
各迭代之間已經(jīng)沒有明顯的入口和出口標準
所有階段都需要自動測試痕支,每個人都需要做,是項目集成的一部分蛮原;
流程不再需要嚴格執(zhí)行
團隊合作是無縫隙合作