張 峰 馬曉龍
91404部隊(duì) 河北秦皇島 066000
軟件測試中的測試用例及復(fù)用研究
張 峰 馬曉龍
91404部隊(duì) 河北秦皇島 066000
軟件測試過程中產(chǎn)生的大量測試用例對保證軟件的質(zhì)量起到關(guān)鍵作用,對于專門從事軟件測試的機(jī)構(gòu)來說,測試用例的復(fù)用尤其重要。在測試用例的設(shè)計(jì)、選擇的基礎(chǔ)上,構(gòu)造出基于復(fù)用的測試用例,同時(shí)采用測試用例庫管理的方法來實(shí)現(xiàn)測試用例的復(fù)用,可以提高軟件測試的工作效率。
測試用例;復(fù)用;測試用例復(fù)用;測試用例庫
(一)什么是測試用例
測試用例(Test Case),所寫為TC,指的是在測試執(zhí)行之前設(shè)計(jì)的一套詳細(xì)的測試方案,包括測試環(huán)境、測試步驟、測試數(shù)據(jù)和預(yù)期結(jié)果。
簡單用一個(gè)等式來表示:
測試用例=輸入+輸出+測試環(huán)境
其中,“輸入”包括測試數(shù)據(jù)和操作步驟;“輸出”指的是期望結(jié)果;“測試環(huán)境”指的就是系統(tǒng)環(huán)境設(shè)置。
(二)測試用例的作用
測試用例在軟件測試中的作用主要表現(xiàn)在:
1、指導(dǎo)測試的實(shí)施
2、規(guī)劃測試數(shù)據(jù)的準(zhǔn)備
3、編寫測試腳本的依據(jù)
4、評估測試結(jié)果的度量基準(zhǔn)
5、分析缺陷的標(biāo)準(zhǔn)
總之,測試用例是軟件項(xiàng)目中很有價(jià)值的資產(chǎn),對提高產(chǎn)品質(zhì)量有重要的意義。
(三)測試用例的設(shè)計(jì)
設(shè)計(jì)測試用例即設(shè)計(jì)針對特定功能或組合功能的測試方案,并編寫成文檔。測試用例應(yīng)該體現(xiàn)軟件工程的思想和原則。測試用例的選擇既要有一般情況,也應(yīng)有極限情況以及最大和最小的邊界值情況。結(jié)合復(fù)雜的運(yùn)行環(huán)境,在所有可能的輸入條件和輸出條件中確定測試數(shù)據(jù),來檢查應(yīng)用軟件是否都能產(chǎn)生正確的輸出。
(四)測試用例的選擇
基于復(fù)用的目的,在選擇測試用例時(shí),要針對不同的測試方法進(jìn)行明確的選擇。
任何工程化的產(chǎn)品都有兩種測試方法,即所謂的黑盒測試和白盒測試方法。測試用例的設(shè)計(jì)將根據(jù)兩種測試方法的特性定制。
黑盒測試完全不考慮程序的內(nèi)部結(jié)構(gòu)和處理過程。設(shè)計(jì)測試用例旨在測試軟件是否滿足功能要求,主要診斷下列幾類錯(cuò)誤:
1、不正確或遺漏的功能;
2、人機(jī)界面錯(cuò)誤;
3、數(shù)據(jù)結(jié)構(gòu)或外部數(shù)據(jù)訪問錯(cuò)誤;
4、性能錯(cuò)誤;
5、初始化和中止條件錯(cuò)誤。
與黑盒測試相反,白盒測試密切關(guān)注處理細(xì)節(jié),根據(jù)程序的控制結(jié)構(gòu)設(shè)計(jì)測試用例,原則是:
1、保證模塊中的每一獨(dú)立的路徑至少執(zhí)行一次;
2、保證所有判斷的每一分支至少執(zhí)行一次;
3、保證每一循環(huán)都在邊界條件和一般條件下至少各執(zhí)行一次;
4、驗(yàn)證所有內(nèi)部數(shù)據(jù)結(jié)構(gòu)的有效性。
(一)軟件復(fù)用
軟件復(fù)用是將已有的軟件及其有效成分用于構(gòu)造新的軟件或系統(tǒng)。其出發(fā)點(diǎn)是應(yīng)用系統(tǒng)的開發(fā)不再采用一切“從零開始”的模式,而是以已有的工作為基礎(chǔ),充分利用過去應(yīng)用系統(tǒng)開發(fā)中的經(jīng)驗(yàn)知識(shí)和經(jīng)驗(yàn),如需求分析結(jié)果、設(shè)計(jì)方案、源代碼、設(shè)計(jì)計(jì)劃及測試案例等,從而將開發(fā)的重點(diǎn)集中于應(yīng)用的特有構(gòu)成成分。
(二)軟件測試復(fù)用
基于復(fù)用的軟件測試是軟件開發(fā)過程中的一個(gè)重要階段,是“為了發(fā)現(xiàn)錯(cuò)誤而執(zhí)行程序的過程”。它是根據(jù)軟件開發(fā)各階段的規(guī)格說明和程序的內(nèi)部結(jié)構(gòu)而精心設(shè)計(jì)一批測試用例,并利用這些測試用例去運(yùn)行程序,以發(fā)現(xiàn)錯(cuò)誤或缺陷。因此,軟件測試的復(fù)用主要包括測試過程的復(fù)用、測試方法的復(fù)用和測試技巧的復(fù)用。
1、測試過程的復(fù)用,就是測試流程的復(fù)用,采用既定的測試流程,針對被測項(xiàng)目的需求,進(jìn)行裁減,使測試的流程規(guī)范化。
2、測試方法的復(fù)用,主要指測試計(jì)劃的設(shè)計(jì)、測試策略的采用、測試項(xiàng)細(xì)則的編寫、軟件缺陷的分析和測試報(bào)告的撰寫等方面的復(fù)用。
3、測試技巧的復(fù)用,主要指測試用例的復(fù)用。在特定的情形
下,選擇何種測試用例是發(fā)現(xiàn)軟件問題的關(guān)鍵因素。
(一)測試用例的可復(fù)用性
對于基于組件的軟件工程,一般來說,除了針對某些特殊的用戶需求,復(fù)用過程中的組件在結(jié)構(gòu)和功能上都不太可能發(fā)生很大的變化,因此采用這些方法生成的測試用例都是可復(fù)用的。實(shí)際上,在組件的開發(fā)過程中,低層被測對象的測試用例或其部分內(nèi)容常常被復(fù)用在高層被測對象的測試中,它們包括:
1、單元測試的功能確認(rèn)類用例可以在部件集成測試階段復(fù)用;
2、部件確認(rèn)測試的測試用例可以在單元配置組裝測試和確認(rèn)測試中復(fù)用;
3、部件確認(rèn)測試的測試用例在配置項(xiàng)組裝測試和確認(rèn)測試中的復(fù)用;
4、配置項(xiàng)確認(rèn)測試的測試用例在系統(tǒng)綜合測試和系統(tǒng)驗(yàn)收測試中的復(fù)用。
(二)測試用例復(fù)用
測試用例復(fù)用就是把一個(gè)軟件的測試用例在新的軟件測試中使用,或在軟件做出修改時(shí)在新的軟件測試中使用,也包括在相似軟件間進(jìn)行一定的選擇后使用。其中主要包括測試用例的設(shè)計(jì)思想、具體內(nèi)容、執(zhí)行步驟,以及測試過程中產(chǎn)生的信息在新的軟件測試中的使用。
軟件測試經(jīng)過單元測試、集成測試、確認(rèn)測試、系統(tǒng)測試后,產(chǎn)生了大量的測試用例和測試方法,所有的這些測試用例和測試方法都可以重新利用。
(三)測試用例復(fù)用實(shí)現(xiàn)的思路
對第三方測試機(jī)構(gòu)來說,要實(shí)現(xiàn)測試用例的復(fù)用,須針對特定的項(xiàng)目,按照測試用例的一般描述,精心設(shè)計(jì)、選擇、并收集大量的測試用例到測試用例庫中,對它們實(shí)施有效管理。在這個(gè)基礎(chǔ)上,按照一定的復(fù)用原則,并采取相應(yīng)復(fù)用技術(shù),實(shí)現(xiàn)測試用例的復(fù)用。
首先,基于復(fù)用的目的,對所使用的測試用例進(jìn)行統(tǒng)一的建模組織。其次,對數(shù)據(jù)庫中存有的測試用例實(shí)行有效管理。最后,對數(shù)據(jù)庫中的測試用例具體實(shí)現(xiàn)復(fù)用。
(四)測試用例復(fù)用的實(shí)現(xiàn)過程
對一個(gè)軟件測試來說,測試用例復(fù)用可以劃分為同一軟件在不同測試階段、不同時(shí)間測試下的復(fù)用和相似軟件之間的復(fù)用。
1、同一軟件測試。
2、相似軟件的測試。
(五)對測試用例復(fù)用的評價(jià)
在面向?qū)ο蟮南到y(tǒng)中,測試用例的設(shè)計(jì)和實(shí)現(xiàn)往往對應(yīng)于被測對象的需求、設(shè)計(jì)和環(huán)境要求,它們?nèi)狈y(tǒng)一的結(jié)構(gòu),測試用例之間也存在著相互的聯(lián)系。所以,測試用例的復(fù)用也是一定程度和一定數(shù)量上的復(fù)用,其中還與采用的復(fù)用技術(shù)、測試人員和其他客觀因素相關(guān)。
通過介紹軟件測試過程中測試用例的設(shè)計(jì)、軟件和軟件測試的復(fù)用,說明了在軟件測試中實(shí)現(xiàn)測試用例的復(fù)用的可行性、必要性,針對第三方測試機(jī)構(gòu),采用測試用例庫管理的方法具體實(shí)現(xiàn)一定范圍的測試用例復(fù)用。進(jìn)而說明了測試用例的復(fù)用在保證軟件質(zhì)量的前提下,改進(jìn)了軟件測試技術(shù),提高了軟件測試的效率。
[1]趙斌.軟件測試技術(shù)經(jīng)典教程.科學(xué)教育出版社.
[2]柳純錄等.軟件評測師教程.清華大學(xué)出版社.
[3]鄧良松等.軟件工程.西安電子科技大學(xué)出版社.