ctci/11. Testing/11.6. Test an ATM.md

21 lines
1.1 KiB
Markdown

# 11.6. Test an ATM
> in a distributed banking system
1. Black box or white box? Can I test separate components of the ATM?
2. Users? Clients in the street
3. Use case? check account, retrieve money, insert money, renew transport card
4. Bounds of use? Clients cannot retrieve more than 2k€/day. After 3 PIN attempts, card is blocked
5. In what conditions should it fail? It should never fail... if the machine swallows up the card, it should show instructions on how to proceed now
Tests:
1. Fact check: check that the buttons in the ATM all work, the display too
2. Intended use: log in as user, enter PIN, retrieve money, put it back in
3. Safety: try entering wrong PIN, should see the prompt with instructions. If the credit card has a theft alert or something, no operations should be done on it
4. Unintended uses: user shall not retrieve more than 2k€/day, and if there are less than 2k€ in the account, only the max amount of money should be retrieved as maximum.
## Solution
Take security into account, reliability, that money does not magically disappear when you withdraw it and put it back in.