
一、实验目的
按照等价类法设计测试用例、使用边界值法设计测试用例
二、实验内容
(一)、将ppt上所讲的三角形例子用程序语言实现,并按照等价类法设计测试用例,并对你的程序进行测试,分析测试结果(按步骤写出完整的过程)。
(二)、实现一个小的计算器程序,只需要完成加、减、乘、除运算,用等价类法设计测试用例,进行测试并分析。然后假设运算数值的范围在0到100之间,使用边界值法设计测试用例,并测试(按步骤写出完整的过程)。
三、实验环境
Windows XP 、Microsoft Visual Studio 2008
四、实验步骤
(一)、三角形:
在三角形问题中,有四种可能的输出:等边三角形、等腰三角形、一般三角形和非三角形。利用这些信息能够确定下列输出(值域)等价类。
R1 = { : 边为a,b,c的等边三角形 } R2 = { : 边为a,b,c的等腰三角形 } R3 = { : 边为a,b,c的一般三角形 } R4 = { : 边为a,b,c不能组成三角形 } (1)标准等价类测试: 1、三角形问题的4个标准等价类测试用例的分析过程:
| 测试用例 | a | b | c | 预期输出 |
| Test1 | 10 | 10 | 10 | 等边三角形 |
| Test2 | 10 | 10 | 5 | 等腰三角形 |
| Test3 | 3 | 4 | 5 | 一般三角形 |
| Test4 | 4 | 1 | 2 | 非三角形 |
Test1:
Test2:
Test3:
Test4:
(2)健壮等价类测试:
1、三角形问题的7个健壮等价类测试用例分析过程:
| 测试用例 | a | b | c | 预期输出 |
| Test1 | 5 | 6 | 7 | 一般三角形 |
| Test2 | -1 | 5 | 5 | a值超出输入值定义域 |
| Test3 | 5 | -1 | 5 | b值超出输入值定义域 |
| Test4 | 5 | 5 | -1 | c值超出输入值定义域 |
| Test5 | 101 | 5 | 5 | a值超出输入值定义域 |
| Test6 | 5 | 101 | 5 | b值超出输入值定义域 |
| Test7 | 5 | 5 | 101 | c值超出输入值定义域 |
Test1:
Test2:
Test3:
Test4:
Test5:
Test6:
Test7:
(二)、计算器:
(1)标准等价类测试:
1、计算器4个标准等价类测试用例的分析过程如下:
| 测试用例 | 加 | 减 | 乘 | 除 | 预期输出 |
| 整型 | 98+12 | 67-34 | 74*23 | 54/23 | 正常运算 |
| 小数 | 34.5+23.4 | 56.6-34.2 | 23.5*45.7 | 46.3/23.6 | 正常运算 |
| 负数 | -23+-34 | (-98)-(-23) | -54*-34 | -54/-23 | 正常运算 |
| 无效输入 | e5+t6 | g6-k4 | i6*l9 | Ff/se | 非法操作无法输入 |
整型:
1.加(98+12)
2.减(67-34)
3.乘(74*23)
4.除(54/23)
小数
5.加(34.5+23.4)
6.减(56.6-34.2)
7.乘(23.5*45.7)
8.除(46.3/23.6)
(其中算式写法错误导致正常运算错误)
负数
9.加((-23)+(-34))
10.减((-98)-(-23))
11.乘-54*-34
(其中算式写法错误导致正常运算错误)
12.除
(其中算式写法错误导致正常运算错误)
无效输入
13.加(e5+t6):
程序中无效数字无法正常输入,程序无法进行。
14.减(g6-k4)
程序中无效数字无法正常输入,程序无法进行。
15.乘(i6*l9)
程序中无效数字无法正常输入,程序无法进行。
16.除(Ff/se)
程序中无效数字无法正常输入,程序无法进行。
(2)边界值法设计测试测试:
加法:
1、计算器4个标准等价类测试用例的分析过程如下:
| 测试用例 | 被加数 | 加数 | 预期输出 |
| Test1 | 0 | 10 | 正常运算 |
| Test2 | 1 | 10 | 正常运算 |
| Test3 | 30 | 10 | 正常运算 |
| Test4 | 54.3 | 10 | 正常运算 |
| Test5 | -67 | 10 | 正常运算 |
| Test6 | 100 | 10 | 正常运算 |
| Test7 | 101 | 10 | 正常运算 |
| Test8 | 10 | 0 | 不能运算 |
| Test9 | 10 | 1 | 正常运算 |
| Test10 | 10 | 30 | 正常运算 |
| Test11 | 10 | 54.3 | 正常运算 |
| Test12 | 10 | -67 | 正常运算 |
| Test13 | 10 | 100 | 正常运算 |
| Test14 | 10 | 101 | 正常运算 |
测试结果运算均属正常,对应的部分的示图如下:
Test1结果:
Test2结果:
Test3结果:
4结果:
Test5结果:
Test6结果:
减法:
1、计算器4个标准等价类测试用例的分析过程如下:
| 测试用例 | 被减数 | 减数 | 预期输出 |
| Test1 | 0 | 10 | 正常运算 |
| Test2 | 1 | 10 | 正常运算 |
| Test3 | 30 | 10 | 正常运算 |
| Test4 | 54.3 | 10 | 正常运算 |
| Test5 | -67 | 10 | 正常运算 |
| Test6 | 100 | 10 | 正常运算 |
| Test7 | 101 | 10 | 正常运算 |
| Test8 | 10 | 0 | 不能运算 |
| Test9 | 10 | 1 | 正常运算 |
| Test10 | 10 | 30 | 正常运算 |
| Test11 | 10 | 54.3 | 正常运算 |
| Test12 | 10 | -67 | 正常运算 |
| Test13 | 10 | 100 | 正常运算 |
| Test14 | 10 | 101 | 正常运算 |
测试结果运算均属正常,对应的部分的示图如下:
Test1结果:
Test3结果:
4结果:
Test5结果:
Test8结果:
乘法
1、计算器4个标准等价类测试用例的分析过程如下:
| 测试用例 | 被乘数 | 乘数 | 预期输出 |
| Test1 | 0 | 10 | 正常运算 |
| Test2 | 1 | 10 | 正常运算 |
| Test3 | 30 | 10 | 正常运算 |
| Test4 | 54.3 | 10 | 正常运算 |
| Test5 | -67 | 10 | 正常运算 |
| Test6 | 100 | 10 | 正常运算 |
| Test7 | 101 | 10 | 正常运算 |
| Test8 | 10 | 0 | 不能运算 |
| Test9 | 10 | 1 | 正常运算 |
| Test10 | 10 | 30 | 正常运算 |
| Test11 | 10 | 54.3 | 正常运算 |
| Test12 | 10 | -67 | 正常运算 |
| Test13 | 10 | 100 | 正常运算 |
| Test14 | 10 | 101 | 正常运算 |
测试结果运算均属正常,对应的部分的示图如下:
Test1结果:
Test3结果:
4结果:
Test5结果:
Test6结果:
Test8结果:
除法
1、计算器4个标准等价类测试用例的分析过程如下:
| 测试用例 | 被除数 | 除数 | 预期输出 |
| Test1 | 0 | 10 | 正常运算 |
| Test2 | 1 | 10 | 正常运算 |
| Test3 | 30 | 10 | 正常运算 |
| Test4 | 54.3 | 10 | 正常运算 |
| Test5 | -67 | 10 | 正常运算 |
| Test6 | 100 | 10 | 正常运算 |
| Test7 | 101 | 10 | 正常运算 |
| Test8 | 10 | 0 | 不能运算 |
| Test9 | 10 | 1 | 正常运算 |
| Test10 | 10 | 30 | 正常运算 |
| Test11 | 10 | 54.3 | 正常运算 |
| Test12 | 10 | -67 | 正常运算 |
| Test13 | 10 | 100 | 正常运算 |
| Test14 | 10 | 101 | 正常运算 |
测试结果运算均属正常,对应的部分的示图如下:
Test1结果:
Test2结果:
Test4结果:
Test8结果:
五、实验结果与讨论
等价如何划分?——先从程序的规格说明书中找出各个输入条件,再为每个输入条件划分多个等价类,形成若干的互不相交的子集。采用等价类划分法设计测试用例通常分两步进行:
(1)确定等价类,列出等价类表。
(2)确定测试用例。
怎样用边界值分析法设计测试用例?
(1)首先确定边界情况。通常输入或输出等价类的边界就是应该着重测试的边界情况。
(2)选取正好等于、刚刚大于或刚刚小于边界的值作为测试数据,而不是选取等价类中的典型值或任意值。
六、总结
1、等价类划分法是把所有可能的输入数据,即程序的输入域划分为若干部分(子集),然后从每一个子集中选取少数具有代表性的数据作为测试用例。
2、边界值分析法就是对输入或输出的边界值进行测试的一种黑盒测试方法。通常边界值分析法是作为对等价类划分法的补充,这种情况下,其测试用例来自等价类边界
