Test Scenario
Mô tả ngắn một tình huống cần kiểm thử ở mức nghiệp vụ, chưa đi vào từng bước bấm. Một scenario thường đẻ ra nhiều test case chi tiết bên dưới.
Định nghĩa
Nếu test case trả lời câu hỏi "chạy thế nào", thì test scenario trả lời câu hỏi "cần thử tình huống gì". Scenario viết một dòng, kiểu "Khách thanh toán đơn bằng ví nhưng số dư không đủ". Từ dòng đó QC mới tách ra các case chi tiết.
Test scenario là danh sách tình huống ở mức nghiệp vụ, dùng để rà xem mình đã nghĩ tới đủ trường hợp chưa.
Vì sao cần một tầng ở giữa
Nhảy thẳng từ tài liệu yêu cầu xuống test case chi tiết thì rất dễ sót. Bạn cắm mặt vào viết các bước, viết được 40 case rồi mới nhận ra chưa ai nghĩ tới trường hợp khách hủy đơn giữa lúc đang thanh toán.
Tầng scenario gần như không tốn gì. Nó là danh sách gạch đầu dòng, sửa nhanh, ai đọc cũng hiểu, kể cả người phía khách hàng không rành kỹ thuật. Khi cần ước lượng công sức test, đếm scenario cũng nhanh hơn đếm case.
So sánh với test case
| Tiêu chí | Test Scenario | Test Case |
|---|---|---|
| Mức chi tiết | Một câu mô tả tình huống | Từng bước, dữ liệu, kết quả mong đợi |
| Số lượng | Ít, dễ đọc hết | Nhiều, thường gấp 3–10 lần |
| Ai đọc được | Khách hàng, BA, PM | QC, dev |
| Dùng để | Rà độ phủ, ước lượng | Thực thi, ghi kết quả pass/fail |
| Thay đổi | Ít khi đổi | Đổi mỗi lần giao diện hoặc luồng đổi |
Viết ở mức nào cho vừa
Một scenario tốt gói được một mục đích nghiệp vụ và một điều kiện đáng chú ý. Ví dụ với chức năng đăng ký gói cước:
- Đăng ký gói tháng thành công bằng thẻ nội địa
- Đăng ký khi thẻ bị từ chối bởi ngân hàng
- Đăng ký gói mới trong khi gói cũ chưa hết hạn
- Gia hạn tự động thất bại vào ngày đến hạn
- Hủy gói giữa chu kỳ và yêu cầu hoàn tiền theo tỉ lệ
Năm dòng, đọc xong biết ngay còn thiếu gì. Nếu bạn viết scenario mà thấy nó dài như một đoạn hướng dẫn thao tác, tức là bạn đã tụt xuống tầng test case rồi.
Ví dụ thực tế
"Thế khách hẹn lại lần thứ ba thì tính là lượt mới hay lượt cũ?" Câu hỏi của một chị điều phối, ném ra giữa buổi đọc danh sách scenario cho hệ thống đặt lịch bảo trì điều hòa tận nhà — mùa nóng khoảng 380 lượt hẹn mỗi ngày.
BA và QC liệt kê được 47 dòng. Đội điều phối đọc xong bổ sung thêm 9 tình huống chưa ai nghĩ tới: khách hẹn lại lần ba, thợ chỉ xử lý được một phần rồi phải quay lại hôm sau, và khách từ chối nghiệm thu vì máy vẫn kêu trong khi đã thanh toán online.
Chín dòng đó sau này thành 26 test case và tìm ra 4 defect. Đội điều phối đọc scenario được vì nó viết bằng tiếng người. Đưa họ nguyên bộ test case thì đến case thứ mười lăm là bắt đầu gật cho xong.
Mẹo khi đi làm
Lấy sơ đồ luồng nghiệp vụ ra, đi theo từng nhánh rẽ, mỗi nhánh ít nhất một scenario. Đi hết nhánh chính rồi mới quay lại nghĩ tới lỗi hệ thống: mất mạng giữa chừng, timeout, người dùng bấm hai lần, mở hai tab.
Sau đó đánh dấu mức rủi ro cho từng scenario. Khi lịch bị ép và không kịp test hết, bạn còn cơ sở để cắt phần rủi ro thấp thay vì cắt bừa phần cuối danh sách.
