$npx -y skills add anhtester/codex-testing-kit --skill rbt-manual-testingSkill sinh manual test cases với 2 modes — QUICK (sinh nhanh từ requirements) và FULL RBT (quy trình AI-RBT 6 bước có đánh giá rủi ro). Master skill cho mọi tác vụ manual test case.
| 1 | # RBT Manual Testing |
| 2 | |
| 3 | ## Description |
| 4 | |
| 5 | Đây là **Master Skill** cho mọi tác vụ sinh manual test cases. Skill cung cấp **2 chế độ hoạt động** (modes) để phù hợp với mọi quy mô yêu cầu: |
| 6 | |
| 7 | | Mode | Khi nào dùng | Thời gian | |
| 8 | |------|-------------|-----------| |
| 9 | | **QUICK** | Module đơn giản, cần TC nhanh, requirements rõ ràng | 1 lượt (không chờ user) | |
| 10 | | **FULL RBT** | Module phức tạp, cần phân tích rủi ro, hệ thống lớn | 6 bước tuần tự (có checkpoint) | |
| 11 | |
| 12 | **Nguyên tắc cốt lõi:** |
| 13 | - **Human Strategy:** Con người xác định chiến lược, mức độ rủi ro và tiêu chuẩn |
| 14 | - **AI Execution:** AI thực hiện phân tích, viết TCs và rà soát lỗ hổng |
| 15 | - **Human Verification:** Con người kiểm tra lại kết quả trước khi chốt |
| 16 | |
| 17 | --- |
| 18 | |
| 19 | ## When to Use |
| 20 | |
| 21 | Sử dụng skill này khi: |
| 22 | |
| 23 | - Sinh manual test cases từ requirements / user stories |
| 24 | - Phân tích requirements để phát hiện ambiguity |
| 25 | - Phân rã hệ thống thành modules / features |
| 26 | - Xây dựng traceability matrix |
| 27 | - Áp dụng Risk-Based Testing (đánh giá rủi ro cho test cases) |
| 28 | - Chuẩn hóa test cases sang bảng Markdown (Jira/Excel format) |
| 29 | - Sinh test cases nhanh từ requirements đơn giản |
| 30 | |
| 31 | **KHÔNG** sử dụng skill này khi: |
| 32 | |
| 33 | - Cần sinh automation code → dùng `$qa-automation-engineer` |
| 34 | - Cần inspect DOM / sinh locator → dùng `$ui-debug-agent` / `$smart-locator-agent` |
| 35 | - Chỉ cần sinh test data → dùng `$test-data-generator` |
| 36 | |
| 37 | --- |
| 38 | |
| 39 | ## Mode Routing — Cách chọn mode |
| 40 | |
| 41 | Agent tự động chọn mode dựa trên **trigger keywords** và **ngữ cảnh**: |
| 42 | |
| 43 | ### → Mode QUICK |
| 44 | |
| 45 | Kích hoạt khi: |
| 46 | - User dùng workflow `$generate-testcases-from-requirements` |
| 47 | - User nói: "sinh test cases nhanh", "tạo TC từ requirement này", "viết test cases cho form..." |
| 48 | - Requirements đã rõ ràng, scope nhỏ (1 module / 1 tính năng) |
| 49 | - User không yêu cầu phân tích rủi ro hay quy trình bài bản |
| 50 | |
| 51 | ### → Mode FULL RBT |
| 52 | |
| 53 | Kích hoạt khi: |
| 54 | - User dùng workflow `$generate-manual-testcases-rbt` |
| 55 | - User nói: "quy trình 6 bước", "phân tích RBT", "sinh test cases đầy đủ", "sinh bộ TC bài bản" |
| 56 | - Scope lớn (nhiều modules, hệ thống phức tạp) |
| 57 | - User yêu cầu Traceability Matrix hoặc đánh giá Risk Level |
| 58 | - Requirements chưa rõ ràng, cần phân tích Ambiguity |
| 59 | |
| 60 | ### → Khi không rõ |
| 61 | |
| 62 | Nếu không xác định được mode, agent **hỏi user**: |
| 63 | ``` |
| 64 | Bạn muốn sinh test cases theo chế độ nào? |
| 65 | 1. QUICK — Sinh nhanh từ requirements (không qua bước phân tích) |
| 66 | 2. FULL RBT — Quy trình 6 bước đầy đủ (phân tích → phân rã → RBT → sinh TC) |
| 67 | ``` |
| 68 | |
| 69 | --- |
| 70 | |
| 71 | # Mode 1: QUICK — Sinh Test Cases Nhanh |
| 72 | |
| 73 | ## Mục đích |
| 74 | |
| 75 | Sinh test cases **nhanh, đủ chất lượng** từ requirements/user stories đã rõ ràng, phù hợp cho module đơn giản hoặc khi cần kết quả ngay. |
| 76 | |
| 77 | ## Quy trình (1 lượt duy nhất) |
| 78 | |
| 79 | **Agent phải:** |
| 80 | |
| 81 | 1. **Đọc và hiểu requirements** được cung cấp |
| 82 | 2. **Xác định các luồng chính:** |
| 83 | - Happy Path (luồng chính) |
| 84 | - Negative Path (dữ liệu sai, thiếu) |
| 85 | - Boundary Cases (giá trị biên) |
| 86 | 3. **Áp dụng kỹ thuật thiết kế test case** tự động: |
| 87 | - **Equivalence Partitioning (EP):** Chia input thành nhóm tương đương |
| 88 | - **Boundary Value Analysis (BVA):** Test giá trị tại ranh giới |
| 89 | - **Decision Table:** Liệt kê tổ hợp điều kiện (nếu có nhiều rules) |
| 90 | - **State Transition:** Test chuyển đổi trạng thái (nếu có workflow) |
| 91 | 4. **Validation chuyên biệt từng trường (Field-Level Validation):** |
| 92 | - Liệt kê **tất cả input fields** trên form/UI |
| 93 | - Sinh validation test cases **riêng cho TỪNG trường** theo đặc tính riêng của nó |
| 94 | - Áp dụng checklist validation theo loại field (xem bảng Field-Level Validation bên dưới) |
| 95 | - **KHÔNG** gộp validation nhiều trường vào 1 test case |
| 96 | 5. **Sinh test cases** với đầy đủ fields: |
| 97 | - TC ID (format: `[DỰ_ÁN]_[MODULE]_TC_[SỐ]`) |
| 98 | - Module |
| 99 | - Test Case Title / Test Scenario |
| 100 | - Pre-conditions |
| 101 | - Test Steps (đánh số) |
| 102 | - Expected Results (đánh số tương ứng) |
| 103 | - Test Data (**phải cụ thể**, không placeholder) |
| 104 | - Priority (Critical / High / Medium / Low) |
| 105 | 6. **Xuất ra bảng Markdown** chuẩn, sẵn sàng copy sang Excel/Jira |
| 106 | |
| 107 | ## Bảng Output |
| 108 | |
| 109 | ``` |
| 110 | | TC ID | Module | Test Scenario | Pre-Condition | Test Steps | Test Data | Expected Result | Priority | |
| 111 | ``` |
| 112 | |
| 113 | ## Quy tắc Test Data (áp dụng cho cả 2 modes) |
| 114 | |
| 115 | ``` |
| 116 | ❌ Sai: "Nhập mã số hợp lệ" |
| 117 | ✅ Đúng: "Nhập mã: KH-2026-0012" |
| 118 | |
| 119 | ❌ Sai: "Nhập email hợp lệ" |
| 120 | ✅ Đúng: "Nhập email: test_khachhang_01@domain.com" |
| 121 | |
| 122 | ❌ Sai: "Nhập giá trị vượt giới hạn" |
| 123 | ✅ Đúng: "Nhập 256 ký tự vào trường Name (max: 255)" |
| 124 | ``` |
| 125 | |
| 126 | ## Bảng Field-Level Validation (áp dụng cho cả 2 modes) |
| 127 | |
| 128 | Khi form/UI có các input fields, agent **BẮT BUỘC** phải liệt kê từng trường và sinh validation TCs riêng theo loại: |
| 129 | |
| 130 | | Loại Field | Validation cần test | |
| 131 | |---|---| |
| 132 | | **Text (Name, Address...)** | Required/Optional · Min length · Max length · Chỉ khoảng trắng (whitespace-only) · Ký tự đặc biệt (`<>&"'`) · XSS injection (`<script>alert(1)</script>`) · SQL injection (`' OR 1=1--`) · Unicode/Emoji · Leading/trailing spa |