# 01.03. Decision Table (Bảng quyết định)

## Mục đích
Hệ thống hóa việc kiểm thử các quy tắc nghiệp vụ phức tạp, nơi kết quả phụ thuộc vào sự kết hợp của nhiều điều kiện đầu vào khác nhau. Kỹ thuật này đảm bảo mọi tổ hợp logic đều được xem xét và không có kịch bản nào bị bỏ sót.

## Kiến thức cần có
- Logic Boolean (AND, OR, NOT).
- Hiểu sâu về các quy tắc nghiệp vụ (Business Rules) và sự phụ thuộc giữa các điều kiện.
- Khả năng phân tích hệ quả (Actions) từ các nguyên nhân (Conditions).

## Quy trình thực hiện
1. **Liệt kê Điều kiện (Conditions):** Xác định tất cả các yếu tố đầu vào ảnh hưởng đến kết quả.
2. **Liệt kê Hành động (Actions):** Xác định tất cả các kết quả hoặc phản ứng có thể xảy ra của hệ thống.
3. **Xây dựng ma trận tổ hợp:** Tạo các cột tương ứng với tất cả các kết hợp của điều kiện (T/F hoặc Yes/No).
4. **Xác định hành động cho từng cột:** Điền kết quả mong đợi cho mỗi tổ hợp điều kiện.
5. **Tối ưu hóa bảng:** Loại bỏ các cột không thể xảy ra trong thực tế hoặc gộp các cột có cùng hành động nếu có điều kiện không ảnh hưởng (Don't care).

## Checklist
- [ ] Đã liệt kê đầy đủ tất cả các điều kiện đầu vào?
- [ ] Đã xác định chính xác các hành động đầu ra tương ứng?
- [ ] Các tổ hợp logic đã bao quát toàn bộ các trường hợp có thể xảy ra?
- [ ] Đã xử lý hoặc loại bỏ các kịch bản "bất khả thi" một cách hợp lý?

## Output mong đợi
- Bảng quyết định (Decision Table) hoàn chỉnh.
- Tập hợp các Test case được trích xuất trực tiếp từ các quy tắc (Rules) trong bảng.
