軟件測試新思路-測試驅動(dòng)開(kāi)發(fā)和迭代測試 軟件測試
項目的開(kāi)發(fā)風(fēng)險來(lái)自于對需求的誤解,來(lái)自于設計與開(kāi)發(fā)過(guò)程及產(chǎn)品的缺陷,只有盡早發(fā)現這些缺陷,才能降低并控制項目風(fēng)險?;谶@種思想,軟件業(yè)出現了一些新的測試思路,主要有二:
1、測試驅動(dòng)開(kāi)發(fā)(Test-Driven Development,簡(jiǎn)稱(chēng)TDD)。這種測試思想被最近流行的XP(Extreme Programming)極限編程方式所大力提倡。它的基本思想是,通過(guò)測試來(lái)為編程做指導,在某個(gè)要開(kāi)發(fā)的需求對象明確之后,在編碼之前,先進(jìn)行相關(guān)測試代碼(測試代碼的內容和需求規格說(shuō)明書(shū)描述是相同的,有人把它稱(chēng)為“可執行的需求規格說(shuō)明書(shū)”)的編寫(xiě)工作,完成之后針對測試代碼進(jìn)行編程,然后再用測試程序對開(kāi)發(fā)代碼進(jìn)行測試,驗證其正確性,若程序通過(guò)了測試,就說(shuō)明它是符合需求規格說(shuō)明書(shū)要求的。周而復始,通過(guò)這樣的過(guò)程,開(kāi)發(fā)進(jìn)程得以層層深入,直到開(kāi)發(fā)完成。而這時(shí)單元測試也基本完成了。
這種測試方式的最大的好處是,盡早地發(fā)現設計、開(kāi)發(fā)中存在的問(wèn)題,避免傳統開(kāi)發(fā)模式中的“測試過(guò)程中發(fā)現代碼不能滿(mǎn)足需求而導致的大量返工”。降低項目風(fēng)險;同時(shí)可以盡早地將“半成品”展示給客戶(hù),使客戶(hù)對需求進(jìn)行驗證、補充及完善,另外測試代碼的表達方式相對準確、無(wú)二義性,可以降低因需求理解錯誤而導致的項目風(fēng)險。
2、迭代測試。這種測試是IBM所推崇測試方式之一,它從迭代式開(kāi)發(fā)模式演變而來(lái)。在迭代開(kāi)發(fā)模式中,每個(gè)迭代都包含需求、設計、編碼、集成、測試等過(guò)程。在每一次迭代完成之后,便會(huì )開(kāi)始新的迭代過(guò)程。通過(guò)一次次迭代的累進(jìn),系統會(huì )增量式集成一些新的功能,直至整個(gè)系統功能的完成。其中,每個(gè)迭代周期的測試工作由兩方面內容構成:
• 對當前迭代周期產(chǎn)品的增量測試。
• 對前迭代周期已完成功能的回歸測試。
隨著(zhù)迭代周期的累進(jìn),測試工作內容隨之不斷變化。早期迭代測試重點(diǎn)在于新功能的測試,后期迭代測試重點(diǎn)在于累積功能的回歸測試。
有的人不喜歡XP編程的開(kāi)發(fā)方式,認為其沒(méi)有明確的階段性劃分,不利于計劃管理,模式過(guò)于靈活,不好掌握。迭代式開(kāi)發(fā)模式為這些人提供了新的選擇。這種開(kāi)發(fā)方式繼承了瀑布式開(kāi)發(fā)模式的優(yōu)點(diǎn)――全面、嚴謹、有計劃性、易管理,更重要的是,這種模式將測試工作分布到每個(gè)迭代周期中,使測試工作提前進(jìn)行,從而使將發(fā)現軟件缺陷的周期提前,大大降低軟件風(fēng)險及開(kāi)發(fā)成本。
它將軟件開(kāi)發(fā)比喻成制作一桌盛宴,項目經(jīng)理比作大廚,測試人員比作品嘗師,用戶(hù)則比作就餐者。為保障飯菜質(zhì)量,上菜之前,先由品嘗師對滿(mǎn)桌的半成品、準成品逐個(gè)品嘗,發(fā)現不足的地方要及時(shí)通知大廚進(jìn)行改進(jìn),完善質(zhì)量,直至品嘗師覺(jué)得:全部的飯菜已經(jīng)色、香、味俱佳,滿(mǎn)足用戶(hù)要求了,才通過(guò)審查,允許飯菜上桌,供就餐者品嘗。我想說(shuō)的是:飯菜質(zhì)量靠品嘗師的監督,但主要靠的是大廚的技術(shù),同理,軟件的質(zhì)量則是靠各個(gè)項目管理過(guò)程的互相配合及項目經(jīng)理的整體控制和把握,測試只是其中的一份子。所以,請不要將軟件的質(zhì)量都交給測試過(guò)程來(lái)承擔,那樣將是“生命不能承受之重”。
原文轉自:http://kjueaiud.com