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