软件测试系列(二)——黑盒测试的例子
一、判断读入的3个整数能否构成三角形?并判断所构成的三角形的形状
测试场景: |
一个程序读入3个整数,把这三个数值看作一个三角形的3条边的长度值。这个程序要打印出信息,说明这个三角形是一般三角形、是等腰的、还是等边的。 请用判定表或因果图法完成该程序的测试用例设计。 |
解答:
使用判定表法
1.设读入三个数分别记为A、B、C
条 件 桩 |
A>0&B>0&C>0 |
T |
T |
T |
T |
T |
T |
T |
T |
F |
F |
F |
F |
F |
F |
F |
F |
A+B>C&B+C>A& A+C>B |
T |
T |
T |
T |
F |
F |
F |
F |
T |
T |
T |
T |
F |
F |
F |
F |
|
A=B|B=C|A=C |
T |
T |
F |
F |
T |
T |
F |
F |
T |
T |
F |
F |
T |
T |
F |
F |
|
A=B&B=C |
T |
F |
T |
F |
T |
F |
T |
F |
T |
F |
T |
F |
T |
F |
T |
F |
|
动 作 项 |
不是三角形 |
|
|
X |
|
X |
X |
X |
X |
X |
X |
X |
X |
X |
X |
X |
X |
等边三角形 |
X |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
等腰三角形 |
|
X |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
一般三角形 |
|
|
|
X |
|
|
|
|
|
|
|
|
|
|
|
|
(注:应删除
- 满足“A=B&B=C”但不满足“A=B|B=C|A=C”
- 满足“A=B&B=C”“A=B|B=C|A=C”但不满足“A+B>C&B+C>A&A+C>B”
- 满足“A=B|B=C|A=C”但不满足“A+B>C&B+C>A&A+C>B”
- 满足“A+B>C&B+C>A&A+C>B”但不满足“A>0&B>0&C>0”
等显然矛盾的情况)
删除条件矛盾的规则后:
条 件 桩 |
A>0&B>0&C>0 |
T |
T |
T |
T |
F |
F |
F |
A+B>C&B+C>A& A+C>B |
T |
T |
T |
F |
F |
F |
F |
|
A=B|B=C|A=C |
T |
T |
F |
F |
T |
T |
F |
|
A=B&B=C |
T |
F |
F |
F |
T |
F |
F |
|
动 作 项 |
不是三角形 |
|
|
|
X |
X |
X |
X |
等边三角形 |
X |
|
|
|
|
|
|
|
等腰三角形 |
|
X |
|
|
|
|
|
|
一般三角形 |
|
|
X |
|
|
|
|
2.合并判定表:
条 件 桩 |
A>0&B>0&C>0 |
T |
T |
T |
— |
F |
A+B>C&B+C>A& A+C>B |
T |
T |
T |
F |
F |
|
A=B|B=C|A=C |
T |
T |
F |
F |
T |
|
A=B&B=C |
T |
F |
F |
F |
— |
|
动 作 项 |
不是三角形 |
|
|
|
X |
X |
等边三角形 |
X |
|
|
|
|
|
等腰三角形 |
|
X |
|
|
|
|
一般三角形 |
|
|
X |
|
|
3.依据简化后的判定表的每一条规则,编写测试用例:
序号 |
[A,B,C] |
覆盖的条件桩 |
输出的动作项 |
1 |
[6,6,6] |
(1)T(2)T(3)T(4)T |
等边三角形 |
2 |
[5,5,6] |
(1)T(2)T(3)T(4)F |
等腰三角形 |
3 |
[3,4,5] |
(1)T(2)T(3)F(4)F |
一般三角形 |
4 |
[1,2,3] |
(1)T(2)F(3)F(4)F |
非三角形 |
5 |
[0,1,2] |
(1)F(2)F(3)F(4)F |
非三角形 |
6 |
[-1,3,3] |
(1)F(2)F(3)T(4)F |
非三角形 |
二、用场景法完成ATM的取款功能的测试用例设计
问题: |
用场景法完成ATM的取款功能的测试用例设计 |
解答:
1.分析需求,整理出业务流程,列出基本流和备选流
基本流事件(取款成功的业务过程):
- 用户将银行卡插入ATM机卡槽,若该银行卡合法,ATM机提醒用户输入密码
- 用户输入正确密码,ATM机与后台服务器连接,验证密码的正确性,若密码正确,用户可以选择所需业务
- 用户点击“取款”功能,选择“取款金额”;后台服务器将校验取款金额是否在合法范围内,若金额处于合法范围,ATM提示用户点击“确认”按钮
- 用户确认取款,ATM吐钞并提示用户取钱,同时,后台服务器将更改用户账户的余额
- 用户取走现金,并结束交易,ATM吐出银行卡,用户取走银行卡
备选流(取款过程中可能会遇到的各种意外情况):
- 银行卡不合法,ATM验证卡不通过,提示用户该银行卡无效并自动退卡
- 用户输入错误密码,ATM提醒用户密码错误,重新输入密码
- 用户取消登陆,ATM退卡
- 用户连续三次输入错误密码,ATM将吞卡并提醒用户到柜台办理相关手续
- 用户输入的取款金额大于存款金额,ATM提示用户无法取款
- 用户取款金额已大于单次取款上限,ATM提示用户无法取款
- 用户取款金额已大于当日取款上限,ATM提示用户无法取款
- ATM机余额不足
- 用户输入合法金额后,取消取款,ATM结束该次业务
- 用户忘记取走现金,ATM发出报警信号
- 用户忘记取走银行卡,ATM发出报警信号
2.根据上述的事件流,编写测试用例
场景编号 |
事件流 |
测试用例 |
001 |
基本流 |
用户插入有效银行卡,第一次输入正确密码,取款金额合法,ATM吐钱,用户取款,取卡 |
002 |
基本流,备选流(1) |
用户插入无效银行卡 |
003 |
基本流,备选流(4) |
用户插入有效银行卡,连续三次输入错误密码,无法取回银行卡 |
004 |
基本流,备选流(2)(5) |
用户插入有效银行卡,第一输入错误密码后,再次输入正确密码,点击“取款”功能后,输入的取款金额大于存款金额,ATM提示用户再次输入取款金额。用户输入合法金额后,取款成功,并取回银行卡,结束业务 |
005 |
基本流,备选流(8) |
用户插入有效银行卡,输入正确密码,取款金额大于ATM机现有金额,无法取款。用户修改取款金额后,取款成功,用户取回银行卡,交易结束 |
006 |
基本流,备选流(2)(3) |
用户插入有效银行卡,输入两次错误密码后,自己结束业务,取回银行卡 |
007 |
基本流,备选流(6) |
用户插入有效银行卡,首次输入密码正确,但是输入的取款金额大于单笔取款金额的上限,修改取款金额后,取款成功 |
008 |
基本流,备选流(7) |
用户插入有效银行卡,首次输入密码正确,但是输入的取款金额大于当天取款金额的上限,修改取款金额后,取款成功 |
009 |
基本流,备选流(9) |
用户插入有效银行卡,首次输入密码正确,但是在确认取款时取消业务 |
010 |
基本流,备选流(10) |
用户插入有效银行卡,首次输入密码正确,取款金额合法,确认取款,但是长时间没有取走钱,ATM发出报警信号 |
011 |
基本流,备选流(11) |
用户插入有效银行卡,首次输入密码正确,取款金额合法,确认取款,取走现金后长时间没有取走银行卡,ATM发出报警信号 |