Acceptance Criteria (AC)
Điều kiện cụ thể để biết một use case đã xong đúng. Trả lời câu hỏi: làm sao biết là xong đúng? Đây là tầng nối spec trực tiếp sang test. Thường viết dạng Given / When / Then.
Ví dụ
### AC-3: QR hết hạn
Given: QRSession đã quá 15 phút
When: payment gateway gửi webhook success
Then: Refund tự động được khởi tạo
And: Order vẫn ở trạng thái awaiting_payment
And: Log incident kèm tracking_idVì sao AC là mấu chốt của cả SDD
- Không AC thì không bắt đầu code - một trong những quy ước cứng nhất của SDD. Spec có thể dài, đẹp, nhưng thiếu AC thì khi AI viết code xong, không ai biết “xong đúng” nghĩa là gì.
- AC là cơ sở của Test-Protected: mỗi AC nên có ít nhất một test, tên test/annotation chứa UC ID + AC ID (
describe("UC-042 / AC-2: payment success")). - AC là điều kiện để AI-Assisted hoạt động an toàn - có AC thì mới đo được AC Coverage và cho AI regenerate code mà vẫn kiểm soát hành vi.
Đo AC Coverage (phần trăm AC có ít nhất một test) thường quan trọng hơn code coverage. Nếu AC không có test, việc để AI regenerate code sẽ rủi ro hơn nhiều.
Liên quan
- Use Case (UC) - AC là phần cuối, quan trọng nhất của UC
- Test-Protected - test map 1-1 với AC
- Bốn tầng của yêu cầu - AC là tầng 4
- Chỉ số đo SDD - AC Coverage là chỉ số cốt lõi