摘 要 軟件測試過程模型是對測試過程的抽象,主要用于定義軟件測試的流程和方法,其質量直接影響測試結果的準確性和有效性,因此,選取合適的模型指導軟件測試過程至關重要。本文深入分析了經典軟件測試過程模型的優(yōu)點及局限性,為軟件測試過程的順利實施、盡快盡早地發(fā)現(xiàn)軟件缺陷提供科學合理的依據。
關鍵詞 過程模型;V模型;W模型;H模型
前言
軟件測試是軟件開發(fā)過程中的重要組成環(huán)節(jié),是發(fā)現(xiàn)軟件缺陷和提高軟件質量的重要舉措。軟件測試過程模型是用于指導軟件測試過程如何開展的理論模型,模型的優(yōu)劣直接影響測試的質量,因此根據實際情況正確選取過程模型是一個不容忽視的關鍵問題。
1V模型
V模型是最具代表性的測試模型,最早由Paul Rook于20世紀80年代后期提出。該模型從左到右描述了基本開發(fā)過程和測試行為。V模型之所以應用廣泛主要基于其在軟件測試領域中的兩大貢獻。明確地將軟件測試按過程分為不同類型,即單元測試、集成測試、系統(tǒng)測試和驗收測試,每個階段完成不同的測試目標和任務,從而采用不同的測試技術及工具。描述了軟件測試階段與開發(fā)過程之間的對應關系。如單元測試對應詳細設計階段,則表明單元測試過程中,測試策略的選取、測試用例的設計,均依據于詳細設計階段的成果,即軟件詳細設計說明書。隨著人們對軟件測試理解的不斷深入,V模型的局限性也日益暴露出來。V模型是瀑布模型的簡單變體,因此與瀑布模型類似,都是將軟件的概念狹隘地理解為程序代碼,將軟件測試等同于程序測試,默認測試在程序代碼開發(fā)完畢之后、運行維護之前進行,容易導致缺陷發(fā)現(xiàn)不夠及時,從而大大增加修復的成本。V模型強調各階段之間的線性關系,對于大中型系統(tǒng)而言不適用,任何一個階段都不可能在下一階段開始之前完全結束[1]。
2W模型
為了盡快盡早開展測試,解決V模型的第一大局限性問題,Evolutif公司提出了W模型。該模型由兩個V字形模型組成,分別代表測試過程與開發(fā)過程。
較之V模型,W模型的優(yōu)勢主要體現(xiàn)在強調測試伴隨著整個軟件開發(fā)周期,而且測試的對象不僅僅是程序,需求、設計等同樣要測試,也就是說,測試與開發(fā)是同步進行的。W模型提供兩大機制用于體現(xiàn)測試與開發(fā)的同步性。
(1)驗證和確認。驗證(Verification)強調過程的正確性,關注軟件開發(fā)各階段的每個步驟產品是否正確無誤,與前一階段成果進行比對。以概要設計階段為例,驗證比對的雙方為概要設計說明書和需求規(guī)格說明書。確認(Validation)強調結果的正確性,關注最終軟件產品是否正確無誤,與最終用戶需求進行比對。此類活動需要最終用戶的參與,雖然可能增加測試的預算和成本,但卻可以最大限度地降低需求變更帶來的不利影響。以概要設計階段為例,確認比對的雙方為概要設計說明書和最終用戶需求。通過對每個階段的驗證和確認工作,有利于盡早地全面地發(fā)現(xiàn)軟件缺陷,最大限度減少修復缺陷所花費的時間和成本。
(2)測試準備。整個測試流程以編碼作為中軸線,被分為了兩個組成部分。在編碼完成之前、每個開發(fā)階段結束后,除了對該階段成果物進行確認和驗證以外,還需為對應的測試階段做前期準備工作,主要包括確定測試策略、準備測試用例、相關人員培訓、測試環(huán)境搭建等,充分的準備工作是測試順利進行的保障。反之,如果所有工作推遲至測試執(zhí)行前進行,則勢必影響測試的進度和效果。從上述分析可以看出,軟件測試從軟件生命周期的第一個階段開始,并貫穿于整個軟件生命周期中,體現(xiàn)了近代軟件工程的新思想。但整個模型中的軟件開發(fā)過程和軟件測試過程,依然強調各階段之間的線性關系,導致其無法支持迭代的開發(fā)模型,進而無法指導大中型系統(tǒng)的開發(fā)和測試過程[2]。
3H模型
為了體現(xiàn)不同測試活動的迭代關系以及時間上的交叉性,解決V模型的第二大局限性問題,H模型應運而生。深入觀察和分析W模型會發(fā)現(xiàn),對于測試活動而言,以編碼作為中軸線,每個測試階段經歷了類似的過程。比如概要設計結束后,對該階段進行驗證和確認,接著為集成測試做準備;單元測試完畢后,用于發(fā)現(xiàn)模塊內部缺陷的任務已經完成,則通過手工或自動化的方式,開展集成測試的執(zhí)行工作。詳細設計結束后,對該階段進行驗證和確認,接著為單元測試做準備;編碼完成后,模塊已經具備了基本的運行條件,則通過手工或自動化的方式,開展單元測試的執(zhí)行工作。在整個軟件生命周期內,每個軟件測試階段都經歷了一個類似的“微循環(huán)”,為了方便理解,以編碼作為中軸線,編碼之前稱為“測試準備”活動,編碼之后稱為“測試執(zhí)行”活動,至于兩者之間真正的分界線,除了編碼完成之外,還需具備一定的執(zhí)行資格,這一點需視具體情況而定。軟件開發(fā)過程和軟件測試過程都是反復觸發(fā)、迭代的,并且軟件測試存在于軟件開發(fā)的每一個階段,兩者是并行進行的。在這個思路的引導下,H模型將測試活動完全獨立出來,形成了一個完全獨立的流程,測試流程貫穿產品整個生命周期,與設計、編碼等其他流程并發(fā)的進行。與此同時,將整個測試流程嚴格的劃分為測試準備活動和測試執(zhí)行活動兩部分,兩者的分界線通過“測試就緒點”表示。從上述分析可以看出,H模型對迭代軟件測試過程的順利實施具有重要指導意義。
4結束語
隨著人們對軟件測試過程認識的不斷深入,軟件測試過程模型也在不斷優(yōu)化、完善,通過準確抽象測試活動,并與開發(fā)活動進行有機結合,能夠有效指導軟件測試過程的順利實施,并盡早地全面地發(fā)現(xiàn)軟件缺陷,提高軟件測試的效率和有效性。
軟件測試過程模型所描述的“微循環(huán)”過程被抽象為測試準備活動和測試執(zhí)行活動兩個部分,而每個測試階段的準備和執(zhí)行活動所具體包含的內容需通過軟件測試生命周期進行詳細描述。因此,軟件測試過程模型的發(fā)展與完善對軟件測試生命周期管理同樣具有重要意義。
參考文獻
[1] 佟偉光.軟件測試(第2版)[M]. 北京:人民郵電出版社,2015:71.
[2] 劉凱.軟件測試過程模型研究[J].計算機科學,2018,45(11A):518-521.
作者簡介
蘇晶(1981-),女,山東省濱州市人;學歷:碩士研究生,職稱:講師,現(xiàn)就職單位:山東理工大學,研究方向:軟件工程、軟件測試。