Ngày nay, cùng với sự phát triển của nền kinh tế, số lượng các ngân hàng ngày càng tăng, số lượng máy rút tiền cũng tăng theo và các giao dịch qua máy ATM trở nên phổ biến. Máy ATM bản thân nó là một thiết bị phức tạp, tương tác với người dùng, và tương tác với cơ sở dữ liệu của ngân hàng và là một hệ thống đòi hỏi tính an toàn cao. Việc kiểm thử chất lượng của máy ATM để đảm bảo là máy không gặp lỗi là một việc khó khăn. Vì vậy ở đây, luận văn áp dụng phương pháp kết hợp cả kiểm chứng mô hình và kỹ thuật kiểm thử đột biến để đảm bảo tính chính xác, tính hoạt động được, và bao phủ được nhiều lỗi nhất cho chương trình.
Vì máy ATM là một thiết bị phức tạp, với nhiều tương tác, nên luận văn chỉ giới thiệu và thực hiện kiểm chứng, kiểm thử trên một thiết kế đơn giản, đã bỏ bớt đi một số tương tác phức tạp. Theo [7], máy ATM được mô tả với các chức năng chính:
Đăng nhập vào tài khoản Rút tiền (Withdraw) Gửi tiền (Deposit)
Truy vấn tài khoản (Inquiry balance)
Chức năng đăng nhập cho phép người dùng đưa thẻ vào máy vào nhập mã PIN của thẻ. Nếu người dùng nhập đúng mã PIN sau nhiều nhất là ba lần thử, thì hệ thống sẽ hiện lên một thực đơn cho phép người dùng chọn các chức năng: rút tiền, gửi tiền và kiểm tra tài khoản. Người dùng được phép nhập sai mã PIN hai lần, nếu nhập sai mã PIN đến lần thứ ba thì thẻ bị khóa.
Chức năng rút tiền được thực hiện sau khi đăng nhập thành công, người dùng được phép rút tiền, số tiền được rút không được nhiều hơn số tiền trong tài khoản của họ. Nếu số tiền trong tài khoản nhỏ hơn số tiền người dùng muốn rút, thì hệ thống báo lỗi. Nếu số tiền trong tài khoản lớn hơn số tiền người dùng muốn rút thì hệ thống cho phép người dùng rút tiền. Để cho bài toán đủ đơn giản, tác giả để mặc định là người dùng chỉ được rút 10$ hay 20$, và người dùng cũng không được rút quá năm lần trong
một giao dịch thẻ. Nếu người dùng thực hiện thao tác rút tiền lần thứ sáu thì hệ thống sẽ thông báo lỗi.
Chức năng gửi tiền được thực hiện sau khi đăng nhập thành công, người dùng được phép gửi tiền vào tài khoản. Để cho bài toán đủ đơn giản, và hệ là một hệ đóng thì người dùng chỉ được phép gửi tiền với hai mức là 10$ hoặc 20$ và khách hàng chỉ được gửi tiền năm lần trong một lần giao dịch thẻ. Nếu người dùng thực hiện thao tác gửi tiền lần thứ sáu thì hệ thống thông báo lỗi.
Chức năng truy vấn tài khoản được thực hiện sau khi đăng nhập thành công, người dùng được phép truy vấn tài khoản. Hệ thống trả lại thông báo số tiền có trong tài khoản của người dùng.