王 彩
成都東軟學(xué)院計(jì)算機(jī)科學(xué)系,四川成都 611844
在軟件項(xiàng)目中,測試用例的設(shè)計(jì)起著至關(guān)重要的作用。在測試過程中使用測試用例具有以下幾個(gè)方面的作用:有效性,準(zhǔn)確的測試用例的設(shè)計(jì)、執(zhí)行和跟蹤是測試有效性的有力證明;可評(píng)估性,測試用例的通過率和bug的數(shù)量是普遍采用的測試量化標(biāo)準(zhǔn);可復(fù)用性,良好的測試用例具有易于修改維護(hù)可重復(fù)使用的特點(diǎn)。
測試用例是可以獨(dú)立進(jìn)行執(zhí)行的最小測試單元,描述了測試內(nèi)容的一系列情景和每個(gè)情景中所包含的輸入和輸出,以及對(duì)軟件行為/狀態(tài)的正確性做出判斷的依據(jù)。如果結(jié)合實(shí)際應(yīng)用,用公式可以這樣表示:Test Case = ID + Initialization + operate+ data+expected results,也就是以下要素相加,編號(hào)、初始化條件/環(huán)境、操作、數(shù)據(jù)和預(yù)期結(jié)果。
測試用例該如何寫才實(shí)用,我們結(jié)合一個(gè)虛擬的測試需求加以討論。假設(shè)我們要測試某網(wǎng)站郵箱的注冊功能,用戶只需注冊郵件賬號(hào),郵件域名是固定的。Email賬號(hào)必須滿足以下規(guī)則:由字母和數(shù)字組成 ;必須以字母開頭 ;長度為6位~18位 ;賬號(hào)唯一 。測試用例設(shè)計(jì)討論示例一、二,如表1、表2。
表1 測試用例設(shè)計(jì)示例一
表2 測試用例設(shè)計(jì)示例二
上述測試用例的設(shè)計(jì)是否規(guī)范實(shí)用,我們可以通過幾個(gè)用例的后續(xù)工作流程來看,分別是審查、執(zhí)行、維護(hù)和復(fù)用:用例是否方便審查?審查的內(nèi)容有很多方面,實(shí)際應(yīng)用中常常關(guān)心的是用例設(shè)計(jì)思路是否完整。示例一中這種用例形式,粗略的分成有效用例和無效用例,只有測試數(shù)據(jù),沒有測試思路,要想高效評(píng)審是非常困難的。用例方便執(zhí)行嗎?示例一沒有思路描述 ,測試執(zhí)行者是不容易理解測試重點(diǎn)在哪兒,照著數(shù)據(jù)敲又容易出錯(cuò),這樣的用例對(duì)執(zhí)行者來說是不具備指導(dǎo)意義的。用例方便維護(hù)嗎,可以復(fù)用嗎?這兩個(gè)方面是相互關(guān)聯(lián)的。假如這里郵件賬號(hào)組成變了,像示例一中這種沒有思路提示的用例是很難修改的。這樣就不利于用例的維護(hù),更無法談復(fù)用的問題了。
示例一只強(qiáng)調(diào)測試數(shù)據(jù),把用例設(shè)計(jì)簡單等同于測試數(shù)據(jù)設(shè)計(jì)。示例二強(qiáng)調(diào)的是測試思路,避免了示例一中產(chǎn)生的問題。但是示例二沒有測試數(shù)據(jù)和預(yù)期結(jié)果,適用情況有限。對(duì)于無測試數(shù)據(jù)、測試數(shù)據(jù)簡單、預(yù)期結(jié)果簡單直觀 ,或者項(xiàng)目時(shí)間緊的情況,才可以用這種形式的用例。
從上述討論,我們可以得出這樣的結(jié)論,測試思路比測試數(shù)據(jù)更具有指導(dǎo)意義。但是,示例二中并不適用普遍的情況。規(guī)范的測試用例至少要包含下述關(guān)鍵要素:用例編號(hào)、測試環(huán)境、用例標(biāo)題、用例操作、測試數(shù)據(jù)以及預(yù)期結(jié)果,下面我們將一一闡述:
編號(hào)不用贅述,符合一般的要求即可:便于檢索,易于識(shí)別,保證唯一性。
測試環(huán)境很重要,針對(duì)不同測試對(duì)象會(huì)有不一樣的環(huán)境項(xiàng),比如這里我們只要標(biāo)示出操作系統(tǒng)和瀏覽器就足夠了。但如果是手機(jī)測試,環(huán)境項(xiàng)就要包含很多手機(jī)參數(shù),包括手機(jī)品牌、手機(jī)型號(hào)、操作系統(tǒng)、是否智能機(jī)、屏幕分辨率、手機(jī)卡容量等等。
用例的標(biāo)題是用一個(gè)詞或者一句話表達(dá)用例的主題,反映測試的思路。比如“有效用例”就可以作為標(biāo)題,但是不能簡單的用“無效用例”作為標(biāo)題。因?yàn)闊o效的情況太多了,要盡量明確無效原因,“大于最大長度”還是“重復(fù)的郵件賬號(hào)”。
測試用例的操作也叫輸入條件。很多測試人員對(duì)測試用例操作有這樣一個(gè)誤解:把用例操作當(dāng)成填寫具體操作步驟的表格?!安僮鳌辈⒉恢皇怯脕砻枋鼍唧w實(shí)現(xiàn)的,而是著重描述處理問題的思路,描述我們將要如何進(jìn)行測試。
測試數(shù)據(jù)的重要性毋庸置疑!本例中,有思路提示后執(zhí)行者很清楚應(yīng)該用什么樣的測試數(shù)據(jù),所以測試數(shù)據(jù)列可寫可不寫。但是這種情況絕不是一概而論 。特別是某些用例的失敗和特定的測試數(shù)據(jù)相關(guān)的情況。
還有很重要的一個(gè)因素是預(yù)期結(jié)果,它是對(duì)軟件行為/狀態(tài)的正確性做出判斷的依據(jù)。不要像示例一中那樣,簡單寫成通過/不通過。有很多附屬結(jié)果會(huì)發(fā)生,并影響對(duì)用例結(jié)果的判斷。本例中注冊失敗后,可能有系統(tǒng)提示,光標(biāo)移動(dòng)等可見行為,還要注意在后臺(tái)數(shù)據(jù)庫中驗(yàn)證數(shù)據(jù)有沒有寫進(jìn)數(shù)據(jù)庫表。
綜合上述用例的要素描述并結(jié)合本文假定的測試需求,給出部分測試用例參考如下:
表3 測試用例設(shè)計(jì)規(guī)范參考
本文就測試用例的幾個(gè)關(guān)鍵要素闡述了作者的觀點(diǎn)和設(shè)計(jì)思路,在實(shí)際應(yīng)用中,不同公司不同類型項(xiàng)目所適用的用例規(guī)范不可能完全一樣,一定是和具體實(shí)踐相結(jié)合的。國內(nèi)的測試行業(yè)和測試規(guī)范還處在一個(gè)快速發(fā)展的時(shí)期,有無限的潛力和機(jī)遇等待我們?nèi)グl(fā)掘。
[1]Edward.Kit.軟件測試過程改進(jìn)[M].李新華,陳麗容,等譯.機(jī)械工業(yè)出版社,2011,5.
[2]Gerard,ORegan,閃四清.軟件質(zhì)量實(shí)用方法論[M].清華大學(xué)出版社,2011,5.
[3]朱少民.全程軟件測試[M].電子工業(yè)出版社,2010,8.
[4]Rex.Black.軟件測試過程管理[M].龔波,但靜培,等譯.機(jī)械工業(yè)出版社,2007,10.
[5]聶長海.關(guān)于軟件測試的幾點(diǎn)思考[J].計(jì)算機(jī)科學(xué),2011(2).