1、等价类划分
等价类划分是黑盒测试最常用的方法 ,使用等价类划分的方法是将输入域划分为若干个区域,并从中选择少数具有代表性的数据进行测试,这样可以避免使用大量的测试数据,也避免了盲目性。 等价类划分针对程序的输入部分,常用的设计方法是:找出输入条件,划分等价类,并进行用例的设计。等价类分为有效等价类和无效等价类。所谓有效等价类是指用户输入的有效数据,并得到预期的或正常的结果;另一种是无效等价类,无效等价类是指异常的或不符合规定的输入,相应的也会得到异常的输出或提示信息。因此在划分等价类的时候又从有效和无效两方面去考虑。一般在设计测试用例时,要是一条用例尽量多的覆盖有效等价类,而无效等价类则要求一对一的覆盖 。
2、边界值
边界值同样是一种经典的黑盒测试方法,他常常作为等价类的一种补充,与等价类方法一起使用。在进行程序设计时,大量的错误容易发生在输入数据或输出数据的边界上,因此使用边界值的方法可以经常检测出错误。当一个输入明确的规定了一个值的取值范围时或输入条件是一组有序的集合时,就可以使用边界值的方法来设计测试用例。关于边界值得上点、内点、离点的概念,可以参见下图。
由于等价类和边界值经常配合使用,因此两者可以合并为一个用例设计方法,下面总结一下使用等价类边界值设计测试用例的思路和方法。
- 分析需求,挖掘隐式条件,确认边界值,划分等价类
- 将划分出的等价类填入表格,进行编号
- 对有效等价类,用一条用例尽量多的覆盖
- 对于无效等价类,一对一的覆盖,最终得到测试用例
下面以最经典的三角形问题来说明如何使用等价类边界值方法设计测试用例:
输入3个数,判定是否构成三角型,并判定什么时候是等腰三角形,什么时候是等边三角形。
分析输入条件:
- 3个整数
- 任意两边和大于第三遍
- 满足1、2,且只有两个边相等
- 满足1,三遍全部相等
由上面的条件得到表格 :
条件 | 有效等价类 | 编号 | 无效等价类 | 编号 | |
3 条边 | 输入 3 边长 a , b , c | A1 | 非 3 边 | 空 | B1 |
a | B2 | ||||
a , b | B3 | ||||
三边长为正数 | a=3.2 , b=2.1 , c=4 | A2 | 非正 数 | a=0 | B4 |
a=-1 | B5 | ||||
字母 | a=E | B6 | |||
符号 | a=* | B7 | |||
三边构成三角形 a+b>c,a+c>b,b+c>a | a=3 , b=4 , c=5 | A3 | a=1 , b=2 , c=4 | B8 | |
等腰:有两条边相等 | a=2.2 , b=2.2 , c=3.1 | A4 | a=2.1 , b=2.2 , c=2.3 | B9 | |
等边:三边相等 | a=b=c=6 | A5 | 三边不 全相等 | =2.1 , b=2.2 , c=2.4 | B10 |
a=2.2 , b=2.2 , c=2.3 | B11 |
获得等价类的划分后可以轻松的得到测试用例:
序号 | 有效用例输入 | 覆盖等价有效类 | 序号 | 无效用例输入 | 覆盖无效等价类 |
1 | a=3.2 , b=2.1 , c=4 | A1,A2 | 5 | 空 | B1 |
2 | a=3 , b=4 , c=5 | A1,A3 | 6 | a=1 | B2 |
3 | a=2.2 , b=2.2 , c=3.1 | A1,A4 | 7 | a=1 , b=2 | B3 |
4 | a=b=c=6 | A1,A5 | 8 | a=0 , b=1 , c=0 | B4 |
|
|
| 9 | a=-1 , b=1 , c=-2 | B5 |
|
|
| 10 | a=E | B6 |
|
|
| 11 | a=* | B7 |
|
|
| 12 | a=1 , b=2 , c=4 | B8 |
|
|
| 13 | a=2.1 , b=2.2 , c=2.3 | B9 |
|
|
| 14 | a=2.2 , b=2.2 , c=2.3 | B10 |