边界值分析法
边界值分析法是对等价类划分法的补充,测试用例中的边界值是通过等价类划分出来的。边界值分析法一般用在输入条件规定了取值范围,以及限定值的个数的场景下。
使用边界值分析法设计测试用例需要考虑3个点位的选择:
- 上点,边界上的点
- 离点,离上点最近的点。如果输入是闭区间,则离点在域范围内,否则在范围外
- 内点,在输入域内任意一点
基于边界值分析法设计测试用例的原则:
- 如果输入规定了取值范围,则应取刚达到这个范围边界的值,以及刚超过这个范围边界的值作为测试输入数据
- 如果输入条件规定了值的个数,则用最大个数、最小个数、最小个数-1、最大个数+1的数作为测试数据
- 如果规定了输入域或者输出域是有序集合,则应该选取集合的第一个元素和最后一个元素作为测试数据
边界值举例
计算[1, 100]之间的两个数的和
用例编号 | 所属等价类 | 输入框1 | 输入框2 | 预期结果 |
---|---|---|---|---|
1 | 有效等价类 | 1 | 99 | 100 |
2 | 有效等价类 | 99 | 1 | 100 |
3 | 有效等价类 | 100 | 2 | 102 |
4 | 有效等价类 | 2 | 100 | 102 |
5 | 无效等价类 | 0 | 40 | 给出错误提示 |
6 | 无效等价类 | 40 | 0 | 给出错误提示 |
7 | 无效等价类 | 101 | 2 | 给出错误提示 |
8 | 无效等价类 | 2 | 101 | 给出错误提示 |
等价类划分法
需要用户把所有可能输入的数据划分成若干个子集,然后从每一个子集中选取少数并且具有代表性的数据作为测试用例的数据。
有效等价类:符合需求文档描述,输入合理的数据集合
无效等价类:不符合~~~~,输入不合理~~~~
等价类划分原则:
- 如果规定了输入的取值范围或个数,则划分一个在取值范围或个数内的有效等价类,一个小于取值范围最小值、个数最小值的无效等价类,一个大于取值范围、个数最大值的无效等价类。
- 如果规定了输入集合或规则,则划分一个在集合内或满足规则的有效等价类,一个不在集合内或不满足规则的无效等价类
- 如果输入条件是一个布尔值,那就一个正一个反
- 如果输入条件是一组枚举数据,则这一组内的所有枚举数据都是一个有效等价类,其他数据都属于无效等价类
等价类划分法举例
计算[1, 100]范围内两个整数之和
创建等价类表:
输入条件 | 有效等价类 | 无效等价类 |
---|---|---|
[1, 100] | [1, 100]整数 | <1整数 |
>100整数 | ||
小数 | ||
字母 | ||
汉字 | ||
特殊字符 |
测试用例:
用例编号 | 所属等价类 | 输入1 | 输入2 | 预期结果 |
---|---|---|---|---|
1 | 有效 | 30 | 60 | 90 |
2 | 无效 | -2 | 40 | 错误提示 |
3 | 无效 | 40 | -2 | 错误提示 |
4 | 无效 | 110 | 2 | 错误提示 |
5 | 无效 | 2 | 110 | 错误提示 |
6 | 无效 | 10.5 | 3 | 错误提示 |
7 | 无效 | 1 | 10.5 | 错误提示 |
8 | 无效 | a | 5 | 错误提示 |
9 | 无效 | 字 | 20 | 错误提示 |
10 | 无效 | 20 | 字 | 错误提示 |
11 | 无效 | 5 | a | 错误提示 |
12 | 无效 | ! | 5 | 错误提示 |
13 | 无效 | 5 | ! | 错误提示 |
14 | 无效 | 空格 | 5 | 错误提示 |
15 | 无效 | 5 | 空格 | 错误提示 |
16 | 无效 | 为空 | 5 | 错误提示 |
17 | 无效 | 5 | 为空 | 错误提示 |
场景法
场景法是通过场景对系统的功能、业务流程进行测试。场景法一般包含基本流、测试流,从一个流程开始,通过业务流程经过的路径来确定测试的过程,并遍历所有的基本流和备选流来完成系统中所有的场景。
基本流:按照正确的业务流程来实现一条操作路径,即模拟用户操作软件的正确的流程。
备选流:导致软件出现错误的操作流程,即模拟用户操作软件的错误的流程。
设计场景法测试用例首先需要根据需求文档得出系统的功能模块流程图,描述出系统程序的基本流及备选流;其次根据基本流和场景流生成不同的场景,构造场景列表。最后对每一个场景生成相关的测试用例,对所有的测试用例重新复审,去掉多余的测试用例。
判定表
判定表由条件桩、动作桩、条件项、动作项组成。条件桩表示可能出现这个Bug的所有条件,动作桩表示这个Bug的所有输出结果,条件项为条件桩的取值,动作项为条件项的各个取值情况下的输出结果。
设计判定表首先需要列出所有的条件桩、动作桩,确定规则数量,规则数由条件桩确定,规则数=条件取值数的条件数次方。依次填入条件项和动作项得到初始判定表。初始判定表会包含冗余内容,简化判定表。