在一个分布式银行系统中,如何测试一台ATM机
解答
1、确定Who/What/When/Where/Why/How
2、确定测试工具,确定是否可以查看源码
3、将问题分解:
- 登录
- 取款
- 存款
- 查询余额
- 转账
4、确保涵盖所有错误情况(余额不足、新开账户、不存在的账户等)
5、安全性和可靠性。
一、基本事件流:
1
、用户向
ATM
提款机中插入银行卡,如果银行卡是合法的,
ATM
提款机界面提示用户输入
提款密码;
2
、用户输入该银行卡的密码,
ATM
提款机与
MainFrame
传递密码,检验密码的正确性。如
果输入密码正确,提示用户输入取钱金额,提示信息为,“请输入您的提款额度”;
3
、用户输入取钱金额,系统校验金额正确,提示用户确认,提示信息为“您输入的金额是
xxx
,请确认,谢谢!”,用户按下确认键,确认需要提取的金额;
4
、系统同步银行主机,点钞票,
输出给用户,
并且减掉数据库中该用户帐户中的存款金额。
5
、用户提款,银行卡自动退出,用户取走现金,拔出银行卡,
ATM
提款机界面恢复到初始
状态;
二、备选事件流
(
考虑可能失败的地方
)
:
1.
在基本事件流
1
中:
如果插入无效的银行卡,那么,在
ATM
提款机界面上提示用户“您使用的银行卡无效!”,
3
秒钟后,自动退出该银行卡。
2.
在基本事件流
2
中:
如果用户输入的密码错误,则提示用户“您输入的密码无效,请重新输入”;
如果用户连续
3
次输入错误密码,
ATM
提款机吞卡,并且
ATM
提款机的界面恢复到初始
状态。此时,其他提款人可以继续使用其他的合法的银行卡在
ATM
提款机上提取现金。
用户输入错误的密码后,也可以按“退出”键,则银行卡自动退出。
3.
在基本事件流
3
中:
如果用户输入的单笔提款金额超过单笔提款上限,
ATM
提款机界面提示“您输入的金额
错误,单笔提款上限金额是
2500RMB
,请重新输入”;
如果用户输入的单笔金额,
不是以
50RMB
为单位的,
那么提示用户“您输入的提款金额
错误,请输入以
50
为单位的金额”;
如果用户输入正确的提款金额,
ATM
提款机提示用户确认后,用户取消提款,则
ATM
提
款机自动退出该银行卡;
如果
ATM
提款机中余额不足,则提示用户,“抱歉,
ATM
提款机中余额不足”,
3
秒钟
后,自动退出银行卡。
4.
在基本事件流
4
中:
如果用户银行户头中的存款小于提款金额,则提示用户“抱歉,您的存款余额不足!”,
3
秒钟后,自动退出银行卡;
5.
在基本事件流
5
中:
如果用户没有取走现金,或者没有拔出银行卡,
ATM
提款机不做任何提示,直接恢复到界面
的初始状态;
三、基本路径:
插入银行卡
---
提示输入密码
---
用户输入密码
---
提示输入金额
---
用户输入金额
---
提示确
认
---
用户确认
---
输出钞票给用户,
退卡
---
用户取走现金,
取走银行卡
---
界面恢复初始状
态