在ISTQB FL基礎(chǔ)級認(rèn)證大綱的第四章(2011版),有個學(xué)習(xí)目標(biāo)是關(guān)于測試用例質(zhì)量評估的。從認(rèn)證考試的層面而言,可以從下面2個維度考察測試用例的質(zhì)量:
1、測試用例的測試步驟是否包含期望結(jié)果?
2.、測試用例覆蓋哪個需求?即測試用例與需求之間要保持可追溯性。
那么,為什么測試用例與需求之間要保持可追溯性呢?也可以從2方面進(jìn)行考慮:首先,保持可追溯性可以在需求出現(xiàn)變更時,幫助開發(fā)團隊和測試團隊進(jìn)行影響分析,對開發(fā)活動和測試活動到底有哪些影響,例如:工作量、進(jìn)度、實現(xiàn)風(fēng)險等;其次,保持可追溯性可以幫助在測試過程中評估需求覆蓋率。(更多關(guān)于可追溯性的內(nèi)容,可以參考:測試過程中的可追溯性要求)
當(dāng)然,上面是針對ISTQB FL基礎(chǔ)級認(rèn)證考試的標(biāo)準(zhǔn)答案,而在測試實踐過程中,測試用例質(zhì)量的評估會復(fù)雜很多,需求收集的度量數(shù)據(jù)比較多。關(guān)鍵的是,單獨某個測試項目中這些度量數(shù)據(jù),也無法直接告訴你測試用例質(zhì)量的好壞。更多的是需要在不同項目之間進(jìn)行縱向和橫向比較,即基于項目的歷史數(shù)據(jù)進(jìn)行評估,可以看到測試用例質(zhì)量的趨勢變化。
根據(jù)我的測試經(jīng)驗,測試用例質(zhì)量的評估可以從下面3個方面進(jìn)行考慮:
1、測試用例的形式;
2、測試用例覆蓋率;
3.、測試用例的有效性;
首先,根據(jù)測試用例的形式評估其質(zhì)量,其內(nèi)容與上面ISTQB FL基礎(chǔ)級認(rèn)證中的學(xué)習(xí)目標(biāo)要求類似,主要包括:
1)測試用例與需求規(guī)格說明中需求條目的可追溯性,例如:我們要求每個需求條目至少有1個測試用例與之對應(yīng)。目的是為了評估測試的需求覆蓋率,以及分析需求發(fā)生變更的時候,對測試修改工作的影響程度;
2)測試用例有無明確的期望結(jié)果。通常來說,測試用例的每個執(zhí)行步驟,都應(yīng)該明確描述期望的結(jié)果,以保證測試人員可以與測試實際結(jié)果進(jìn)行比較,并分析是否需要提交缺陷報告,或者修改測試用例。
3)是否滿足公司內(nèi)部定義的測試用例模板。例如:每個公司都可能定義了測試用例模板,比如定義了“測試類型”,要求每個測試用例和測試類型進(jìn)行關(guān)聯(lián),并要求每個功能的測試用例需要覆蓋所有的測試類型,例如:可移植性、互操作性、穩(wěn)定性等。
其次,根據(jù)測試用例覆蓋率評估其質(zhì)量,主要包括:
1)需求的覆蓋率,例如:我們主要負(fù)責(zé)系統(tǒng)測試級別,因此測試用例的需求覆蓋率要求必須達(dá)到100%。
2)質(zhì)量特性的覆蓋率,例如:我們在測試用例模板中采用測試類型的概念,要求每個功能的測試用例,必須100%覆蓋所有的測試類型。而測試類型的定義,參考了ISO 9126質(zhì)量模型,以前缺陷的分析,需求條目的分析等。
3)測試平臺的覆蓋率,例如:針對我們目前的通信產(chǎn)品,每個功能都需要在不同平臺上運行,例如:不同的網(wǎng)元類型、接口類型、業(yè)務(wù)類型等。測試用例的對這些平臺的覆蓋率,也要求達(dá)到100%。
第三,根據(jù)測試用例的有效性評估其質(zhì)量,主要包括:
1)測試用例的缺陷發(fā)現(xiàn)率,我們采用的計算方法是“系統(tǒng)測試發(fā)現(xiàn)的缺陷數(shù)目除以執(zhí)行的測試用例數(shù)目,而得到的百分比”。
2)腳本化測試的缺陷發(fā)現(xiàn)率,我們采用的計算方法是“根據(jù)測試用例步驟發(fā)現(xiàn)的缺陷數(shù)目/總發(fā)現(xiàn)的缺陷數(shù)目,得到的百分比”。假如這個百分比很低,說明設(shè)計的測試用例有效性方面比較差,而通過探索性測試發(fā)現(xiàn)的缺陷比例更高。
3)遺漏到用戶現(xiàn)場的缺陷率,我們采用的計算方法是“6個月內(nèi)用戶現(xiàn)場反饋的缺陷數(shù)目,除以系統(tǒng)測試級別發(fā)現(xiàn)的缺陷數(shù)目與6個月內(nèi)用戶現(xiàn)場反饋的缺陷數(shù)目之后,得到的百分比”。
每個公司和測試團隊在評估測試用例質(zhì)量方面會存在不同的度量指標(biāo),基本的要求是這些度量指標(biāo)簡單容易收集,并且有利于改進(jìn)測試過程和測試團隊的測試能力,但切記不會針對測試人員個人的能力與績效的評估。