一、实验目的
1.掌握等价类划分法;
2.掌握边界值分析法;
3.掌握因果图与决策表法;
4.掌握正交实验设计法。
二、实验内容
1.判断三角形的形状。输入三条边,如果可以构成三角形,进一步判断是否是等腰三角形或等边三角形。请用等价类划分法设计测试用例。
2.输入三个整数a、b、c,分别作为三角形的三条边,通过程序判断这三条边是否能构成三角形?要求输入三个整数a、b、c,必须满足以下条件:1≤a≤100;1≤b≤100;1≤c≤100。请用边界值分析法设计测试用例。
3.现有一份自动饮料售货机软件的规格说明如下:
有一个处理单价为1元5角的盒装饮料的自动售货机软件。若投入1元5角硬币,按下“可乐”、“雪碧”、“红茶”按钮,相应的饮料就送出来。若投入的是2元硬币,在送出饮料的同时退还5角硬币。请画出该说明的因果图,然后采用决策表法为该功能设计测试用例。
4. 在信息系统中,设有3个独立的查询条件:员工号(ID)、员工姓名(Name)、员工邮件地址(Mail Address),以获得特定员工的个人信息。每个条件信息包括3种情况:不填、填上正确内容、填上错误内容。请用正交实验法设计测试用例。(P151思考题8)
三、实验步骤
1. 等价类法
(1)确定等价类的原则:
① 在输入条件规定了取值范围或值的个数的情况下,可以确立一个有效等价类和两个无效等价类。
② 在输入条件规定了输入值的集合或者规定“必须如何”的条件下,可以确立一个有效等价类和一个无效等价类。
③ 在输入条件是一个布尔量的情况下,可以确定一个有效等价类和一个无效等价类。
④ 在规定了输入数据的一组值(假定 n 个),并且程序要对每一个值分别处理的情况下,可确立 n 个有效等价类和一个无效等价类。
⑤ 在规定了输入数据必须遵守的规则的情况下,可确立一个有效等价类(符合规则)和若干个无效等价类(不同角度违反规则)。
⑥ 在确知已划分的等价类中,各元素在程序处理中的方式不同的情况下,则应再将该等价类进一步地划分为更小的等价类
(2)等价类法设计测试用例步骤
①划分等价类后,建立等价类表,并为每一个等价类规定一个唯一的编号;
②设计一个测试用例,使其尽可能多地覆盖尚未被覆盖地有效等价类,重复这一步骤,直到所有的有效等价类都被覆盖为止;
③设计一个新的测试用例,使其仅覆盖一个尚未被覆盖的无效等价类,重复这一步骤,直到所有的无效等价类都被覆盖为止。(因为用单个测试用例覆盖无效等价类,是因为某些特定的输入错误会屏蔽或取代其他输入错误检查)
2.边界值法设计测试用例的原则:
① 如果输入条件规定了值的范围,则应取刚达到这个范围的边界的值,以及刚刚超越这个范围边界的值作为测试输入数据。
② 如果输入条件规定了值的个数,则用最大个数、最小个数、比最小个数少 1 、比最大个数多 1 的数作为测试数据。
③ 根据规则说明的每个输出条件,使用前面的原则 ①。
④ 根据规则说明的每个输出条件,应用前面的原则 ②。
⑤ 如果程序的规格说明给出的输入域是有序集合,则应选取集合的第一个元素和最后一个元素作为测试用例。
⑥ 如果程序中使用了一个内部数据结构,则应当选择这个内部数据结构边界上的值作为测试用例。
⑦ 分析规格说明,找出其他可能的边界条件。
3.决策表(判定表)设计测试用例的步骤:
①确定规则数,条件数为n,规则个数=2n
②列出所有条件桩和动作桩
③填入条件项
④填入动作项
⑤简化判定表,合并相似规则
4.因果图法设计测试用例的步骤:
①分析程序规格说明书的描述中,哪些是原因,哪些是结果,原因常常是输入条件或输入条件的等价类,而结果常常是输出条件。
②分析程序规格说明书中描述的的语义内容,并将其表示成连接各个原因与各个结果的因果图。
③由于语法或环境的限制,有些原因和结果的组合情况是不可能出现的,为表现这些特定的情况,在因果图上使用若干特殊的符号表明约束条件。
④把因果图转化为决策表(判断表)。
⑤为决策表中每一列表示的情况设计测试用例。
5.正交实验设计法设计测试用例的步骤:
①提取因子,构造因子状态表。
②选择一个合适的正交表。
③利用正交表设计测试用例。
四、实验结果
1.
三角形输入等价类表 |
要求 |
有效等价类 |
编号 |
无效等价类 |
编号 |
输入3个数 |
输入3个数 |
1 |
输入0个数 |
2 |
|
只输入1个数 |
3 |
||||
只输入2个数 |
4 |
||||
多于3个数 |
5 |
||||
3个数是否都是整数 |
3个数都是整数 |
6 |
有一个数小于等于0 |
7 |
|
有两个数小于等于0 |
8 |
||||
3个数都小于等于0 |
9 |
||||
3个数是否能够构成三角形 |
任意2个数之和大于第3个数 |
10 |
其中2个数之和小于等于3个数 |
11 |
|
3个数是否能构成等腰三角形 |
其中2个数相等:a=b|b=c|a=c |
12 |
三个数均不相等 |
13 |
|
3个数是否能构成等边三角形 |
构成等边三角形:a=b=c |
14 |
三个数均不相等 |
15 |
有效等价类的测试用例
测试用例 |
输入3个数 |
覆盖有效等价类的编号 |
1 |
1 2 3 |
1 6 |
2 |
3 4 5 |
1 6 10 |
3 |
6 6 8 |
1 6 10 12 |
4 |
6 6 6 |
1 6 10 12 14 |
无效等价类的测试用例
测试用例 |
输入3个数 |
覆盖有效等价类的编号 |
5 |
-1 -1 -1 |
9 |
6 |
-1 -1 5 |
8 |
7 |
-1 4 5 |
7 |
8 |
输入0个数据 |
2 |
9 |
1 |
3 |
10 |
1 2 |
4 |
11 |
1 3 4 |
11 |
12 |
1 2 3 4 |
5 |
13 |
3 4 5 |
13 |
14 |
3 3 5 |
15 |
2.
三角形三条边a,b,c的边界取值是:-1,1,2,50,99,100,101
测试用例 |
a |
b |
c |
预期输出 |
1 |
50 |
50 |
-1 |
输入无效 |
2 |
50 |
50 |
1 |
等腰三角形 |
3 |
50 |
50 |
2 |
等腰三角形 |
4 |
50 |
50 |
50 |
等边三角形 |
5 |
50 |
50 |
99 |
等腰三角形 |
6 |
50 |
50 |
100 |
非三角形 |
7 |
50 |
50 |
101 |
输入无效 |
8 |
50 |
-1 |
50 |
输入无效 |
9 |
50 |
1 |
50 |
等腰三角形 |
10 |
50 |
2 |
50 |
等腰三角形 |
11 |
50 |
99 |
50 |
等腰三角形 |
12 |
50 |
100 |
50 |
非三角形 |
13 |
50 |
101 |
50 |
输入无效 |
14 |
-1 |
50 |
50 |
输入无效 |
15 |
1 |
50 |
50 |
等腰三角形 |
16 |
2 |
50 |
50 |
等腰三角形 |
17 |
99 |
50 |
50 |
等腰三角形 |
18 |
100 |
50 |
50 |
非三角形 |
19 |
101 |
50 |
50 |
输入无效 |
3.利用因果图法,建立软件的因果图
原因 |
结果 |
C1:投入1元5角硬币 |
E1:送出可乐 |
C2:投入2元硬币 |
E2:送出雪碧 |
C3:按下“可乐” |
E3:送出红茶 |
C4:按下“雪碧” |
E4:退还5角硬币 |
C5:按下“红茶” |
状态10是已投币
状态11是已按按钮
对应的因果图如下:
设计测试该软件的全部测试用例
根据因果图得到决策表:
选项\规则 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
|
条件 |
C1 |
1 |
1 |
1 |
- |
0 |
0 |
0 |
0 |
C2 |
0 |
0 |
0 |
- |
1 |
1 |
1 |
0 |
|
C3 |
1 |
0 |
0 |
0 |
1 |
0 |
0 |
- |
|
C4 |
0 |
1 |
0 |
0 |
0 |
1 |
0 |
- |
|
C5 |
0 |
0 |
1 |
0 |
0 |
0 |
1 |
- |
|
中间 状态 |
10 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
0 |
11 |
1 |
1 |
1 |
0 |
1 |
1 |
1 |
1 |
|
动作 |
E1 |
√ |
√ |
||||||
E2 |
√ |
√ |
|||||||
E3 |
√ |
√ |
|||||||
E4 |
√ |
√ |
√ |
||||||
测试用例 |
投1元5角 按下可乐 |
投1元5角 按下雪碧 |
投1元5角 按下红茶 |
投任意硬币不按按钮 |
投2元 按下可乐 |
投2元 按下雪碧 |
投2元 按下红茶 |
不投币 按下可乐 |
再根据决策表设计测试用例:
测试用例编号 |
输入数据 |
预期输出 |
|
投币 |
按钮 |
||
1 |
投1元5角 |
按下可乐 |
送出可乐 |
2 |
投1元5角 |
按下雪碧 |
送出雪碧 |
3 |
投1元5角 |
按下红茶 |
送出红茶 |
4 |
任意 |
不按 |
未按下按钮 |
5 |
投2元 |
按下可乐 |
送出可乐,退还5角 |
6 |
投2元 |
按下雪碧 |
送出雪碧,退还5角 |
7 |
投2元 |
按下红茶 |
送出红茶,退还5角 |
8 |
0 |
按下任意按钮 |
提示投入硬币 |
4.
有3个因子员工号(ID)、员工姓名(Name)、员工邮件地址(Mail Address),每个条件因素有3种情况:不填、填上正确内容、填上错误内容。
因子 状态 |
A |
B |
C |
员工号 |
员工姓名 |
员工邮件地址 |
|
1 |
不填 |
不填 |
不填 |
2 |
填上正确内容 |
填上正确内容 |
填上正确内容 |
3 |
填上错误内容 |
填上错误内容 |
填上错误内容 |
正交表
序号 |
A |
B |
C |
1 |
不填 |
不填 |
不填 |
2 |
不填 |
填上正确内容 |
填上正确内容 |
3 |
不填 |
填上错误内容 |
填上错误内容 |
4 |
填上正确内容 |
不填 |
填上正确内容 |
5 |
填上正确内容 |
填上正确内容 |
填上错误内容 |
6 |
填上正确内容 |
填上错误内容 |
不填 |
7 |
填上错误内容 |
不填 |
填上错误内容 |
8 |
填上错误内容 |
填上正确内容 |
不填 |
9 |
填上错误内容 |
填上错误内容 |
填上正确内容 |
五、实验总结
对正交表的理解不透彻,设计正交实验表时有些困难。