Bài 5 — Dùng AI phủ Edge Case và tình huống ngoại lệ
Vấn đề
Lỗi production đắt nhất thường không nằm ở happy path — mà ở những case ta quên nghĩ tới: dữ liệu trống, quá hạn, phân quyền, đồng thời (concurrency), mạng chập chờn, số âm, chuỗi ký tự lạ. Con người mệt sẽ sót. Đây là chỗ AI toả sáng: nó gợi ý một danh sách rộng edge case theo nhiều chiều, để bạn chọn lọc cái nào thật sự áp dụng.
Lưu ý tư duy: AI giúp bạn không quên nghĩ, chứ không thay bạn quyết case nào quan trọng.
Sáu chiều edge case cần soi
- Dữ liệu: trống, null, quá dài, ký tự đặc biệt, số âm, số 0.
- Thời gian/trạng thái: quá hạn, hết hiệu lực, đơn đã hủy, phiên hết hạn.
- Phân quyền: chưa đăng nhập, sai vai trò, tài khoản bị khóa.
- Số lượng/biên: 0 phần tử, 1, rất nhiều, vượt giới hạn.
- Đồng thời: hai người sửa cùng lúc, bấm hai lần, tồn kho tụt về 0 giữa chừng.
- Môi trường: mất mạng giữa chừng, timeout, dịch vụ ngoài lỗi.
Ví dụ cụ thể
[Ngữ cảnh 4 dòng]
Story: "Là khách hàng, tôi muốn áp mã giảm giá vào giỏ hàng,
để được giảm tiền khi thanh toán."Liệt kê edge case theo 6 chiều: dữ liệu, thời gian/trạng thái,
phân quyền, số lượng/biên, đồng thời, môi trường.
Với mỗi edge case, viết ngắn: điều kiện + hành vi mong đợi.
Đánh dấu mức rủi ro (Cao/Trung bình/Thấp) theo góc nhìn nghiệp vụ.
Không tự bịa quy tắc — nếu hành vi mong đợi phụ thuộc policy công
ty, ghi rõ "Cần xác nhận với PO".
Output mẫu (trích):
> - Thời gian: Mã đã hết hạn → chặn áp, báo "Mã đã hết hiệu lực". Cao > - Đồng thời: Mã giới hạn 100 lượt, khách áp khi vừa hết lượt → cần xác nhận với PO xử lý thế nào. Cao > - Dữ liệu: Nhập mã có khoảng trắng thừa → nên trim và vẫn nhận. Trung bình > - Số lượng: Giỏ hàng trống mà áp mã → chặn, báo lỗi. Trung bình
Bạn quét danh sách, chọn case mức Cao đưa thành AC Gherkin (Bài 3), gắn cờ những case "Cần xác nhận với PO".
Các bước làm
- Lấy story + AC happy path đã có.
- Chạy prompt "6 chiều edge case".
- Lọc: giữ case có thật với sản phẩm của bạn, bỏ case không áp dụng.
- Với case giữ lại, hỏi: đã có quy tắc xử lý chưa? Chưa → mang hỏi PO.
- Chuyển các case quan trọng thành tình huống Gherkin bổ sung.
- Đưa danh sách "Cần xác nhận với PO" vào agenda cuộc họp làm rõ.
Nâng cấp: prompt "phản biện đối kháng"
Bảo AI đóng vai kẻ phá hoại để lòi ra lỗ hổng:
Đóng vai một tester khó tính đang cố làm hỏng tính năng "áp mã
giảm giá". Liệt kê 10 cách bạn sẽ thử để phá vỡ hoặc gian lận
tính năng này. Với mỗi cách, gợi ý một acceptance criteria để
ngăn chặn.
Template tái dùng: Ma trận Edge Case
Story: __________
Chiều Edge case Hành vi mong đợi Rủi ro Có quy tắc? Dữ liệu [ ] hỏi PO Thời gian [ ] hỏi PO Phân quyền [ ] hỏi PO Số lượng/biên [ ] hỏi PO Đồng thời [ ] hỏi PO Môi trường [ ] hỏi PO
Sai lầm thường gặp
- Bê nguyên mọi edge case AI đưa vào AC. Danh sách AI rất rộng, nhiều case không liên quan sản phẩm bạn. Bê hết làm backlog phình, dev làm những thứ vô ích. Chọn lọc là việc của bạn.
- AI bịa hành vi mong đợi. Case "hết lượt mã" xử lý ra sao là policy công ty, không phải AI quyết. Ta đã ép AI ghi "Cần xác nhận với PO" — hãy tôn trọng cờ này.
- Bỏ qua chiều đồng thời và phân quyền. Đây là hai chiều BA hay quên nhất, và cũng là nơi lỗi bảo mật/nghiệp vụ nghiêm trọng ẩn nấp. Đừng bỏ.
- Rò rỉ dữ liệu khi mô tả case thật. Khi minh họa case bằng dữ liệu, dùng dữ liệu giả.
- Phụ thuộc quá mức, ngừng tự nghĩ. AI là bộ khuếch đại trí nhớ, không thay tư duy nghiệp vụ. Bạn vẫn phải hiểu vì sao một case là rủi ro cao.
Kết bài
Bạn đã có story + AC + edge case. Bài 6 lắp tất cả thành một quy trình chuẩn từng bước để làm mọi story đều nhanh và đều tay.