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