## Initial Functional Test Cases for Example ATM System

The following initial test cases can be identified early in the design process as a vehicle for checking that the implementation is basically correct. No attempt has been made at this point to do thorough testing, including all possible errors and boundary cases. That needs to come later. These cases represent an initial check that the functionality specified by the use cases is present.

Some writers would argue for developing test cases like these in place of use cases. Here, they are presented as a vehicle for "fleshing out" the use cases, not as a substitute for them.

Use Case | Function Being Tested | Initial System State | Input | Expected Output
--- | --- | --- | --- | ---
System Startup | System is started when the switch is turned "on" | System is off | Activate the "on" switch | System requests initial cash amount
System Startup | System accepts initial cash amount | System is requesting cash amount | Enter a legitimate amount | System is on
System Startup | Connection to the bank is established | System has just been turned on | Perform a legitimate inquiry transaction | System output should demonstrate that a connection has been established to the Bank
System Shutdown | System is shut down when the switch is turned "off" | System is on and not servicing a customer | Activate the "off" switch | System is off
System Shutdown | Connection to the Bank is terminated when the system is shut down | System has just been shut down |  | Verify from the bank side that a connection to the ATM no longer exists
Session | System reads a customer's ATM card | System is on and not servicing a customer | Insert a readable card | Card is accepted; System asks for entry of PIN
Session | System rejects an unreadable card | System is on and not servicing a customer | Insert an unreadable card | Card is ejected; System displays an error screen; System is ready to start a new session
Session | System accepts customer's PIN | System is asking for entry of PIN | Enter a PIN | System displays a menu of transaction types
Session | System allows customer to perform a transaction | System is displaying menu of transaction types | Perform a transaction | System asks whether customer wants another transaction
Session | System allows multiple transactions in one session | System is asking whether customer wants another transaction | Answer yes | System displays a menu of transaction types
Session | Session ends when customer chooses not to do another transaction | System is asking whether customer wants another transaction | Answer no | System ejects card and is ready to start a new session
Transaction | Individual types of transaction will be tested below |  |  |
Transaction | System handles an invalid PIN properly | A readable card has been entered | Enter an incorrect PIN and then attempt a transaction | The Invalid PIN Extension is performed
Withdrawal | System asks customer to choose an account to withdraw from | Menu of transaction types is being displayed | Choose Withdrawal transaction | System displays a menu of account types
Withdrawal | System asks customer to choose a dollar amount to withdraw | Menu of account types is being displayed | Choose checking account | System displays a menu of possible withdrawal amounts
Withdrawal | System performs a legitimate withdrawal transaction properly | System is displaying the menu of withdrawal amounts | Choose an amount that the system currently has and which is not greater than the account balance | System dispenses this amount of cash; System prints a correct receipt showing amount and correct updated balance; System records transaction correctly in the log (showing both message to the bank and approval back)
Withdrawal | System verifies that it has sufficient cash on hand to fulfill the request | System has been started up with less than the maximum withdrawal amount in cash on hand; System is requesting a withdrawal amount | Choose an amount greater than what the system currently has | System displays an appropriate message and asks customer to choose a different amount
Withdrawal | System verifies that customer's balance is sufficient to fulfill the request | System is requesting a withdrawal ammount | Choose an amount that the system currently has but which is greater than the account balance | System displays an appropriate message and offers customer the option of choosing to do another transaction or not.
Withdrawal | A withdrawal transaction can be cancelled by the customer any time prior to choosing the dollar amount | System is displaying menu of account types | Press "Cancel" key | System displays an appropriate message and offers customer the option of choosing to do another transaction or not.
Withdrawal | A withdrawal transaction can be cancelled by the customer any time prior to choosing the dollar amount | System is displaying menu of dollar amounts | Press "Cancel" key | System displays an appropriate message and offers customer the option of choosing to do another transaction or not.
Deposit | System asks customer to choose an account to deposit to | Menu of transaction types is being displayed | Choose Deposit transaction | System displays a menu of account types
Deposit | System asks customer to enter a dollar amount to deposit | Menu of account types is being displayed | Choose checking account | System displays a request for the customer to type a dollar amount
Deposit | System asks customer to insert an envelope | System is displaying a request for the customer to type a dollar amount | Enter a legitimate dollar amount | System requests that customer insert an envelope
Deposit | System performs a legitimate deposit transaction properly | System is requesting that customer insert an envelope | Insert an envelope | System accepts envelope; System prints a correct receipt showing amount and correct updated balance; System records transaction correctly in the log (showing message to the bank, approval back, and acceptance of the envelope)
Deposit | A deposit transaction can be cancelled by the customer any time prior to inserting an envelope | System is displaying menu of account types | Press "Cancel" key | System displays an appropriate message and offers customer the option of choosing to do another transaction or not.
Deposit | A deposit transaction can be cancelled by the customer any time prior to inserting an envelope | System is requesting customer to enter a dollar amount | Press "Cancel" key | System displays an appropriate message and offers customer the option of choosing to do another transaction or not.
Deposit | A deposit transaction can be cancelled by the customer any time prior to inserting an envelope | System is requesting customer to insert an envelope | Press "Cancel" key | System displays an appropriate message and offers customer the option of choosing to do another transaction or not.
Deposit | A deposit transaction is cancelled automatically if an envelope is not inserted within a reasonable time | System is requesting customer to insert an envelope | Wait for the request to time out | System displays an appropriate message and offers customer the option of choosing to do another transaction or not.
Transfer | System asks customer to choose an account to transfer from | Menu of transaction types is being displayed | Choose Transfer transaction | System displays a menu of account types specifying transfer from
Transfer | System asks customer to choose an account to transfer to | Menu of account types to transfer from is being displayed | Choose checking account | System displays a menu of account types specifying transfer to
Transfer | System asks customer to enter a dollar amount to transfer | Menu of account types to transfer to is being displayed | Choose savings account | System displays a request for the customer to type a dollar amount
Transfer | System performs a legitimate transfer transaction properly | System is displaying a request for the customer to type a dollar amount | Enter a legitimate dollar amount | System prints a correct receipt showing amount and correct updated balance; System records transaction correctly in the log (showing both message to the bank and approval back)
Transfer | A transfer transaction can be cancelled by the customer any time prior to entering dollar amount | System is displaying menu of account types specifying transfer from | Press "Cancel" key | System displays an appropriate message and offers customer the option of choosing to do another transaction or not.
Transfer | A transfer transaction can be cancelled by the customer any time prior to entering dollar amount | System is displaying menu of account types specifying transfer to | Press "Cancel" key | System displays an appropriate message and offers customer the option of choosing to do another transaction or not.
Transfer | A transfer transaction can be cancelled by the customer any time prior to entering dollar amount | System is requesting customer to enter a dollar amount | Press "Cancel" key | System displays an appropriate message and offers customer the option of choosing to do another transaction or not.
Inquiry | System asks customer to choose an account to inquire about | Menu of transaction types is being displayed | Choose Inquiry transaction | System displays a menu of account types
Inquiry | System performs a legitimate inquiry transaction properly | System is displaying menu of account types | Choose checking account | System prints a correct receipt showing correct balance; System records transaction correctly in the log (showing both message to the bank and approval back)
Inquiry | An inquiry transaction can be cancelled by the customer any time prior to choosing an account | System is displaying menu of account types | Press "Cancel" key | System displays an appropriate message and offers customer the option of choosing to do another transaction or not.
Invalid PIN Extension | Customer is asked to reenter PIN |  | Enter an incorrect PIN; Attempt an inquiry transaction on the customer's checking account | Customer is asked to re-enter PIN
Invalid PIN Extension | Correct re-entry of PIN is accepted | Request to re-enter PIN is being displayed | Enter correct PIN | Original transaction completes successfully
Invalid PIN Extension | A correctly re-entered PIN is used for subsequent transactions | An incorrect PIN has been re-entered and transaction completed normally | Perform another transaction | This transaction completes successfully as well
Invalid PIN Extension | Incorrect re-entry of PIN is not accepted | Request to re-enter PIN is being displayed | Enter incorrect PIN | An appropriate message is displayed and re-entry of the PIN is again requested
Invalid PIN Extension | Correct re-entry of PIN on the second try is accepted | Request to re-enter PIN is being displayed | Enter incorrect PIN the first time, then correct PIN the second time | Original transaction completes successfully
Invalid PIN Extension | Correct re-entry of PIN on the third try is accepted | Request to re-enter PIN is being displayed | Enter incorrect PIN the first time and second times, then correct PIN the third time | Original transaction completes successfully
Invalid PIN Extension | Three incorrect re-entries of PIN result in retaining card and aborting transaction | Request to re-enter PIN is being displayed | Enter incorrect PIN three times | An appropriate message is displayed; Card is retained by machine; Session is terminated

Page of links for non frames-enabled browsers.

###### Copyright © 2004 - Russell C. Bjork. Permission for non-commercial reproduction for educational use is hereby granted; all other rights are reserved.