黑盒测试又称为功能测试或数据驱动测试
黑盒测试方法:等价类划分、边界值分析、错误推测法、因果图与判定表(决策树-流程图)、正交实验法、场景法、探索式测试
等价类划分法
根据需求,对用户所有可能的输入划分若干子集,然后从每个子集中选取少量有代表性的数据作为测试用例
等价类划分设计步骤
1.先划分等价类:找出所有可能的分类
2.确认有效等价类:需求中的条件
3.确认无效等价类:与条件相反的情况、再找特殊情况(考虑各种可能情况)
4.从各分类中挑选具体的测试用例数据
案例
有一个计算两数加法的程序,只能计算不超过100的正整数。
需求解析
1. 1-100整数加法,2. 有两个输入框。
1. 找出可能的输入数据
整数、小数、字母、汉字、符号、空格、回车、不输入
2. 确认等价类的范围
输入条件 | 有效等价类 | 无效等价类 |
1-100整数,取值范围 [1,100] | [1,100]整数 | <1整数 |
>100整数 | ||
小数 | ||
字母 | ||
汉字 | ||
特殊符号 | ||
空 |
3. 挑选具体的测试用例数据
注:测试无效等价类时,另一个变量应为有效等价类,确保变量唯一。
编号 | 所属等价类 | 输入框1 | 输入框2 | 预期结果 |
1 | 有效 | 45 | 23 | 68 |
2 | 无效 | -15 | 58 | 给出错误提示 |
3 | 无效 | 58 | -15 | 给出错误提示 |
4 | 无效 | 105 | 50 | 给出错误提示 |
5 | 无效 | 50 | 105 | 给出错误提示 |
6 | 无效 | 3.23 | 45 | 给出错误提示 |
7 | 无效 | 45 | 3.23 | 给出错误提示 |
8 | 无效 | ab | 11 | 给出错误提示 |
9 | 无效 | 11 | ab | 给出错误提示 |
10 | 无效 | 我 | 34 | 给出错误提示 |
11 | 无效 | 34 | 我 | 给出错误提示 |
12 | 无效 | % | 56 | 给出错误提示 |
13 | 无效 | 56 | % | 给出错误提示 |
14 | 无效 | 78 | 给出错误提示 | |
15 | 无效 | 78 | 给出错误提示 |
边界值分析法
错误的产生通常在输入输出的边界范围,对边界情况设计测试用例,可以发现更多错误。
边界值取值原则
边界值法通常作为等价类划分的补充方法,测试用例来自等价类的边界。
选取正好等于,刚好大于或刚好小于边界的值作为测试数据。
上点、离点、内点的概念
上点:边界上的点,跟域是开区间还是闭区间无关,开区间上点在域外,闭区间上点在域内。
离点:离上点最近的点,跟域是开区间还是闭区间有关,开区间离点在域内,闭区间离点在域外。
内点:域内的任意点都是内点
如:[1,100],(1,100),上点均是1和100,不同的是前者1和100在域内,后者1和100在域外。前者离点为0,101,后者离点为2,99;离点跟取值精度有关,举例为取整数情况。
完善上述加法程序案例
根据边界值法,确认边界取值:0、1、2、99、100、101。
4. 完善补充测试数据
编号 | 所属等价类 | 输入框1 | 输入框2 | 预期结果 |
1 | 有效 | 1 | 100 | 101 |
2 | 有效 | 2 | 99 | 101 |
3 | 有效 | 99 | 2 | 101 |
4 | 有效 | 100 | 1 | 101 |
5 | 无效 | 0 | 40 | 给出错误提示 |
6 | 无效 | 40 | 0 | 给出错误提示 |
7 | 无效 | 101 | 50 | 给出错误提示 |
8 | 无效 | 50 | 101 | 给出错误提示 |
9 | 无效 | 3.23 | 45 | 给出错误提示 |
10 | 无效 | 45 | 3.23 | 给出错误提示 |
11 | 无效 | ab | 11 | 给出错误提示 |
12 | 无效 | 11 | ab | 给出错误提示 |
13 | 无效 | 我 | 34 | 给出错误提示 |
14 | 无效 | 34 | 我 | 给出错误提示 |
15 | 无效 | % | 56 | 给出错误提示 |
16 | 无效 | 56 | % | 给出错误提示 |
17 | 无效 | 78 | 给出错误提示 | |
18 | 无效 | 78 | 给出错误提示 |