原文来源:https://www.cnblogs.com/Carolinee/p/5546594.html
1.根据下面给出的规格说明,利用等价类进行测试用例的设计。
一个程序读入3个正整数,把这三个数值看作一个三角形的3条边的长度值。这个程序要打印出信息,说明这个三角形是普通的、是等腰的、还是等边的。
a.找出输入输出条件,列出有效等价类和无效等价类并编号;
输入 | 有效的等价类 | 无效等价类 |
3条边 | 3个正整数(1) | <3个数(2),>3个数(3),非正整数(4),非数字(5) |
普通三角形 | a+b>c且a+c>b且b+c>a (6) | a+b<c(7),a+c<b(8), b+c<a(9) |
等腰三角形 | a=c(10),a=b(11), b=c(12) | |
等边三角形 | a=b=c(13) |
b.设计用例
编号 | 覆盖等价类 | a | b | c | 预期输出 |
1 | 1,6 | 3 | 4 | 5 | 普通三角形 |
2 | 1,6,10 | 3 | 4 | 3 | 等腰三角形 |
3 | 1,6,11 | 3 | 3 | 4 | 等腰三角形 |
4 | 1,6,12 | 4 | 3 | 3 | 等腰三角形 |
5 | 1,6,13 | 3 | 3 | 3 | 等边三角形 |
6 | 2 | 3 | 3 | 非三角形 | |
7 | 3 | 3 | 3 | 3,3 | 非三角形 |
8 | 4 | -1 | 3 | 3 | 非三角形 |
9 | 5 | a | a | a | 非三角形 |
10 | 7 | 3 | 4 | 8 | 非三角形 |
11 | 8 | 3 | 8 | 4 | 非三角形 |
12 | 9 | 8 | 3 | 4 | 非三角形 |
以上是最少的测试用例组合,如果时间、条件允许可适当补充用例;
2.正对上题, 要求三角形每边边长的取范围值设值为(1, 100],利用边界值进行测试用例的设计。
a.找出上点:1,100 离点:2,101 内点:55
b.等价类的基础上补充边界用例
用例编号 | a | b | c | 预期输出 |
1 | 55 | 55 | 1 | 等腰三角形 |
2 | 50 | 50 | 100 | 非三角形 |
3 | 55 | 55 | 2 | 等腰三角形 |
4 | 55 | 55 | 101 | 等腰三角形 |
5 | 55 | 55 | 55 | 等边三角形 |
6 | 1 | 55 | 55 | 等腰三角形 |
7 | 100 | 50 | 50 | 非三角形 |
8 | 2 | 55 | 55 | 等腰三角形 |
9 | 101 | 55 | 55 | 等腰三角形 |
10 | 55 | 1 | 55 | 等腰三角形 |
11 | 50 | 100 | 50 | 非三角形 |
12 | 55 | 2 | 55 | 等腰三角形 |
13 | 55 | 101 | 55 | 等腰三角形 |
3.用判定表方法设计上述用例。
a.找出条件桩:是否构成三角形(能/不能);三边关系(a=b/a=c/b=c);
动作桩:非三角形,等腰三角形、等边三角形、普通三角形;
b.画判定表;
条件桩 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 |
构成三角形 | Y | Y | Y | Y | Y | Y | Y | Y | N | N | N | N | N | N | N | N |
a=b | Y | Y | Y | Y | N | N | N | N | X | Y | Y | Y | N | N | N | N |
b=c | Y | Y | N | N | Y | Y | N | N | X | Y | N | N | Y | Y | N | N |
a=c | Y | N | Y | N | Y | N | Y | N | X | N | Y | N | Y | N | Y | N |
动作桩 | 等边三角形 | 不存在 | 不存在 | 等腰三角形 | 不存在 | 等腰三角形 | 等腰三角形 | 普通三角形 | 非三角形 | 非三角形 | 非三角形 | 非三角形 | 非三角形 | 非三角形 | 非三角形 | 非三角形 |
c.合并化简
根据题意,不能构成三角形就不需要再考虑三边关系,所以不能构成三角形的列可以合并为一条,上表标红部分可以直接删除,逻辑不存在的2,3,5条也可以删除,形成下图最终的判定表,最后可以参考等价类和边界值来进行最终的用例设计;
条件桩 | 1 | 2 | 3 | 4 | 5 | 6 |
构成三角形 | Y | Y | Y | Y | Y | N |
a=b | Y | Y | N | N | N | X |
b=c | Y | N | Y | N | N | X |
a=c | Y | N | N | Y | N | X |
动作桩 | 等边三角形 | 等腰三角形 | 等腰三角形 | 等腰三角形 | 普通三角形 | 非三角形 |
4.自动售货机的部分需求规格说明如下:
一个处理单价为5角钱的饮料的自动售货机。其规格说明如下:若投入5角钱或1元钱的硬币,押下〖橙汁〗或〖啤酒〗的按钮,则相应的饮料就送出来。若售货机没有零钱找,则一个显示〖零钱找完〗的红灯亮,这时在投入1元硬币并押下按钮后,饮料不送出来而且1元硬币也退出来;若有零钱找,则显示〖零钱找完〗的红灯灭,在送出饮料的同时退还5角硬币。”请使用因果图法设计相应的测试用例。
a. 原因(输入):有零钱 投5角 投1元 橙汁 啤酒
b. 找结果(输出):出橙汁 出啤酒 零钱找完 退1元 退5角
c. 画因果图:
说明:左列原因,右列结果;11表示按下按钮,12表示该找5角,13表示可找5角,14表示钱付清;
d.生成判定表
条件桩 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 |
有零钱找 | Y | Y | Y | Y | Y | Y | Y | Y | N | N | N | N | N | N | N | N |
投一元 | Y | Y | Y | N | N | N | N | N | Y | Y | Y | N | N | N | N | N |
投五角 | N | N | N | Y | Y | Y | N | N | N | N | N | Y | Y | Y | N | N |
押橙汁 | Y | N | N | Y | N | N | Y | N | Y | N | N | Y | N | N | Y | N |
押啤酒 | N | Y | N | N | Y | N | N | Y | N | Y | N | N | Y | N | N | Y |
动作桩 | 退5角,出橙汁 | 退5角,出啤酒 | 无反应 | 出橙汁 | 出啤酒 | 无反应 | 无反应 | 无反应 | 红灯亮,退一元 | 红灯亮,退一元 | 无反应 | 出橙汁 | 出啤酒 | 无反应 | 无反应 | 无反应 |
5.根据下面场景,利用正交实验法设计用例。用户登录系统,三个登录条件:用户名、密码、验证码,考虑填写或不填写。
a.找因子:用户名,密码,验证码
b.找因子状态:填,不填
c.3因子2状态,套用正交表
d.生成正交表
测试用例编号 | 用户名 | 密码 | 验证码 |
1 | 填 | 填 | 填 |
2 | 填 | 不填 | 不填 |
3 | 不填 | 填 | 不填 |
4 | 不填 | 不填 | 填 |
PS:1.可以根据SRS, 对生成后的正交表进行增删操作, 删除无意义的用例,添加需要的用例;
2.若得到的因子和状态数,找不到对应的正交表,则合并删除,选取最为接近的正交表,例如:5因子2状态,没有该正交表,可以用7因子2状态代替。
6.案例:一个缺陷的一生
测试人员提交新问题单,测试经理审核问题单,如果不是问题则作为非问题关闭,如果重复则作为重复问题关闭。否则置为打开状态;
开发人员分析打开状态的问题单,如果接受则进行修改,否则应与测试人员协商,在问题提交人统一的情况下可退回给测试人员作为非问题关闭;
对于开发人员拒绝修改但测试人员无法认同的情况,该问题单需交CCB评审,根据评审结果,如果确认要修改则进入修改状态;
如果不是问题则作为非问题关闭,如果是问题但暂时无法解决则挂起。挂起的问题单到达指定修改期限时会再次进入打开状态。修改后的问题单需由测试人员进行回归测试,如果回归通过则关闭问题单,如果回归不通过则重新进入打开状态。
根据上述案例过程,画状态迁移图。
a.找状态:打开,关闭,修复,重新打开,审核,关闭,重复,延迟,丢弃
b.画状态迁移图
7.根据下图分析流程,找出所有路径;
根据上图,共可以找到8条路径:
a.基本流→结束用例
b.基本流→备选流1→结束用例
c.基本流→备选流1→备选流2→结束用例
d.基本流→备选流3→备选流1→备选流2→结束用例
e.基本流→备选流3→结束用例
f.基本流→备选流4→结束用例
g.基本流→备选流3→备选流4→结束用例
h.基本流→备选流4→结束用例