# User Story + Acceptance Criteria (Gherkin)

> Mẫu viết user story kèm tiêu chí chấp nhận theo cú pháp Given/When/Then.
> Nguồn: Khoá NextGen Business Analyst.

---

## Cấu trúc user story

> **Là** *(vai trò)*
> **Tôi muốn** *(hành động/khả năng)*
> **Để** *(giá trị nhận được)*

Phần **"Để"** là quan trọng nhất - nó trả lời câu hỏi outcome. Nếu không viết được phần này, khả năng cao yêu cầu chưa đủ rõ.

---

## Kiểm tra chất lượng story theo INVEST

- [ ] **I**ndependent - làm được độc lập, không phải chờ story khác
- [ ] **N**egotiable - còn chỗ để trao đổi cách làm, không phải bản đặc tả cứng
- [ ] **V**aluable - mang lại giá trị nhìn thấy được cho người dùng
- [ ] **E**stimable - đội phát triển ước lượng được công sức
- [ ] **S**mall - gọn trong một sprint
- [ ] **T**estable - kiểm chứng được đúng/sai

---

## US-01: *(tiêu đề ngắn)*

**Là** một khách hàng đã đăng nhập
**Tôi muốn** thanh toán đơn hàng bằng hình thức mua trước trả sau
**Để** hoàn tất đơn hàng ngay cả khi chưa đủ tiền trong tài khoản

| | |
|---|---|
| **Độ ưu tiên** | Must / Should / Could / Won't |
| **Story point** | |
| **Liên kết yêu cầu** | BR-01 |
| **Phụ thuộc** | |

### Tiêu chí chấp nhận

**AC-01 - Trường hợp thành công**
```gherkin
Given khách hàng đã đăng nhập và có hạn mức khả dụng
When khách hàng chọn phương thức "Mua trước trả sau" ở bước thanh toán
Then hệ thống hiển thị số kỳ trả góp và số tiền mỗi kỳ
And đơn hàng được tạo với trạng thái "Chờ xác nhận"
```

**AC-02 - Trường hợp không đủ hạn mức**
```gherkin
Given khách hàng đã đăng nhập nhưng hạn mức khả dụng thấp hơn giá trị đơn hàng
When khách hàng chọn phương thức "Mua trước trả sau"
Then hệ thống hiển thị thông báo nêu rõ lý do và hạn mức còn lại
And gợi ý các phương thức thanh toán khác
```

**AC-03 - Trường hợp lỗi hệ thống chấm điểm**
```gherkin
Given hệ thống chấm điểm tín dụng không phản hồi trong 5 giây
When khách hàng chọn phương thức "Mua trước trả sau"
Then hệ thống hiển thị thông báo thử lại sau
And ghi log sự cố để đội vận hành theo dõi
```

### Ghi chú cho đội phát triển

*(ràng buộc kỹ thuật, tham chiếu thiết kế, lưu ý dữ liệu)*

---

## Lỗi hay gặp khi viết AC

| Lỗi | Ví dụ sai | Sửa thành |
|---|---|---|
| Chỉ viết happy path | Chỉ có AC-01 | Bổ sung nhánh từ chối, lỗi, timeout |
| Given/When/Then mơ hồ | "Then hệ thống xử lý đúng" | "Then đơn hàng chuyển sang trạng thái Chờ xác nhận" |
| Nhồi nhiều điều kiện vào 1 AC | 5 When liên tiếp | Tách thành nhiều AC riêng |
| Mô tả giao diện thay vì hành vi | "Then hiện nút màu xanh" | "Then khách hàng có thể xác nhận đơn" |
