12.6 How would you test an ATM in a distributed banking system?
这道题问我们如何来测试一个自动取款机,我们首先要询问下列问题:
- 谁来使用这些ATM?回答可能是任何人,或者是盲人,或者是其他什么答案。
- 这些ATM用来干什么?回答可能是取钱,汇款,查余额等。
- 我们用什么工具来测试?我们能接触到代码吗,还是只有ATM机子?
一旦我们搞清楚了上述问题,我们可以将测试部分分为下列几个部分
- 登陆
- 取钱
- 存钱
- 查余额
- 汇款
我们可能需要使用一些列混合的手动或者自动的检测。
手动测试需要检查上述步骤,保证检查到所有的错误情况,比如余额不足,新账户,不存在的账户等。
自动测试稍微复杂一些,我们想要自动检测一些情景,检测一些特定的问题,比如race condition等问题。我们可以建立一个虚假账号,当某人在异地快速的存取钱,保证此账户不会额外的得到或者丢失钱。
综上,我们需要仔细检查安全性和可靠性。用户的账户一定要被保护,我们必须保证钱正确的流通,每个人都不想意外的损失钱。