張瑞青 董淑娟
摘要:該文首先簡單分析了軟件測試重要性,然后介紹了W模型及其對軟件測試的指導(dǎo)作用,最后以模擬Margarita Mid的COPY模塊為為測試對象,采用W測試模型,以等價類劃分、邊界值分析、錯誤推測法為主要方法,實現(xiàn)從需求分析、系統(tǒng)設(shè)計到編碼各個軟件開發(fā)階段的測試設(shè)計與實現(xiàn)。
關(guān)鍵詞:軟件測試;W模型;測試設(shè)計
中圖分類號:TP393文獻(xiàn)標(biāo)識碼:A文章編號:1009-3044(2012)20-4909-03
W Model-based Software Test Design and Implementation
ZHANG Rui-qing,DONG Shu-juan
(Information Engineering, Yellow River Conservancy Technical Institute, Kaifeng 475001, China)
Abstract:This paper analyzes the importance of software testing Briefly,and then introduced the W model and its role in guiding the soft ware test. finally, to the analog Margarita Mid COPY modules for the test object, using the W-test model to equivalence partitioning, boundary valueanalysis, error guessing method as the main method to achieve from the needs analysis, system design to coding each soft ware development phase of the test design and implementation.
Key words:software testing; W model; test design
1緒論
隨著計算機軟硬件技術(shù)的不斷發(fā)展,計算機應(yīng)用已經(jīng)深入到我們整個社會的經(jīng)濟體系,甚至人們生活的各個層面中。在計算機應(yīng)用的過程中,人們對計算機軟件的依賴性也越來越大。雖然質(zhì)量可靠的軟件給我們的工作和生活帶來了前所未有的便利,但是質(zhì)量不好的軟件也讓我付出了慘痛的代價[1]。這讓我們逐漸認(rèn)識到軟件質(zhì)量正在牽動著社會的命脈,提高軟件質(zhì)量是軟件開發(fā)過程中非常重要的一個環(huán)節(jié)。
為了提高軟件質(zhì)量,軟件開發(fā)人員進(jìn)行了大量的研究和實踐。最初的研究重點是技術(shù)革新,從各種軟件工具,如編輯、編譯、調(diào)試工具等到各種計算機輔助軟件工程環(huán)境,同時注重軟件開發(fā)模型的研究。但是這種以技術(shù)、方法為重心的作法未能達(dá)到保證軟件質(zhì)量的目的。不過,在這個過程中,人們逐漸認(rèn)識到只有對軟件開發(fā)過程的質(zhì)量加以控制,才有可能大幅度的提高軟件質(zhì)量。因此,軟件質(zhì)量保證也從最初的技術(shù)、方法為重心轉(zhuǎn)移到以過程管理為重心。
軟件質(zhì)量保證的本質(zhì)是為了確保軟件開發(fā)過程和結(jié)果符合預(yù)期要求而建立的一系列活動及其結(jié)果評價,其最終目的是缺陷預(yù)防。軟件測試作為軟件質(zhì)量保證中重要的一項活動,則是通過檢測錯誤,發(fā)現(xiàn)缺陷來保證軟件質(zhì)量。因此,在軟件開發(fā)的過程中,如何采取有效的測試方法,對軟件進(jìn)行合理的測試設(shè)計,已經(jīng)成為當(dāng)今保證軟件質(zhì)量的一種重要途徑。
2 W模型
目前主流的軟件開發(fā)模型有瀑布模型、原型模型、螺旋模型、增量模型、漸進(jìn)模型、快速軟件開發(fā)(RAD)以及Rational統(tǒng)一過程(RUP)等,這些模型對于軟件開發(fā)過程具有很好的指導(dǎo)作用,但在這些過程方法中,并沒有充分強調(diào)測試的價值,也沒有給測試以足夠的重視,利用這些模型無法更好地指導(dǎo)測試實踐。軟件測試是與軟件開發(fā)緊密相關(guān)的一系列有計劃的系統(tǒng)性的活動,也需要測試模型去指導(dǎo)實踐。目前常見的軟件測試模型有V模型、W模型、H模型、X模型等[3]。
W模型是眾多測試模型中相對比較成熟的一種測試模型。它本質(zhì)上是在V模型的基礎(chǔ)上,基于“盡早地和不斷地進(jìn)行軟件測試”的原則而設(shè)計的。該模型強調(diào)測試應(yīng)該伴隨著軟件的整個開發(fā)周期,測試的對象不僅僅是程序,還包括需求、功能和設(shè)計。因此,在W模型中,只要相應(yīng)的開發(fā)活動完成,就可以開始執(zhí)行測試,即,測試與開發(fā)是同步進(jìn)行的,從而有利于盡早地發(fā)現(xiàn)問題。以需求為例,需求分析一完成,我們就可以對需求進(jìn)行測試,而不是等到編碼完成后才進(jìn)行針對需求的驗收測試。具體如圖1所示。
在W模型中,軟件開發(fā)各個階段的文檔是軟件測試開始的重要準(zhǔn)則之一,即一旦某個開發(fā)階段的文檔一經(jīng)交付,就要及時確定測試條件,以及編寫測試用例,這對測試的各個級別都有意義。例如,當(dāng)需求被提交后,就需要確定高級別的測試用例來測試這些需求。當(dāng)概要設(shè)計編寫完成后,就需要確定測試條件來查找該階段的設(shè)計缺陷。如果測試文檔能盡早提交,那么就有了更多的檢查和檢閱的時間,這些文檔還可用于評估開發(fā)文檔。另外,測試者可以在項目中盡可能早地面的規(guī)格說明書中的挑戰(zhàn)。這意味著測試不僅僅是評定軟件的質(zhì)量,測試還可以盡可能早地找出缺陷所在,從而幫助改進(jìn)項目內(nèi)部的質(zhì)量。參與前期工作的測試者可以預(yù)先估計問題和難度,這將可以顯著地減少總體測試時間,加快項目進(jìn)度。
3模擬Margarita Mid的COPY模塊的測試設(shè)計
該文通過一個實例,以模擬惠普打印機Margarita Mid的COPY模塊為測試對象,采用W測試模型,以等價類劃分、邊界值分析、錯誤推測法為主要方法,實現(xiàn)從需求分析、系統(tǒng)設(shè)計到編碼各個階段的測試設(shè)計。
3.1需求階段測試設(shè)計
為了更好的對模擬Margarita Mid的COPY模塊進(jìn)行測試,首先需要測試人員要熟悉該軟件各個模塊的需求。由于缺乏完整的需求資料,該文采用輸入隨機命令和數(shù)據(jù)、請專業(yè)人員演示和閱讀相關(guān)幫助文件等方法來了解應(yīng)用程序,整理出測試需求。對于整理出的測試需求文檔,該文主要依據(jù)以下5條原則來對其進(jìn)行測試。
1)需求文檔是否具有清晰的格式和文檔結(jié)構(gòu)。
2)需求文檔的內(nèi)容是否正確、完整,描述是否明確、無二義性。3)需求文檔所描述的需求是否必要、可行、可追蹤、可更新。
4)需求文檔所描述的需求是否可證實、可測試.
5)對不同的需求是否定義了優(yōu)先級。
在需求測試通過測試的基礎(chǔ)上,測試人員根據(jù)W模型的指導(dǎo),首先列出測試項及測試特征,然后根據(jù)這些內(nèi)容確定測試方法和測試所需要的軟硬件環(huán)境、制定測試通過與失敗的標(biāo)準(zhǔn)、風(fēng)險和意外情況應(yīng)對措施、估算測試所需人力以及整個項目規(guī)劃的大致測試周期并搭建測試環(huán)境。在此基礎(chǔ)上制定詳細(xì)的用戶的驗收測試以及系統(tǒng)測試計劃。
3.2設(shè)計階段測試設(shè)計
在對模擬Margarita Mid的COPY模塊進(jìn)行設(shè)計實現(xiàn)后,該文根據(jù)詳細(xì)設(shè)計的具體內(nèi)容,設(shè)計出測試用例模板,以等價類劃分、邊界值分析、錯誤推測法為主要方法來設(shè)計具體的測試用例。由于時間和環(huán)境限制,該文所設(shè)計的測試用例主要針對軟件的功能來進(jìn)行系統(tǒng)測試。具體測試用例設(shè)計流程如圖2所示。
測試用例的評審能夠使用例的結(jié)構(gòu)更清晰,覆蓋的用戶場景更全面。因此,在測試用例設(shè)計后,該文以召開組內(nèi)評審會議的形式完成了測試用例的評審。與會者在設(shè)計人員講解之后給出意見和建議,同時進(jìn)行詳細(xì)的評審記錄。結(jié)合被測對象的特點,該文評審的重點如下。
1)測試用例本身的描述是否清晰,是否存在二義性。
2)測試用例的設(shè)計的是否存在冗余性,都造成了測試用例的執(zhí)行效率低下。
3)是否針對需求跟蹤矩陣,覆蓋了所有的軟件需求。
通過小組評審會議討論,本次設(shè)計中,80%的測試用例通過評審,作為可執(zhí)行測試用例保存下來。
3.3編碼階段測試設(shè)計
編碼完成后,模擬軟件基本成型,在該階段可以采用白盒測試中的邏輯覆蓋法進(jìn)行程序內(nèi)部邏輯測試,并根據(jù)需要編寫適當(dāng)?shù)臉赌K和驅(qū)動模塊來配合單元測試的進(jìn)行。由于該文實例主要完成系統(tǒng)功能測試,所以在編碼完成后,測試工作主要集中表現(xiàn)為執(zhí)行測試和缺陷管理。
執(zhí)行測試的過程中,如何對發(fā)現(xiàn)的缺陷進(jìn)行合理的管理,是進(jìn)行測試工作的關(guān)鍵。通常情況下,合理有效的管理能夠保證軟件缺陷及時有效的得到解決,同時保證測試工作的效率。該文采用的缺陷管理流程如下。
1)測試人員發(fā)現(xiàn)缺陷后,填寫缺陷報告,設(shè)置缺陷狀態(tài)為“開放”。
2)項目經(jīng)理瀏覽所有狀態(tài)為“開放”的缺陷并進(jìn)行判斷,如果缺陷可接受,則指定負(fù)責(zé)人,并標(biāo)記缺陷狀態(tài)為“已分配”,否則標(biāo)記缺陷狀態(tài)為“拒絕”。
3)缺陷負(fù)責(zé)人瀏覽所有分配給自己的缺陷進(jìn)行修復(fù),修復(fù)完成后,標(biāo)記缺陷狀態(tài)為“已修復(fù)”。
4 )測試人員瀏覽所有“拒絕”的缺陷,重新測試,提交缺陷報告。同時對于“已修復(fù)”的缺陷進(jìn)行二次驗證,如果確實被修復(fù)則標(biāo)記缺陷狀態(tài)為“關(guān)閉”,否則重新設(shè)置缺陷狀態(tài)為“開放”。
本小組對被測軟件執(zhí)行了3次完整的測試循環(huán),組合起來的測試覆蓋率達(dá)到了100%。在最后一輪的測試運行中,90%的測試用例通過,同時沒有發(fā)現(xiàn)災(zāi)難性的缺陷?;谶@種結(jié)果,測試小組建議被測軟件通過測試。
4小結(jié)
近20年來,隨著軟件工程思想在國內(nèi)的不斷普及,軟件測試在保證軟件質(zhì)量方面的作用日趨明顯。測試工作開展的深度與廣度,很大程度上決定了軟件的質(zhì)量、成本、工期。軟件測試過程模型是軟件測試的工作框架,用于指導(dǎo)軟件測試的全過程。該文采用W模型指導(dǎo)測試模擬惠普打印機Margarita Mid的COPY模塊,盡早地和不斷地對被測對象進(jìn)行軟件測試,這不僅充分保證了測試工作的質(zhì)量,而且完整的體現(xiàn)了軟件測試的工程化思想。
參考文獻(xiàn):
[1]王茂森.軟件質(zhì)量的重要性及提高方法[J].山東省農(nóng)業(yè)管理干部學(xué)院學(xué)報,2007,23(1).
[2]徐芳.軟件測試技術(shù)[M].北京:機械工業(yè)出版社,2009.
[3]鄧璐娟.軟件測試模型及X模型的改進(jìn)[J].鄭州輕工業(yè)學(xué)院學(xué)報:自然科學(xué)版,2011(1).