一、实验目的
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 | 填上错误内容 | 填上错误内容 | 填上正确内容 |
五、实验总结
对正交表的理解不透彻,设计正交实验表时有些困难。