測試用例設計方法——錯誤猜測法
很多軟件測試從業者用到的黑盒測試用例設計方法大多是等價類划分法、邊界值分析法、判定表法、因果圖法和正交試驗法等,其實還有一種方法不得不提到,那就是錯誤猜測法,這對資深測試人員尤為重要。因為隨着在產品測試的實踐中對產品的了解和測試經驗的豐富,使用錯誤猜測法設計的測試用例往往非常有效,可以作為測試設計的一種補充手段。並且積累的經驗越豐富,方法使用效率越高。那么到底什么是錯誤猜測法呢,下面我們將通過定義和實際測試案例來加深對錯誤猜測法的認識。
首先,我們先來看看錯誤猜測法的定義:有經驗的測試人員往往可以根據自己的工作經驗和直覺推測出程序可能存在的錯誤,從而有針對性的進行測試。它的要素共有三點,分別為:經驗、知識、直覺。關於如何使用的問題,我們提煉出兩點:
1 . 列舉出程序中所有可能有的錯誤和容易發生錯誤的特殊情況;
2 . 根據他們選擇測試用例。
我們知道經驗是錯誤猜測法的一個重要要素,也就說帶有主觀性,那么這就決定了錯誤猜測法的優缺點,首先我們來看優點:
1 . 充分發揮人的直覺和經驗
2 . 集思廣益
3 . 方便使用
4 . 快速容易切入
對應的缺點有:
1 . 難以知道測試的覆蓋率
2 . 可能丟失大量未知的區域
3 . 帶有主觀性且難以復制
綜上所述,我們可以總結出錯誤猜測法的適用方式:
1 . 先用其他方法設計測試用例
2 . 使用錯誤猜測法補充用例
通過上面的理論知識,我們知道了錯誤猜測法的定義、優缺點及適用方式,接下來我們將通過一個實際案例來加深對錯誤猜測法的認識。
實例:測試51CTO學院的課程搜索輸入框
既然是用錯誤猜測法,那么我們首先列出可能導致搜索結果出錯的情況,如下:
1 . 單個空格,多個空格
2 . 字符串前面有空格
3 . 字符串后面有空格
4 . 轉義符 “\n”
5. Null
6. 特殊字符
7 . 通配符 *
8.空串,很長的字符串
以下是測試執行過程:
1 . 單個空格,多個空格
上面測試的是在搜索框中輸入一個空格的情況,點擊搜索按鈕后,顯示結果為“相關結果0條”,根據結果得知空格被接受了,故這里為一個缺陷。同理,我們輸入多個空格,顯示結果為“相關結果125條”,不符合預期輸出,所以這也是一個缺陷,測試執行過程截圖如下:
2.字符串前面有空格 字符串后面有空格
關於空格還有另外一種情況,就是字符串中帶有空格,我們分別在搜索框中輸入“ a”
“ a”
“a ”
“a ”
具體的執行結果截圖如下,從結果中分析得知,這也是一個缺陷。
3.轉義字符 "\n"
我們輸入轉義字符“\n”,點擊搜索按鈕后,搜索框中的“\n”多了一個“\”,並在結果中顯示出課程,故這里為一個缺陷。
4.Null
在搜索框中輸入null,顯示“null 相關結果0條”,符合預期結果,故這里不是一個缺陷。
5. 特殊字符 ‘
在搜索框中輸入一個單引號 ‘ ,搜索出部分課程,這與預期輸出不相符,故這里為一個缺陷。
6.通配符 *
當輸入通配符時,實際輸出結果與預期結果一致,所以這不是缺陷。
7.空串,很長的字符串
當我們未在搜索框中輸入字符串時,直接點擊搜索按鈕后,並未有任何顯示,這符合預期輸出。
輸入一個較長的字符串,搜索結果顯示“相關結果40條”,與預期輸出不一致,所以這里為一個缺陷。
不斷增加字符串的長度,當字符串達到一定的長度后,點擊搜索按鈕,顯示“
500 Internal Server Error”,也就是字符串超過了系統內存所能承受的最大范圍。
經過以上的測試步驟,可以對缺陷進行總結:
1.單個空格 多個空格
2.字符串前面多個空格 字符串后面多個空格
3.轉義字符
4.單引號 ‘
5過長的字符串
至此,我們再對錯誤猜測發做一個總結,希望能對大家有所幫助:
錯誤猜測法,沒有用到任何特殊的方法,只是利用直覺和經驗猜測出錯的可能類型,然后編寫測試用例來暴露這些錯誤。基本思想是列舉出可能犯的錯誤或錯誤易發情況的清單,然后依據清單來編寫測試用例,並且在閱讀規格說明時聯系程序員可能做的假設來確定測試用例,也就是說規格說明中的一些內容會被忽略,要么是由於偶然因素,要么是程序員認為其顯而易見。
該文章轉載