[CareerCup] 12.6 Test an ATM 测试一个自动取款机

时间:2022-04-10 20:21:56

12.6 How would you test an ATM in a distributed banking system?

这道题问我们如何来测试一个自动取款机,我们首先要询问下列问题:

- 谁来使用这些ATM?回答可能是任何人,或者是盲人,或者是其他什么答案。

- 这些ATM用来干什么?回答可能是取钱,汇款,查余额等。

- 我们用什么工具来测试?我们能接触到代码吗,还是只有ATM机子?

一旦我们搞清楚了上述问题,我们可以将测试部分分为下列几个部分

- 登陆

- 取钱

- 存钱

- 查余额

- 汇款

我们可能需要使用一些列混合的手动或者自动的检测。

手动测试需要检查上述步骤,保证检查到所有的错误情况,比如余额不足,新账户,不存在的账户等。

自动测试稍微复杂一些,我们想要自动检测一些情景,检测一些特定的问题,比如race condition等问题。我们可以建立一个虚假账号,当某人在异地快速的存取钱,保证此账户不会额外的得到或者丢失钱。

综上,我们需要仔细检查安全性和可靠性。用户的账户一定要被保护,我们必须保证钱正确的流通,每个人都不想意外的损失钱。