很多软件测试从业者用到的黑盒测试用例设计方法大多是等价类划分法、边界值分析法、判定表法、因果图法和正交试验法等,其实还有一种方法不得不提到,那就是错误猜测法,这对资深测试人员尤为重要。因为随着在产品测试的实践中对产品的了解和测试经验的丰富,使用错误猜测法设计的测试用例往往非常有效,可以作为测试设计的一种补充手段。并且积累的经验越丰富,方法使用效率越高。那么到底什么是错误猜测法呢,下面我们将通过定义和实际测试案例来加深对错误猜测法的认识。
首先,我们先来看看错误猜测法的定义:有经验的测试人员往往可以根据自己的工作经验和直觉推测出程序可能存在的错误,从而有针对性的进行测试。它的要素共有三点,分别为:经验、知识、直觉。关于如何使用的问题,我们提炼出两点:
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条”,不符合预期输出,所以这也是一个缺陷,测试执行过程截图如下:
- 字符串前面有空格 字符串后面有空格
关于空格还有另外一种情况,就是字符串中带有空格,我们分别在搜索框中输入“ a”
“ a”
“a ”
“a ”
具体的执行结果截图如下,从结果中分析得知,这也是一个缺陷。
- 转义字符 "\n"
我们输入转义字符“\n”,点击搜索按钮后,搜索框中的“\n”多了一个“\”,并在结果中显示出课程,故这里为一个缺陷。
- Null
在搜索框中输入null,显示“null 相关结果0条”,符合预期结果,故这里不是一个缺陷。
5. 特殊字符 ‘
在搜索框中输入一个单引号 ‘ ,搜索出部分课程,这与预期输出不相符,故这里为一个缺陷。
- 通配符 *
当输入通配符时,实际输出结果与预期结果一致,所以这不是缺陷。
- 空串,很长的字符串
当我们未在搜索框中输入字符串时,直接点击搜索按钮后,并未有任何显示,这符合预期输出。
输入一个较长的字符串,搜索结果显示“相关结果40条”,与预期输出不一致,所以这里为一个缺陷。
不断增加字符串的长度,当字符串达到一定的长度后,点击搜索按钮,显示“
500 Internal Server Error”,也就是字符串超过了系统内存所能承受的最大范围。
经过以上的测试步骤,可以对缺陷进行总结:
1.单个空格 多个空格
2.字符串前面多个空格 字符串后面多个空格
3.转义字符
4.单引号 ‘
5过长的字符串
至此,我们再对错误猜测发做一个总结,希望能对大家有所帮助:
错误猜测法,没有用到任何特殊的方法,只是利用直觉和经验猜测出错的可能类型,然后编写测试用例来暴露这些错误。基本思想是列举出可能犯的错误或错误易发情况的清单,然后依据清单来编写测试用例,并且在阅读规格说明时联系程序员可能做的假设来确定测试用例,也就是说规格说明中的一些内容会被忽略,要么是由于偶然因素,要么是程序员认为其显而易见。