1、打印机正常工作的条件是:有纸、有墨、驱动程序正确。请用决策表为工具设计打印机能否正常工作的测试用例。(假设检错顺序为:纸、墨、驱动程序)
打印机正常工作的条件是:有纸、有墨、驱动程序正确(共3种)
动作:正常打印、提示:缺纸、提示:缺墨、提示:驱动程序异常(共4种)。
决策表的规则数:2的3次方= 8,设1表示条件满足,0表示该条件未满足,决策表如下:
R1 | R2 | R3 | R4 | R5 | R6 | R7 | R8 | ||
条件 | 有纸 | 0 | 0 | 0 | 0 | 1 | 1 | 1 | 1 |
有墨 | 0 | 0 | 1 | 1 | 0 | 0 | 1 | 1 | |
驱动程序正确 | 0 | 1 | 0 | 1 | 0 | 1 | 0 | 1 | |
动作 | 正常打印 | √ | |||||||
提示:缺纸 | √ | √ | √ | √ | |||||
提示:缺墨 | √ | √ | |||||||
提示:驱动程序异常 | √ |
上述决策表中R1~R4、R5~R6可分别合并,化简后的决策表:
R1~R4 | R5~R6 | R7 | R8 | ||
条件 | 有纸 | 0 | 1 | 1 | 1 |
有墨 | - | 0 | 1 | 1 | |
驱动程序正确 | - | - | 0 | 1 | |
动作 | 正常打印 | √ | |||
提示:缺纸 | √ | ||||
提示:缺墨 | √ | ||||
提示:驱动程序异常 | √ |
构造测试用例:
用例ID | 输入数据 | 预期输出 | 规则 |
1 | 无纸 | 不能打印,提示:缺纸 | R1~R4 |
2 | 有纸无墨 | 不能打印,提示:缺墨 | R5~R6 |
3 | 有纸有墨,驱动程序异常 | 不能打印,提示:驱动程序异常 | R7 |
4 | 有纸有墨,驱动程序正确 | 正常打印 | R8 |
2、某自动售货机共出售三种饮料:矿泉水、奶茶、可乐。它们的单价均为5元/瓶。该售货机只能接受面值5元和10元的纸币,且每次交易最多出售一件商品。请用因果图法设计对该自动售货机的测试用例。
原因:
c1:按下“矿泉水”按钮
c2:按下“奶茶”按钮
c3:按下“可乐”按钮
c4:投5元纸币
c5:投10元纸币
结果:
e1:送出“矿泉水”
e2:送出“奶茶”
e3:送出“可乐”
e4:找零5元
因果图:
则:
e1=c1∧(c4∨c5)
e2=c2∧(c4∨c5)
e3=c3∧(c4∨c5)
e4=c5∧(c1∨c2∨c3)
c1、c2、c3满足E约束的组合有4种,c4、c5满足E约束的组合有3种,则条件的组合数为4x3=12。决策表如下:
R1 | R2 | R3 | R4 | R5 | R6 | R7 | R8 | R9 | R10 | R11 | R12 | ||
原因 | c1 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 1 |
c2 | 0 | 0 | 1 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 1 | 0 | |
c3 | 0 | 1 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 1 | 0 | 0 | |
c4 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | 1 | 1 | |
c5 | 0 | 0 | 0 | 0 | 1 | 1 | 1 | 1 | 0 | 0 | 0 | 0 | |
结果 | e1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 1 |
e2 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 1 | 0 | |
e3 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | |
e4 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | 1 | 0 | 0 | 0 | 0 |
将决策表化简得:
R1~R4 | R5,R9 | R6 | R7 | R8 | R10 | R11 | R12 | ||
原因 | c1 | - | 0 | 0 | 0 | 1 | 0 | 0 | 1 |
c2 | - | 0 | 0 | 1 | 0 | 0 | 1 | 0 | |
c3 | - | 0 | 1 | 0 | 0 | 1 | 0 | 0 | |
c4 | 0 | - | 0 | 0 | 0 | 1 | 1 | 1 | |
c5 | 0 | - | 1 | 1 | 1 | 0 | 0 | 0 | |
结果 | e1 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 1 |
e2 | 0 | 0 | 0 | 1 | 0 | 0 | 1 | 0 | |
e3 | 0 | 0 | 1 | 0 | 0 | 1 | 0 | 0 | |
e4 | 0 | 0 | 1 | 1 | 1 | 0 | 0 | 0 |
构造测试用例
用例ID | 输入数据 | 预期输出 | 对用规则 |
1 | 不投币 | 售货机不做任何事 | R1~R4 |
2 | 不选商品 | 售货机不做任何事 | R5,R9 |
3 | 选可乐,投入10元 | 送出可乐,找零5元 | R6 |
4 | 选奶茶,投入10元 | 送出奶茶,找零5元 | R7 |
5 | 选矿泉水,投入10元 | 送出矿泉水,找零5元 | R8 |
6 | 选可乐,投入5元 | 送出可乐 | R10 |
7 | 选奶茶,投入5元 | 送出奶茶 | R11 |
8 | 选矿泉水,投入5元 | 送出矿泉水 | R12 |
3、请选择淘宝/天猫、京东等任意一个电商平台,对在该平台上进行完整的一次购物过程(从网站登录到订单生成)使用场景法进行分析并设计测试用例。
以京东电商平台为购物测试对象,用户已经是该平台的注册用户。
购物事件流图:
场景的设计
场景 | 处理流程 |
场景1——订单成功生成 | 基本流 |
场景2——选购商品库存不足 | 基本流→备选流1 |
场景3——账户不存在 | 基本流→备选流2 |
场景4——登录口令不正确 | 基本流→备选流3 |
场景5——收货地址不正确 | 基本流→备选流4 |
场景6——收货人电话未提供 | 基本流→备选流5 |
场景7——支付口令不正确 | 基本流→备选流6 |
场景8——支付账户余额不足 | 基本流→备选流7 |
测试用例的设计(V:合法,I:非法,N/A:未涉及)
用例ID | 输入数据 | 预期输出 | ||||||
被选商品数量 | 账户 | 登录口令 | 收货地址 | 收货人电话 | 支付口令 | 账户余额 | ||
1 | V | V | V | V | V | V | V | 订单成功生成 |
2 | I | N/A | N/A | N/A | N/A | N/A | N/A | 报错:选购商品库存不足 |
3 | V | I | N/A | N/A | N/A | N/A | N/A | 报错:账户不存在 |
4 | V | V | I | N/A | N/A | N/A | N/A | 报错:登录口令不正确 |
5 | V | V | V | I | N/A | N/A | N/A | 报错:收货地址不正确 |
6 | V | V | V | V | I | N/A | N/A | 报错:收货人电话未提供 |
7 | V | V | V | V | V | I | N/A | 报错:支付口令不正确 |
8 | V | V | V | V | V | V | I | 报错:支付账户余额不足 |
测试数据的设计
假设购买“森马企鹅上衣”,该商品库存为1件,售价50元。
用户的账号为2019131302,登录口令为123456,支付口令为654321。
收货地址为广东省东莞市石排镇广东科技学院松山湖校区,收货人电话为18888888888。
用例ID | 输入数据 | 预期输出 | ||||||
被选商品数量 | 账户 | 登录口令 | 收货地址 | 收货人电话 | 支付口令 | 账户余额 | ||
1 | 1 | 2019131302 | 123456 | 广东省东莞市石排镇广东科技学院松山湖校区 | 18888888888 | 654321 | 50 | 订单成功生成 |
2 | 2 | N/A | N/A | N/A | N/A | N/A | N/A | 报错:选购商品库存不足 |
3 | 1 | 20191313 | N/A | N/A | N/A | N/A | N/A | 报错:账户不存在 |
4 | 1 | 2019131302 | 12345 | N/A | N/A | N/A | N/A | 报错:登录口令不正确 |
5 | 1 | 2019131302 | 123456 | N/A | N/A | N/A | 报错:收货地址不正确 | |
6 | 1 | 2019131302 | 123456 | 广东省东莞市石排镇广东科技学院松山湖校区 | N/A | N/A | 报错:收货人电话未提供 | |
7 | 1 | 2019131302 | 123456 | 广东省东莞市石排镇广东科技学院松山湖校区 | 18888888888 | 65432 | N/A | 报错:支付口令不正确 |
8 | 1 | 2019131302 | 123456 | 广东省东莞市石排镇广东科技学院松山湖校区 | 18888888888 | 654321 | 30 | 报错:支付账户余额不足 |