Bài 2 — Từ Acceptance Criteria đến Test Case với AI
Vấn đề: AC tốt nhưng test case vẫn thiếu
Ngay cả khi bạn viết AC theo chuẩn Given-When-Then, việc chuyển thành test case đầy đủ vẫn dễ sót. Một AC "Given người dùng đã đăng nhập, When bấm Thanh toán với giỏ hàng trống, Then hiển thị thông báo 'Giỏ hàng trống'" nghe đơn giản, nhưng test case thực tế phải phủ: giỏ trống, giỏ 1 món, giỏ nhiều món, sản phẩm hết hàng giữa chừng, mất mạng khi thanh toán... AI giúp bạn không bỏ sót những nhánh này.
Nguyên tắc: cho AI "khung", đừng cho AI "khoảng trống"
AI sinh test case tốt hay không phụ thuộc vào chất lượng đầu vào. Hãy cung cấp:
- AC đầy đủ (Given-When-Then hoặc dạng liệt kê điều kiện).
- Quy tắc nghiệp vụ liên quan (ngưỡng, giới hạn, vai trò).
- Định dạng test case mong muốn (các cột cần có).
- Mức độ chi tiết (chỉ tiêu đề, hay từng bước thao tác).
Ví dụ cụ thể
AC: "Người dùng nhập mã giảm giá. Mã hợp lệ và còn hạn thì giảm 10%, tối đa 50.000đ. Mã hết hạn hoặc sai thì báo lỗi. Mỗi đơn chỉ áp 1 mã."
Bạn muốn ra test case dạng bảng: ID, tiêu đề, tiền điều kiện, các bước, dữ liệu, kết quả mong đợi, độ ưu tiên.
Prompt mẫu chuyển AC thành test case
Vai trò: QA Lead. Nhiệm vụ: viết test case chi tiết từ AC.
AC:
"""
Người dùng nhập mã giảm giá. Mã hợp lệ và còn hạn giảm 10%, tối đa 50.000đ.
Mã hết hạn hoặc sai thì báo lỗi. Mỗi đơn chỉ áp 1 mã.
"""
Yêu cầu:
- Sinh test case dạng bảng Markdown với cột:
ID | Tiêu đề | Loại (Positive/Negative/Boundary) | Tiền điều kiện | Các bước | Dữ liệu | Kết quả mong đợi | Ưu tiên
- Phủ đủ: mã hợp lệ, mã sai, mã hết hạn, mã đã dùng, áp 2 mã,
giá trị giảm chạm trần 50.000đ, đơn hàng nhỏ khiến 10% < 50.000đ.
- Đánh dấu ưu tiên P1/P2/P3 theo rủi ro nghiệp vụ.
- Nếu thấy AC thiếu quy tắc (vd mã áp cho mọi sản phẩm?), liệt kê câu hỏi ở cuối.
Các bước thực hiện
- Chuẩn hóa AC về dạng có điều kiện rõ ràng trước khi đưa vào AI.
- Chạy prompt sinh bảng test case.
- Đọc phần "câu hỏi làm rõ" AI đưa ra — đây là các lỗ hổng AC bạn cần chốt với PO.
- Bổ sung câu trả lời, yêu cầu AI cập nhật bảng.
- Xuất bảng ra CSV để import vào công cụ quản lý test.
- Tự tay thêm 2–3 case đặc thù mà chỉ người hiểu nghiệp vụ nội bộ mới biết.
Kỹ thuật nâng độ bao phủ: yêu cầu AI dùng các kỹ thuật thiết kế test
Bạn có thể yêu cầu AI áp dụng phân vùng tương đương (equivalence partitioning), phân tích giá trị biên (boundary value analysis) và bảng quyết định (decision table). Ví dụ thêm vào prompt: "Áp dụng boundary value analysis cho ngưỡng 50.000đ và liệt kê case tại 49.999đ, 50.000đ, 50.001đ tương ứng."
Template test case tái sử dụng
ID: TC-[Module]-[Số]
Tiêu đề: [Hành động] - [Điều kiện] - [Kết quả kỳ vọng]
Liên kết AC: [AC-ID]
Loại: Positive / Negative / Boundary
Ưu tiên: P1 / P2 / P3
Tiền điều kiện: ...
Các bước:
1. ...
2. ...
Dữ liệu test: ...
Kết quả mong đợi: ...
Ghi chú nghiệp vụ: ...
Sai lầm thường gặp
- Ảo giác quy tắc: AI có thể tự suy diễn "mã giảm giá cộng dồn" khi AC không nói. Mọi kết quả mong đợi phải truy vết được về AC hoặc quyết định của PO, không phải suy đoán của AI.
- Rò rỉ dữ liệu: Đưa dữ liệu khách thật vào cột "Dữ liệu test". Hãy dùng dữ liệu giả (Nguyễn Văn A, email test@example.com).
- Phụ thuộc quá mức: Copy nguyên bảng AI rồi import mà không rà. AI thường sinh case trùng lặp hoặc bỏ luồng phụ đặc thù nội bộ. Luôn dành 10 phút review thủ công.