一、实验目的
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),以获得特定员工的个人信息。用正交实验设计法设计测试用例。
三、实验步骤
1.等价类法
(1)确定等价类的原则:
① 在输入条件规定了取值范围或值的个数的情况下,可以确立一个有效等价类和两个无效等价类。
② 在输入条件规定了输入值的集合或者规定“必须如何”的条件下,可以确立一个有效等价类和一个无效等价类。
③ 在输入条件是一个布尔量的情况下,可以确定一个有效等价类和一个无效等价类。
④ 在规定了输入数据的一组值(假定 n 个),并且程序要对每一个值分别处理的情况下,可确立 n 个有效等价类和一个无效等价类。
⑤ 在规定了输入数据必须遵守的规则的情况下,可确立一个有效等价类(符合规则)和若干个无效等价类(不同角度违反规则)。
⑥ 在确知已划分的等价类中,各元素在程序处理中的方式不同的情况下,则应再将该等价类进一步地划分为更小的等价类
(2)等价类法设计测试用例步骤
①划分等价类后,建立等价类表,并为每一个等价类规定一个唯一的编号;
②设计一个测试用例,使其尽可能多地覆盖尚未被覆盖地有效等价类,重复这一步骤,直到所有的有效等价类都被覆盖为止;
③设计一个新的测试用例,使其仅覆盖一个尚未被覆盖的无效等价类,重复这一步骤,直到所有的无效等价类都被覆盖为止。(因为用单个测试用例覆盖无效等价类,是因为某些特定的输入错误会屏蔽或取代其他输入错误检查)
2.边界值法设计测试用例的原则:
① 如果输入条件规定了值的范围,则应取刚达到这个范围的边界的值,以及刚刚超越这个范围边界的值作为测试输入数据。
② 如果输入条件规定了值的个数,则用最大个数、最小个数、比最小个数少 1 、比最大个数多 1 的数作为测试数据。
③ 根据规则说明的每个输出条件,使用前面的原则 ①。
④ 根据规则说明的每个输出条件,应用前面的原则 ②。
⑤ 如果程序的规格说明给出的输入域是有序集合,则应选取集合的第一个元素和最后一个元素作为测试用例。
⑥ 如果程序中使用了一个内部数据结构,则应当选择这个内部数据结构边界上的值作为测试用例。
⑦ 分析规格说明,找出其他可能的边界条件。
(3)决策表(判定表)设计测试用例的步骤:
1确定规则数,条件数为n,规则个数=2n
2列出所有条件桩和动作桩
3填入条件项
4填入动作项
5简化判定表,合并相似规则
(4)因果图法设计测试用例的步骤:
1分析程序规格说明书的描述中,哪些是原因,哪些是结果,原因常常是输入条件或输入条件的等价类,而结果常常是输出条件。
2分析程序规格说明书中描述的的语义内容,并将其表示成连接各个原因与各个结果的因果图。
3由于语法或环境的限制,有些原因和结果的组合情况是不可能出现的,为表现这些特定的情况,在因果图上使用若干特殊的符号表明约束条件。
4把因果图转化为决策表(判断表)。
5为决策表中每一列表示的情况设计测试用例。
(5)正交实验设计法
四、实验结果
1.等价类法
要求 |
有效等价类 |
编号 |
无效等价类 |
编号 |
输入3个数 |
输入3个数 |
1 |
不输入任何数 |
2 |
只输入1个数 |
3 |
|||
只输入2个数 |
4 |
|||
多于3个数 |
5 |
|||
输入3个数是否为正 |
3个数都为正 |
6 |
有1个数小于0 |
7 |
有2个数小于0 |
8 |
|||
有3个数小于0 |
9 |
|||
3个数能否构成三角形 |
任意两数之和大于第三数 |
10 |
任意两数之和小于第三数 |
11 |
3个数能否构成等腰三角形 |
任意两数相等:a=b|a=c|b=c |
12 |
||
3个数能否构成等边三角形 |
构成等边三角形:a=b=c |
13 |
2.边界值法
测试用例 |
输入数据 |
预期输出 |
备注 |
||
a |
b |
c |
|||
1 |
1 |
100 |
100 |
等腰三角形 |
对A的边界值分析 |
2 |
2 |
100 |
100 |
等腰三角形 |
|
3 |
99 |
100 |
100 |
等腰三角形 |
|
4 |
100 |
100 |
100 |
等边三角形 |
|
5 |
100 |
1 |
100 |
等腰三角形 |
对B的边界值分析 |
6 |
100 |
2 |
100 |
等腰三角形 |
|
7 |
100 |
99 |
100 |
等腰三角形 |
|
8 |
100 |
100 |
100 |
等边三角形 |
|
9 |
100 |
100 |
1 |
等腰三角形 |
对C的边界值分析 |
10 |
100 |
100 |
2 |
等腰三角形 |
|
11 |
100 |
100 |
99 |
等腰三角形 |
|
12 |
100 |
100 |
100 |
等边三角形 |
3.
(1)因果图
原因 |
结果 |
C1:投入1元5角硬币 |
E1:送出可乐 |
C2:投入2元硬币 |
E2:送出雪碧 |
C3:按下“可乐” |
E3:送出红茶 |
C4:按下“雪碧” |
E4:退还5角硬币 |
C5:按下“红茶” |
E5:提示投入硬币 |
(2)决策法
选项/ 规则 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
条件 |
|||||||
C1 |
1 |
1 |
1 |
0 |
0 |
0 |
0 |
C2 |
0 |
0 |
0 |
1 |
1 |
1 |
0 |
C3 |
1 |
0 |
0 |
1 |
0 |
0 |
- |
C4 |
0 |
1 |
0 |
0 |
1 |
0 |
- |
C5 |
0 |
0 |
1 |
0 |
0 |
1 |
- |
10 |
1 |
1 |
1 |
1 |
1 |
1 |
0 |
动作 |
|||||||
E1 |
√ |
√ |
|||||
E2 |
√ |
√ |
|||||
E3 |
√ |
√ |
|||||
E4 |
√ |
√ |
√ |
||||
E5 |
√ |
||||||
测试用例 |
投1元5角硬币按下可乐 |
投1元5角硬币按下雪碧 |
投1元5角硬币按下红茶 |
投2元硬币按下可乐 |
投2元硬币按下雪碧 |
投2元硬币按下红茶 |
不投硬币按下可乐 |
测试用例:
测试用例编号 |
输入 |
预期输出 |
1 |
投1元5角硬币按下可乐 |
送出可乐 |
2 |
投1元5角硬币按下雪碧 |
送出雪碧 |
3 |
投1元5角硬币按下红茶 |
送出红茶 |
4 |
投2元硬币按下可乐 |
送出可乐退还5角 |
5 |
投2元硬币按下雪碧 |
送出雪碧退还5角 |
6 |
投2元硬币按下红茶 |
送出红茶退还5角 |
7 |
不投硬币按下可乐 |
提示投入硬币 |
4.正交实验设计
员工号(ID)
员工姓名(Name)
员工邮件地址(Mail Address)
因子数 |
||||
水平数 |
1 |
2 |
3 |
|
1 |
1 |
1 |
1 |
|
2 |
1 |
0 |
0 |
|
3 |
0 |
1 |
0 |
|
4 |
0 |
0 |
1 |
查询条件 |
||||
测试用例 |
员工号 |
姓名 |
邮件地址 |
|
1 |
True |
True |
True |
|
2 |
True |
False |
False |
|
3 |
False |
True |
False |
|
4 |
False |
False |
True |
五、实验总结
在实验过程中遇到了各种各样的问题,有些是对概念理解不清楚,但是通过与同学们相互讨论,所有问题都迎刃而解,并且成功完成了实验。