“好的”測試用例
曾經(jīng)看到“好的測試用例”定義是:
發(fā)現(xiàn)至今未被發(fā)現(xiàn)的軟件缺陷的測試用例
看完這句話后,想到幾點:
- 難道發(fā)現(xiàn)缺陷的測試用例不是好的用例嗎?
- “至今未被發(fā)現(xiàn)”基于多少次的測試才能呢?
3.真的發(fā)現(xiàn)“至今未被發(fā)現(xiàn)”的缺陷,修復(fù)優(yōu)先級高嗎?
“傻子吃燒餅”故事能說明上面“好的”測試用例的定義是不正確。“傻子吃燒餅”故事大概是傻子連吃5個燒餅不飽,吃完第6個終于吃飽了,于是他說:“早知道吃了第6個就飽的話,只吃第6個就可以了”。
6個燒餅是個整體,少一個也不能吃飽。“好的”測試用例是一個集合,而非是一個測試用例,這個集合能夠覆蓋所有等價類以及各種邊界值,跟能否發(fā)現(xiàn)缺陷無關(guān)。
要設(shè)計好的測試用例,需要知道好的測試用例有哪些特征,要知其然知其所以然?!昂玫摹睖y試用例必須具備特征如下:
- 整體完備性。是一個完備整體,能夠完全覆蓋測試需求。
- 等價類劃分的準(zhǔn)確性。正確劃分等價類,在每個等價類任意選取一個值能測試通過,在這個等價類區(qū)間內(nèi)選取一個值也能測試通過。
- 等價類集合的完備性。確定所有可能邊界值和邊界條件。
常用三種設(shè)計測試用例的方法
在書籍上看到有很多種測試方法,例如:等價類劃分法、邊界值分析法、錯誤推測法、因果圖方法、判定表驅(qū)動分析法、正交實驗設(shè)計方法等等。
最常用三種設(shè)計測試用例方法:等價劃分法、邊界值分析法、錯誤推測法。在網(wǎng)上很容易找到這些方法介紹,就不具體介紹,作者也寫一篇等價類劃分法,有需要的可以點進去看看。
怎樣設(shè)計出“好的”測試用例?
在具體的用例設(shè)計時,首先需要搞清楚每一個業(yè)務(wù)需求所對應(yīng)的多個軟件功能需求點,然后分析出每個軟件功能需求點對應(yīng)的多個測試需求點,最后再針對每個測試需求點設(shè)計測試用例。
上面這句話有點繞,摘取中心詞畫出流轉(zhuǎn)關(guān)系,就會好容易理解:
業(yè)務(wù)需求—》軟件功能需求—》測試需求—》測試用例
在《軟件測試52講》01|你真的懂測試嗎?從“用戶登錄”測試--感悟,講到“用戶登錄”測試用例。分別有功能測試用例、安全性測試用例、兼容性測試用例、性能測試用例。以“用戶登錄”為例,設(shè)計用例過程如下:
從上面的看出,測試需求決定測試用例,需要全面地、無遺漏地識別出測試需求。每個測試需求點需要綜合運用等價類劃分、邊界值分析和錯誤推測的方法設(shè)計測試用例。
如果從軟件功能需求直接設(shè)計測試用例,缺少測試需求分析的步驟。容易出現(xiàn)遺漏某部分測試用例設(shè)計,不能得出“好的”測試用例的完備集合。
文章主要講述三方面內(nèi)容:1.對“好的”測試用例的定義;2.常用軟件測試方法;3.在設(shè)計測試用例時需要把業(yè)務(wù)需求轉(zhuǎn)化為軟件功能需求,再到轉(zhuǎn)化為測試需求。
參考:
茹炳晟《軟件測試52講》02|如何設(shè)計一個“好的”測試用例