@relipa/ai-flow-kit 0.1.3 → 0.1.4-beta.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (64) hide show
  1. package/README.md +113 -0
  2. package/bin/aiflow.js +49 -1
  3. package/custom/skills/ba-skills/skill-ba-phan-tich-ban-dau-v1.md +44 -0
  4. package/custom/skills/ba-skills/skill-ba-prototype-v1.md +35 -0
  5. package/custom/skills/ba-skills/skill-ba-qa-template-v1.md +21 -0
  6. package/custom/skills/ba-skills/skill-ba-qa-v1.md +35 -0
  7. package/custom/skills/ba-skills/skill-ba-template-phan-tich-ban-dau-v1.md +30 -0
  8. package/custom/skills/ba-skills/skill-ba-template-uc-v1.md +83 -0
  9. package/custom/skills/ba-skills/skill-ba-ve-luong-mermaid-v1.md +35 -0
  10. package/custom/skills/ba-skills/skill-ba-viet-spec-uc-v1.md +38 -0
  11. package/custom/skills/ba-skills/skill-ba-xay-dung-business-rules-v1.md +39 -0
  12. package/custom/skills/execute-flow/SKILL.md +22 -2
  13. package/custom/skills/gate-review/SKILL.md +195 -0
  14. package/custom/skills/generate-test-report/SKILL.md +1 -1
  15. package/custom/skills/generate-testcase/SKILL.md +52 -5
  16. package/custom/skills/test-analysis/SKILL.md +39 -1
  17. package/custom/skills/test-skills/categories/00-core/00.01.requirement-analysis.md +111 -0
  18. package/custom/skills/test-skills/categories/00-core/00.02.risk-analysis.md +24 -0
  19. package/custom/skills/test-skills/categories/00-core/00.03.test-scenario-builder.md +90 -0
  20. package/custom/skills/test-skills/categories/00-core/00.04.testcase-review.md +68 -0
  21. package/custom/skills/test-skills/categories/01-test-design/01.01.boundary-value-analysis.md +30 -0
  22. package/custom/skills/test-skills/categories/01-test-design/01.02.equivalence.partitioning.md +27 -0
  23. package/custom/skills/test-skills/categories/01-test-design/01.03.decision-table.md +26 -0
  24. package/custom/skills/test-skills/categories/01-test-design/01.04.state.transition.md +26 -0
  25. package/custom/skills/test-skills/categories/01-test-design/01.05.pairwise.md +25 -0
  26. package/custom/skills/test-skills/categories/01-test-design/01.06.error-guessing.md +28 -0
  27. package/custom/skills/test-skills/categories/02-ui-testing/02.01.UI-layout.md +29 -0
  28. package/custom/skills/test-skills/categories/02-ui-testing/02.02.form-validation.md +57 -0
  29. package/custom/skills/test-skills/categories/02-ui-testing/02.03.navigation.md +27 -0
  30. package/custom/skills/test-skills/categories/02-ui-testing/02.04.localization.md +27 -0
  31. package/custom/skills/test-skills/categories/02-ui-testing/02.05.accessibility.md +27 -0
  32. package/custom/skills/test-skills/categories/03-business-testing/03.01.CRUD-testing.md +51 -0
  33. package/custom/skills/test-skills/categories/03-business-testing/03.02.workflow-testing.md +44 -0
  34. package/custom/skills/test-skills/categories/03-business-testing/03.03.permission-testing.md +41 -0
  35. package/custom/skills/test-skills/categories/03-business-testing/03.04.dependency-validation.md +40 -0
  36. package/custom/skills/test-skills/categories/03-business-testing/03.05.notification-testing.md +43 -0
  37. package/custom/skills/test-skills/categories/03-business-testing/03.06.calculation.testing.md +44 -0
  38. package/custom/skills/test-skills/categories/04-data-testing/04.01.database-testing.md +43 -0
  39. package/custom/skills/test-skills/categories/04-data-testing/04.02.import-export-testing.md +43 -0
  40. package/custom/skills/test-skills/categories/04-data-testing/04.03.data-mapping.md +39 -0
  41. package/custom/skills/test-skills/categories/04-data-testing/04.04.duplicate-handling.md +39 -0
  42. package/custom/skills/test-skills/categories/04-data-testing/04.05.migration.md +42 -0
  43. package/custom/skills/test-skills/categories/05-integration/05.01.API-testing.md +37 -0
  44. package/custom/skills/test-skills/categories/05-integration/05.02.third-party-integration.md +36 -0
  45. package/custom/skills/test-skills/categories/05-integration/05.03.batch-processing.md +38 -0
  46. package/custom/skills/test-skills/categories/05-integration/05.04.file-upload-download.md +40 -0
  47. package/custom/skills/test-skills/categories/08-domain-skills/CMS.md +34 -0
  48. package/custom/skills/test-skills/categories/08-domain-skills/Ecommerce.md +35 -0
  49. package/custom/skills/test-skills/categories/99-review/99.01.coverage-review.md +35 -0
  50. package/custom/skills/test-skills/categories/99-review/99.02.knowledge-learning.md +34 -0
  51. package/custom/skills/test-skills/categories/99-review/99.03.repository-update.md +33 -0
  52. package/custom/skills/test-skills/categories/99-review/99.04.change-history.md +38 -0
  53. package/custom/skills/test-skills/rules/Directory_and_Naming_Convention.md +257 -0
  54. package/custom/skills/test-skills/rules/QA_Writing_Standards.md +49 -0
  55. package/custom/skills/test-skills/template/template_testcase.md +92 -0
  56. package/custom/templates/shared/create-spec-workflow.md +441 -0
  57. package/custom/templates/shared/create-testcase-workflow.md +470 -0
  58. package/custom/templates/shared/gate-workflow.md +122 -16
  59. package/package.json +2 -2
  60. package/scripts/create-score-excel.js +17 -7
  61. package/scripts/init.js +48 -1
  62. package/scripts/review.js +91 -0
  63. package/scripts/update.js +4 -1
  64. package/scripts/use.js +22 -16
@@ -0,0 +1,195 @@
1
+ ---
2
+ name: gate-review
3
+ description: Generate a checkbox review file for a gate output and verify it when APPROVED is received. Called at every gate pause point in both dev and tester workflows.
4
+ keywords: gate review, checkbox, review file, approved, mandatory review
5
+ ---
6
+
7
+ # Gate Review — Mandatory Checkbox Protocol
8
+
9
+ > **Purpose:** Prevent blind approval. Every gate output gets a review file with one checkbox per key section. Developer checks off items in VSCode. APPROVED is only accepted after all items are checked.
10
+
11
+ ---
12
+
13
+ ## When to invoke this skill
14
+
15
+ This skill is invoked in **two modes** at every gate pause point:
16
+
17
+ | Mode | When | What AI does |
18
+ |------|------|-------------|
19
+ | `generate` | Immediately after AI finishes gate output | Write `.aiflow/review/gate-N-[ticket].md` |
20
+ | `verify` | When developer types `APPROVED` | Run `ak review check`, interpret result, proceed or block |
21
+
22
+ ---
23
+
24
+ ## File Naming Rules
25
+
26
+ **Standard gates (Dev and Tester):**
27
+
28
+ ```
29
+ .aiflow/review/gate-[N]-[ticket-id].md
30
+ ```
31
+
32
+ **Tester Gate 2 sub-phases only:**
33
+
34
+ Tester Gate 2 produces multiple review files — one per sub-phase. Use a letter suffix instead of the base gate number alone:
35
+
36
+ ```
37
+ .aiflow/review/gate-2a-[ticket-id].md ← first sub-phase
38
+ .aiflow/review/gate-2b-[ticket-id].md ← second sub-phase
39
+ .aiflow/review/gate-2c-[ticket-id].md ← third sub-phase
40
+ (and so on)
41
+ ```
42
+
43
+ > **IMPORTANT:** Do NOT use `gate-2-[ticket].md` for Tester Gate 2 sub-phases. Always use the lettered form (`gate-2a`, `gate-2b`, etc.) so each sub-phase has its own distinct review file and the `ak review check` command can target the correct file.
44
+
45
+ ---
46
+
47
+ ## Mode 1: GENERATE — Write Review File
48
+
49
+ ### Step 1: Extract checklist items from gate output
50
+
51
+ Read the output you just created. For each **top-level section** in the output, create one checklist item — a one-line summary of what that section contains. The summary must be specific enough to identify the content without opening the output file.
52
+
53
+ **Extraction rules:**
54
+ - One item per top-level section (H2 heading or named block)
55
+ - Format: `**[Section name]**: [one-line summary of actual content]`
56
+ - Maximum 12 items per gate. If more than 12 sections, group related ones.
57
+ - The summary is the actual content, not a description of the category. ✅ "Scope: Auth module + User management (payment OUT of scope)" not ❌ "Scope: the scope section"
58
+
59
+ **Examples by gate:**
60
+
61
+ Dev Gate 1 (requirement.md has 4 sections → 4 items):
62
+ ```
63
+ - [ ] **Requirements Summary**: Add batch export endpoint returning signed S3 URL, triggered by POST /exports
64
+ - [ ] **Proposed Solution**: New ExportService + S3Adapter; reuse existing AuthMiddleware for permissions
65
+ - [ ] **Impact Analysis**: Medium — touches ExportController, UserService (permission check added)
66
+ - [ ] **Effort Estimate**: M (3–4 days)
67
+ ```
68
+
69
+ Tester Gate 1 (test-analysis.md):
70
+ ```
71
+ - [ ] **Scope**: Auth module + User management only; payment and notifications OUT of scope
72
+ - [ ] **Functional Analysis**: Login, logout, session management, password reset, role-based access (3 roles)
73
+ - [ ] **Risk Areas**: High — session token handling; Medium — email format validation
74
+ - [ ] **Test Approach**: 60% automation (Playwright), 40% manual; ~18 TCs estimated
75
+ - [ ] **Effort Estimate**: M (2–3 days)
76
+ ```
77
+
78
+ ### Step 2: Write the review file
79
+
80
+ **File path:** `.aiflow/review/gate-[N]-[ticket-id].md`
81
+
82
+ For Tester Gate 2 sub-phases, use the lettered form: `.aiflow/review/gate-2a-[ticket-id].md`, `.aiflow/review/gate-2b-[ticket-id].md`, etc.
83
+
84
+ Where `[ticket-id]` comes from `.aiflow/context/current.json` → `ticketId` field. If ticketId is unavailable, use `unknown`.
85
+
86
+ **File template:**
87
+
88
+ ```markdown
89
+ # Gate [N] Review — [TICKET-ID]
90
+ > Status: PENDING | Generated: YYYY-MM-DD
91
+
92
+ ## How to review
93
+ - Toggle `[ ]` → `[x]` for each item you have read and agree with
94
+ - Add a comment under any item you want changed: `<!-- your comment here -->`
95
+ - Type `APPROVED` in chat when done
96
+
97
+ ---
98
+
99
+ ## Checklist
100
+
101
+ - [ ] **[Section]**: [one-line summary]
102
+ - [ ] **[Section]**: [one-line summary]
103
+ (... one per section, max 12)
104
+
105
+ ---
106
+
107
+ ## Review Notes
108
+ <!-- Optional: overall notes -->
109
+ ```
110
+
111
+ ### Step 3: Display gate pause message
112
+
113
+ After writing the file, display in chat:
114
+
115
+ ```
116
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
117
+ ⏸️ GATE [N] PAUSED — REVIEW REQUIRED
118
+
119
+ 📋 Open in VSCode: [.aiflow/review/gate-[N]-[ticket-id].md](.aiflow/review/gate-[N]-[ticket-id].md)
120
+
121
+ • Toggle [ ] → [x] for each item you agree with
122
+ • Add <!-- comment --> under any item needing changes
123
+ • Type APPROVED when all items are addressed
124
+
125
+ ⚠️ APPROVED will not be accepted until all checkboxes are checked.
126
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
127
+ ```
128
+
129
+ ---
130
+
131
+ ## Mode 2: VERIFY — Check Review File on APPROVED
132
+
133
+ When the developer types `APPROVED`, run this before accepting:
134
+
135
+ ### Step 1: Run CLI check
136
+
137
+ ```bash
138
+ ak review check --gate [N] --ticket [ticket-id]
139
+ ```
140
+
141
+ For Tester Gate 2 sub-phases, pass the lettered gate identifier:
142
+
143
+ ```bash
144
+ ak review check --gate 2a --ticket [ticket-id]
145
+ ak review check --gate 2b --ticket [ticket-id]
146
+ ```
147
+
148
+ ### Step 2: Interpret result
149
+
150
+ **Exit code 0 — all checked:**
151
+ - Gate proceeds normally
152
+ - Run telemetry: `ak gate [N] approved --ticket [ticket-id]`
153
+ - Continue to next gate
154
+
155
+ **Exit code 1 — file missing:**
156
+ ```
157
+ ✗ Review file not found for gate N, ticket PROJ-33
158
+ ```
159
+ AI response:
160
+ > "The review file wasn't found. Let me regenerate it."
161
+ Then re-run Mode 1 (generate) and display the gate pause message again.
162
+
163
+ **Exit code 1 — items with comments (need revision):**
164
+ ```
165
+ Items with comments (need AI revision):
166
+ • **Risk Areas**: High — session token handling
167
+ Comment: "Missing: SQL injection risk on login form"
168
+ ```
169
+ AI response:
170
+ 1. Read each comment
171
+ 2. Update the specific section in the gate output file
172
+ 3. Rewrite only the flagged items in the review file (keep already-checked `[x]` items as-is)
173
+ 4. Display updated gate pause message
174
+
175
+ **Exit code 1 — unchecked items, no comment:**
176
+ ```
177
+ Items unchecked (no comment):
178
+ • **Scope**: Auth module only
179
+ ```
180
+ AI response:
181
+ > "Item(s) are unchecked without a comment. Please either:
182
+ > - Check `[x]` if you agree with the content, or
183
+ > - Add `<!-- your comment -->` on the next line if you want changes."
184
+ Do NOT re-generate. Wait for developer to update the file.
185
+
186
+ ---
187
+
188
+ ## Mandatory Rules
189
+
190
+ - ❌ **NEVER** accept `APPROVED` without first running `ak review check`
191
+ - ❌ **NEVER** re-generate already-checked `[x]` items when doing a partial revision
192
+ - ✅ **ALWAYS** create `.aiflow/review/` directory if it doesn't exist (use `mkdir -p`)
193
+ - ✅ **ALWAYS** use the ticket ID from `.aiflow/context/current.json` in the file name
194
+ - ✅ **ALWAYS** keep review items specific to the actual content — not generic category names
195
+ - ✅ **ALWAYS** use lettered suffixes (`gate-2a`, `gate-2b`, …) for Tester Gate 2 sub-phases — never plain `gate-2`
@@ -75,7 +75,7 @@ Coverage: [N]% acceptance criteria covered
75
75
  Recommendation: [Go / No-Go / Conditional go]
76
76
  [Nếu Conditional: điều kiện cụ thể]
77
77
 
78
- → Review: test-plan/test-report.md
78
+ → Review: [test-plan/test-report.md](test-plan/test-report.md)
79
79
  → Type APPROVED to sign off and submit to Backlog/Jira
80
80
  → Type NO-GO: [reason] to reject release
81
81
  ```
@@ -21,6 +21,29 @@ Trước khi tạo bất kỳ testcase nào:
21
21
  - Nếu requirement chưa rõ → hỏi TESTER từng câu một, chờ trả lời
22
22
  - **KHÔNG tạo testcase ở bước này**
23
23
 
24
+ **Bước 1b — Đọc Source Code (nếu workspace có source repos):**
25
+
26
+ Chạy ngay sau khi đọc `test-analysis.md`, trước khi phân tích scenarios.
27
+
28
+ Nếu workspace mở dạng parent folder chứa cả `ak docs` lẫn source code repos:
29
+
30
+ 1. Xác định repo từ `test-analysis.md` (field Repo) hoặc từ ticket context. Nếu không rõ → hỏi 1 câu
31
+ 2. **Nếu GitNexus MCP có sẵn** (`.mcp.json` có entry `gitnexus`):
32
+ - `gitnexus: query("tên màn hình hoặc chức năng")` → tìm code liên quan
33
+ - `gitnexus: context("ClassName")` → xem service/controller đầy đủ
34
+ 3. **Nếu không có GitNexus**: đọc trực tiếp:
35
+ - Validation rules / Form request / DTO — tìm constraint thực tế (max length, regex, required)
36
+ - Service / Business Logic — tìm business rules ẩn không có trong spec
37
+ - API response format — xác định expected result chính xác
38
+ - Data models / DB schema — tìm DB constraint, unique, nullable
39
+ 4. Bổ sung vào phân tích:
40
+ - Validation cases từ code (độ dài max, format regex, required vs optional)
41
+ - Business rules phát hiện trong service layer
42
+ - Edge cases từ DB constraint (unique violation, FK constraint)
43
+ - Điểm không nhất quán giữa spec và code thực tế → đặt câu hỏi với TESTER
44
+
45
+ > ⚠️ Source code chỉ dùng để **mở rộng coverage** — thêm test cases dựa trên code thực tế. Expected result vẫn lấy từ ticket/spec của BA/PM, **không lấy từ code**.
46
+
24
47
  ---
25
48
 
26
49
  ### Bước 2 — Dev Artifacts Check (Phase 2a — trước checklist)
@@ -80,7 +103,7 @@ Liệt kê scenarios theo nhóm, output vào `test-plan/checklist.md`:
80
103
  ⏸️ GATE 2 — PHASE 2a: SCENARIOS READY
81
104
  Scenarios: [N] total
82
105
  - Functional: [N] | Non-functional: [N] | Integration: [N] | Exploratory: [N] | Regression: [N]
83
- → Review: test-plan/checklist.md
106
+ → Review: [test-plan/checklist.md](test-plan/checklist.md)
84
107
  → Type APPROVED to proceed to Phase 2b
85
108
  ```
86
109
 
@@ -158,8 +181,8 @@ Output testcases: `test-plan/test-cases/[ScreenID]-testcases.md`
158
181
  ```
159
182
  ⏸️ GATE 2 — PHASE 2b: TESTCASES GENERATED
160
183
  Test cases: [N] total ([N] positive / [N] negative / [N] edge)
161
- Test plan: test-plan/test-plan.md
162
- → Review: test-plan/test-cases/
184
+ Test plan: [test-plan/test-plan.md](test-plan/test-plan.md)
185
+ → Review: [test-plan/test-cases/](test-plan/test-cases/)
163
186
  → Type APPROVED to proceed to Phase 2c (Review & Optimize)
164
187
  → Or provide feedback to update
165
188
  ```
@@ -209,11 +232,26 @@ Kiểm tra theo thứ tự, output vào `test-plan/review-report.md`:
209
232
  ```
210
233
  ⏸️ GATE 2 — PHASE 2c: REVIEW COMPLETE
211
234
  Issues: [N] duplicate | [N] problematic | [N] to optimize | [N] missing
212
- Review: test-plan/review-report.md
213
- Type APPROVED to proceed to Phase 2d (Coverage Check & Final Output)
235
+ High priority chưa xử lý: [N]
236
+ Review: [test-plan/review-report.md](test-plan/review-report.md)
237
+ → Type APPROVED to proceed to Phase 2d (chỉ khi High priority = 0)
214
238
  → Or provide specific fixes to apply
215
239
  ```
216
240
 
241
+ **Nếu nhận được APPROVED mà còn issues Priority High chưa xử lý → từ chối ngay:**
242
+
243
+ ```
244
+ ⛔ PHASE 2c BLOCKED — Còn [N] issues Priority HIGH chưa được xử lý:
245
+
246
+ | TC_ID | Vấn đề | Đề xuất sửa |
247
+ |-------|--------|------------|
248
+ | [TC_ID] | [vấn đề] | [đề xuất] |
249
+
250
+ → Cung cấp fixes cho các issues trên, sau đó gõ APPROVED.
251
+ ❌ APPROVED chỉ được chấp nhận khi không còn issues Priority High.
252
+ Medium và Low có thể defer — không block APPROVED.
253
+ ```
254
+
217
255
  ---
218
256
 
219
257
  ## Validation Rules — 14 Field Types
@@ -301,3 +339,12 @@ Issues: [N] duplicate | [N] problematic | [N] to optimize | [N] missing
301
339
  | **High** | Chức năng chính không hoạt động đúng |
302
340
  | **Medium** | Chức năng phụ bị ảnh hưởng, workaround có thể có |
303
341
  | **Low** | UI/UX nhỏ, cosmetic, không ảnh hưởng chức năng |
342
+
343
+ ---
344
+
345
+ ## Mandatory Rules
346
+
347
+ - ✅ **PHẢI** dừng và chờ APPROVED sau mỗi Phase (2a → 2b → 2c → 2d)
348
+ - ❌ **KHÔNG chấp nhận APPROVED** ở Phase 2c khi còn issues Priority **High** chưa được xử lý — từ chối và hiển thị danh sách issues cần fix
349
+ - ✅ Medium và Low issues không block APPROVED — có thể defer
350
+ - ❌ **KHÔNG** tự động chuyển phase mà không có APPROVED từ TESTER
@@ -35,6 +35,31 @@ Một trong hai:
35
35
 
36
36
  ---
37
37
 
38
+ ### Step 1b: Đọc Source Code
39
+
40
+ Chạy ngay sau Step 1, trước khi bắt đầu phân tích requirements.
41
+
42
+ Nếu workspace mở dạng parent folder chứa cả `ak docs` lẫn source code repos:
43
+
44
+ 1. Xác định repo liên quan: đọc field `repo` trong `.aiflow/context/current.json`, hoặc suy từ ticket context (tên module, màn hình). Nếu không rõ → hỏi TESTER 1 câu: "Feature này thuộc repo nào?"
45
+ 2. **Nếu GitNexus MCP có sẵn** (`.mcp.json` có entry `gitnexus`): dùng GitNexus thay vì đọc file trực tiếp:
46
+ - `gitnexus: query("tên màn hình hoặc chức năng")` → tìm code liên quan
47
+ - `gitnexus: context("ClassName")` → xem toàn bộ class/service
48
+ 3. **Nếu không có GitNexus**: đọc trực tiếp các file liên quan trong repo:
49
+ - Routes / API endpoints của màn hình
50
+ - Controller / Service — logic xử lý request
51
+ - Validation rules / Form request / DTO
52
+ - Data models / Entity / DB schema
53
+ 4. Tích hợp vào phân tích:
54
+ - Validation rules thực tế trong code (có thể khác với spec)
55
+ - Business rules ẩn trong service layer
56
+ - API response format thực tế
57
+ - Constraints từ DB schema
58
+
59
+ > ⚠️ Source code chỉ dùng để **mở rộng coverage** (thêm test cases dựa trên code thực tế) và phát hiện điểm không nhất quán giữa spec và implement. Expected result vẫn lấy từ ticket/spec của BA/PM — **không lấy từ code**.
60
+
61
+ ---
62
+
38
63
  ### Step 2: Phân tích Requirements
39
64
 
40
65
  Dựa trên ticket/description, phân tích:
@@ -235,7 +260,7 @@ Summary:
235
260
  Approach: [Manual / Automation / Mixed]
236
261
  Estimate: [S / M / L / XL]
237
262
 
238
- → Review: test-plan/test-analysis.md
263
+ → Review: [test-plan/test-analysis.md](test-plan/test-analysis.md)
239
264
  → Type APPROVED to proceed to Gate 2
240
265
  → Or provide feedback to update
241
266
 
@@ -243,6 +268,18 @@ Summary:
243
268
  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
244
269
  ```
245
270
 
271
+ **Nếu nhận được APPROVED mà còn câu hỏi clarify (Step 3) chưa được TESTER trả lời → từ chối ngay:**
272
+
273
+ ```
274
+ ⛔ GATE 1 BLOCKED — Còn câu hỏi chưa được trả lời.
275
+
276
+ Câu hỏi đang chờ:
277
+ - [câu hỏi clarify chưa được trả lời]
278
+
279
+ → Vui lòng trả lời câu hỏi trên trước khi gõ APPROVED.
280
+ ❌ APPROVED không được chấp nhận khi còn câu hỏi chưa được làm rõ.
281
+ ```
282
+
246
283
  ---
247
284
 
248
285
  ### Step 6: Handle Feedback
@@ -257,6 +294,7 @@ Summary:
257
294
  - ❌ **KHÔNG** tiến sang Gate 2 khi chưa nhận "APPROVED"
258
295
  - ❌ **KHÔNG** hỏi nhiều câu cùng lúc — từng câu một, chờ trả lời
259
296
  - ❌ **KHÔNG** viết code ở Gate 1
297
+ - ❌ **KHÔNG chấp nhận APPROVED** khi còn câu hỏi clarify (Step 3) chưa được TESTER trả lời — từ chối và hiển thị câu hỏi còn lại
260
298
  - ✅ **PHẢI** lưu `test-plan/test-analysis.md`
261
299
  - ✅ **PHẢI** hiển thị Gate 1 prompt và chờ APPROVED
262
300
  - ✅ **PHẢI** xác định scope rõ ràng trước khi liệt kê flows
@@ -0,0 +1,111 @@
1
+ # Mục đích
2
+ Hiểu đúng, đủ, sâu và toàn diện yêu cầu hệ thống dưới góc nhìn của Senior QA Engineer (10+ năm kinh nghiệm) trước khi tiến hành thiết kế kịch bản kiểm thử (test scenarios) hay tạo test case. Quy trình này giúp tránh sót lọt lỗi nghiệp vụ, tối ưu hóa nguồn lực kiểm thử và kiểm soát chặt chẽ phạm vi dự án.
3
+
4
+ # Input
5
+ - Tài liệu yêu cầu nghiệp vụ: SRS, User Story, PRD, hoặc mô tả tính năng.
6
+ - Tài liệu thiết kế giao diện (UI/UX Mockups, Figma, Wireframe - nếu có).
7
+ - Tài liệu kỹ thuật: Mô tả API (API Specs), sơ đồ cơ sở dữ liệu (DB Schema) hoặc tài liệu kiến trúc (nếu có).
8
+ - Phạm vi kiểm thử được chỉ định ban đầu (Module, Màn hình, hoặc Tính năng cụ thể).
9
+ - **Source code** (nếu workspace có source repos): validation rules, service/business logic, DB schema, API endpoints — đọc trực tiếp từ code để bổ sung context thực tế.
10
+
11
+ # Quy trình thực hiện
12
+
13
+ ## 0. Đọc Source Code (nếu workspace có source repos)
14
+
15
+ Thực hiện trước tất cả các bước phân tích.
16
+
17
+ Nếu workspace mở dạng parent folder chứa cả tài liệu lẫn source code repos:
18
+
19
+ 1. Xác định repo liên quan từ ticket hoặc tên module/màn hình. Nếu không rõ → hỏi 1 câu.
20
+ 2. **Nếu GitNexus MCP có sẵn** (`.mcp.json` có entry `gitnexus`):
21
+ - `gitnexus: query("tên màn hình hoặc chức năng")` → tìm code liên quan
22
+ - `gitnexus: context("ClassName")` → xem service/controller/validator đầy đủ
23
+ 3. **Nếu không có GitNexus**: đọc trực tiếp:
24
+ - Validation rules / Form request / DTO — tìm constraint thực tế (max length, regex, required)
25
+ - Service / Business Logic — phát hiện business rules ẩn không có trong spec
26
+ - Data models / DB schema — tìm DB constraint (unique, nullable, FK)
27
+ - API response format — xác định expected output chính xác
28
+ 4. Đưa kết quả vào mục **Validations**, **Business Rules**, và **Risk** trong báo cáo:
29
+ - Ghi rõ nguồn gốc: `[từ code]` để phân biệt với thông tin từ spec
30
+ - Đánh dấu điểm không nhất quán giữa spec và code thực tế vào **Q&A List**
31
+
32
+ > ⚠️ Source code chỉ dùng để **bổ sung context** và mở rộng coverage. Expected result vẫn lấy từ ticket/spec của BA/PM.
33
+
34
+ ## 1. Xác định Phạm vi (Scope Definition)
35
+ - **Feature/Module cụ thể:** Xác định chính xác module, màn hình hoặc tính năng đang thực hiện phân tích kiểm thử.
36
+ - **Ranh giới Scope (Boundary):** Định rõ phần nào nằm trong phạm vi cần kiểm thử (In-scope) và phần nào nằm ngoài phạm vi (Out-of-scope) để tránh kiểm thử tràn lan, lãng phí thời gian.
37
+
38
+ ## 2. Phân tích Chức năng Chi tiết (Functional Analysis)
39
+ - **Feature Overview:** Tóm tắt tổng quan về mục đích và vai trò của tính năng đối với người dùng cuối và hệ thống.
40
+ - **Main Flow (Luồng chính):** Xác định luồng nghiệp vụ đi chuẩn xác (Happy Path) từ đầu tới khi hoàn thành thành công.
41
+ - **Alternative/Exception Flows (Luồng phụ/Ngoại lệ):** Phác thảo các luồng rẽ nhánh, luồng xử lý lỗi, tình huống hủy thao tác, mất kết nối, v.v.
42
+ - **User Roles & Permissions:** Làm rõ các tác nhân (Actor) tham gia vào hệ thống, phân quyền tương ứng của từng vai trò và mức độ ảnh hưởng của quyền hạn lên tính năng.
43
+ - **Business Rules:** Phân tích các quy tắc nghiệp vụ ngầm định, thuật toán tính toán, quy luật kiểm tra logic.
44
+ - **Validations:** Liệt kê đầy đủ các ràng buộc kiểm tra dữ liệu đầu vào (độ dài, định dạng, ký tự đặc biệt, trường bắt buộc) và cấu trúc dữ liệu trả ra (output).
45
+ - **State/Status Transitions:** Theo dõi sơ đồ chuyển trạng thái của đối tượng (nếu có) và điều kiện tiên quyết (Preconditions) cũng như điều kiện đầu ra (Postconditions) để chuyển trạng thái.
46
+ - **API & External Systems:** Nhận diện các cổng API nội bộ hoặc tích hợp từ hệ thống bên ngoài tham gia xử lý dữ liệu.
47
+
48
+ ## 3. Phân tích Phi chức năng (Non-Functional Analysis)
49
+ - **Accessibility Requirements:** Kiểm tra các tiêu chuẩn hỗ trợ tiếp cận (WCAG, hỗ trợ Screen Reader cho người khiếm thị, điều hướng qua bàn phím).
50
+ - **Compatibility:** Xác định các môi trường cần tương thích bao gồm danh sách Trình duyệt (Chrome, Safari, Firefox...), Hệ điều hành (Windows, macOS, iOS, Android...) và Thiết bị (Desktop, Mobile, Tablet...).
51
+
52
+ ## 4. Phân tích Môi trường & Dữ liệu Kiểm thử (Test Environment & Data)
53
+ - **Test Data dependencies:** Xác định các phụ thuộc dữ liệu cần chuẩn bị trước khi test (ví dụ: loại tài khoản, trạng thái dữ liệu nền...).
54
+ - **Third-party integrations:** Các bên thứ ba liên quan (cổng thanh toán, SMS OTP, CRM...) và cách thức mô phỏng (stub/mock) trên môi trường test.
55
+
56
+ ## 5. Phát hiện Rủi ro & Làm rõ thông tin (Clarifications & Risks)
57
+ - **Risks / Điểm dễ lỗi:** Nhận diện các điểm phức tạp, vùng logic dễ xảy ra lỗi hệ thống (deadlock, logic loop, race conditions).
58
+ - **Assumptions (Giả định):** Những giả định được đưa ra đối với các điểm nghiệp vụ chưa rõ ràng để định hướng kiểm thử.
59
+ - **Q&A List:** Tổng hợp các câu hỏi làm rõ đối với các yêu cầu mơ hồ, thiếu logic hoặc mâu thuẫn để thảo luận trực tiếp với BA/Stakeholders.
60
+
61
+ ---
62
+
63
+ # Mẫu Báo cáo Phân tích Yêu cầu (Template)
64
+ *Kết quả phân tích yêu cầu phải được trình bày theo cấu trúc chuẩn dưới dạng **bullet point** ngắn gọn, tập trung hoàn toàn vào các nội dung phục vụ kiểm thử và tuyệt đối **không tạo test case ở bước này**.*
65
+
66
+ ```markdown
67
+ # BÁO CÁO PHÂN TÍCH YÊU CẦU (REQUIREMENT ANALYSIS REPORT)
68
+
69
+ ## 📋 SCOPE DEFINITION
70
+ 1. **Module/Màn hình/Feature cụ thể đang test:** [Tên Module/Feature]
71
+ 2. **Ranh giới scope:**
72
+ - **Bao gồm (In-Scope):** [Các màn hình, luồng nghiệp vụ cụ thể cần test]
73
+ - **Không bao gồm (Out-of-Scope):** [Các phần không test trong đợt này]
74
+
75
+ ## 📋 FUNCTIONAL ANALYSIS
76
+ 3. **Feature Overview:** [Mô tả tổng quan ngắn gọn về tính năng]
77
+ 4. **Main Flow:** [Happy path - các bước thực hiện luồng chính]
78
+ 5. **Alternative Flows:** [Các luồng rẽ nhánh và luồng xử lý ngoại lệ]
79
+ 6. **User Roles / Permissions:** [Các tác nhân và phân quyền thao tác tương ứng]
80
+ 7. **Business Rules:** [Các quy tắc nghiệp vụ và ràng buộc logic bắt buộc]
81
+ 8. **Validations (input/output):** [Các ràng buộc dữ liệu đầu vào và đầu ra]
82
+ 9. **State / Status liên quan:** [Các trạng thái và điều kiện chuyển trạng thái]
83
+ 10. **API / External System liên quan (nếu có):** [Tác động DB, API endpoints, bên thứ ba]
84
+
85
+ ## 📋 NON-FUNCTIONAL ANALYSIS
86
+ 11. **Accessibility Requirements (WCAG, screen reader):** [Yêu cầu về khả năng tiếp cận]
87
+ 12. **Compatibility (Browser/Device/OS support):** [Môi trường cần test tương thích]
88
+
89
+ ## 📋 TEST ENVIRONMENT
90
+ 13. **Test Data dependencies:** [Yêu cầu về dữ liệu cần chuẩn bị trước]
91
+ 14. **Third-party integrations:** [Mô phỏng/Sandbox liên quan đến các bên thứ ba]
92
+
93
+ ## 📋 CLARIFICATION
94
+ 15. **Risk / điểm dễ lỗi:** [Các điểm nóng tiềm ẩn rủi ro phát sinh bug]
95
+ 16. **Q&A / Out of Scope bổ sung:** [Danh sách câu hỏi cần BA/Stakeholders làm rõ]
96
+ ```
97
+
98
+ ---
99
+
100
+ # Output
101
+ Bản phân tích yêu cầu hoàn chỉnh định dạng Markdown bao gồm:
102
+ - **Feature Summary & Business Rules** đã phân tích sâu.
103
+ - **Ranh giới Test Scope** (In-scope và Out-of-scope) rõ ràng.
104
+ - **Dependencies & Risks** (Rủi ro, dữ liệu phụ thuộc, môi trường liên quan).
105
+ - **Q&A List** để làm việc trực tiếp với BA/Stakeholders.
106
+
107
+ ⚠️ **LƯU Ý QUAN TRỌNG KHI THỰC HIỆN:**
108
+ - Trình bày dạng bullet point ngắn gọn nhưng đầy đủ, súc tích.
109
+ - Chỉ tập trung vào SCOPE được chỉ định, không mở rộng phân tích ra ngoài phạm vi.
110
+ - Chỉ tập trung vào các nội dung phục vụ trực tiếp cho testing.
111
+ - **Không tự ý generate testcase ở bước này.**
@@ -0,0 +1,24 @@
1
+ # Mục đích
2
+ Nhận diện, phân loại rủi ro để tối ưu hóa nguồn lực và xác định mức độ ưu tiên kiểm thử.
3
+
4
+ # Input
5
+ - Kết quả từ 00.01 (Requirement Analysis).
6
+ - Sơ đồ kiến trúc hệ thống (nếu có).
7
+
8
+ # Quy trình thực hiện
9
+
10
+ ## 1. Phân tích các yếu tố rủi ro
11
+ - **Tính phức tạp:** Thuật toán khó, logic lồng nhau.
12
+ - **Dữ liệu:** Dữ liệu lớn, cấu trúc phức tạp, rủi ro mất mát/sai lệch dữ liệu.
13
+ - **Tích hợp:** Kết nối API, Third-party, hệ thống Legacy.
14
+ - **Nghiệp vụ:** Ảnh hưởng trực tiếp đến doanh thu, người dùng (Business Impact).
15
+ - **Hệ thống:** Phân quyền, Batch processing, Migration.
16
+
17
+ ## 2. Đánh giá & Phân loại
18
+ - Ưu tiên mức độ dựa trên: **Xác suất xảy ra** x **Mức độ ảnh hưởng**.
19
+
20
+ # Output
21
+ - Risk Matrix (High/Medium/Low).
22
+ - Regression Scope (Phạm vi ảnh hưởng cần test lại).
23
+ - Mitigation Plan (Kế hoạch giảm thiểu rủi ro).
24
+ - Testing Priority (Thứ tự ưu tiên các kịch bản).
@@ -0,0 +1,90 @@
1
+ # Mục đích
2
+
3
+ Thiết kế và xây dựng danh sách các kịch bản kiểm thử (Test Scenarios - High-level) bao phủ toàn bộ các khía cạnh nghiệp vụ, phi chức năng và rủi ro được chỉ ra trong Báo cáo phân tích yêu cầu (16 mục tiêu chuẩn) và Báo cáo phân tích rủi ro, đảm bảo không bỏ sót bất kỳ luồng xử lý nào.
4
+
5
+ # Input
6
+
7
+ - **Báo cáo Phân tích Yêu cầu (Requirement Analysis Report) đã xác định rõ phạm vi (In-Scope)**: Chỉ tập trung xây dựng Test Scenarios/Checklist cho các tính năng và luồng nghiệp vụ nằm trong phạm vi kiểm thử đã được xác định, tuyệt đối không thiết kế lan man ra ngoài phạm vi. Báo cáo này bao gồm thông tin chi tiết về 16 hạng mục dữ liệu sau:
8
+ 1. *Module/Màn hình/Feature cụ thể đang test* (Để bám sát đúng phạm vi)
9
+ 2. *Ranh giới scope* (Xác định rõ In-Scope và Out-of-Scope)
10
+ 3. *Feature Overview*
11
+ 4. *Main Flow*
12
+ 5. *Alternative Flows*
13
+ 6. *User Roles / Permissions*
14
+ 7. *Business Rules*
15
+ 8. *Validations (input/output)*
16
+ 9. *State / Status liên quan*
17
+ 10. *API / External System liên quan (nếu có)*
18
+ 11. *Accessibility Requirements (WCAG, screen reader)*
19
+ 12. *Compatibility (Browser/Device/OS support)*
20
+ 13. *Test Data dependencies*
21
+ 14. *Third-party integrations*
22
+ 15. *Risk / điểm dễ lỗi*
23
+ 16. *Out of Scope*
24
+ - **Báo cáo Phân tích Rủi ro (00.02.risk-analysis.md)**.
25
+ - **Đọc file quy ước chung (QA_Writing_Standards.md)**.
26
+ - **Tài liệu bổ trợ (nếu có):** Thiết kế UI/UX (Figma/Mockups), API Specifications, DB Schema.
27
+
28
+ # Quy trình thực hiện
29
+
30
+ ## 1. Thiết kế Kịch bản Đa chiều dựa trên các mục dữ liệu Phân tích Yêu cầu
31
+
32
+ ### A. Nhóm Chức năng (Functional Scenarios)
33
+
34
+ - **Happy Path (Luồng chạy đúng chuẩn):** Thiết kế dựa trên **Mục 3 (Feature Overview)** và **Mục 4 (Main Flow)** của Báo cáo phân tích yêu cầu. Đảm bảo toàn bộ luồng chính hoạt động đúng khi người dùng nhập đúng dữ liệu và thực hiện đúng trình tự.
35
+ - **Alternative/Exception Flows (Luồng phụ và Luồng lỗi ngoại lệ):** Thiết kế dựa trên **Mục 5 (Alternative Flows)** và **Mục 9 (State / Status liên quan)**. Kịch bản bao gồm việc chuyển đổi trạng thái sai lệch, hủy thao tác giữa chừng, mất kết nối, timeout hoặc nhập sai thông tin ở luồng phụ.
36
+ - **Permission & Role-based (Kịch bản phân quyền):** Thiết kế dựa trên **Mục 6 (User Roles / Permissions)**. Đảm bảo mỗi kịch bản kiểm tra khả năng truy cập hợp lệ, chặn truy cập trái phép và kiểm tra lỗ hổng leo thang đặc quyền.
37
+ - **Business Rules & Data Validations (Quy tắc nghiệp vụ & Kiểm tra dữ liệu):** Thiết kế dựa trên **Mục 7 (Business Rules)** và **Mục 8 (Validations)**. Áp dụng kỹ thuật phân tích biên, phân vùng tương đương để kiểm tra logic tính toán, ràng buộc dữ liệu đầu vào (độ dài, ký tự đặc biệt) và cấu trúc đầu ra.
38
+ - **Integration & E2E (Kịch bản tích hợp):** Thiết kế dựa trên **Mục 10 (API / External System liên quan)**. Đảm bảo tính toàn vẹn dữ liệu truyền giữa các API và cập nhật thông tin chính xác trong Database.
39
+
40
+ ### B. Nhóm Phi chức năng (Non-Functional Scenarios)
41
+
42
+ - **Accessibility (Tính tiếp cận):** Thiết kế dựa trên **Mục 11 (Accessibility Requirements)**. Kiểm tra tính năng tương thích với Screen Reader cho người khiếm thị, khả năng điều hướng bằng bàn phím (tab, enter) và độ tương phản màu sắc theo chuẩn WCAG.
43
+ - **Compatibility (Tính tương thích):** Thiết kế dựa trên **Mục 12 (Compatibility)**. Đảm bảo giao diện hiển thị đúng chuẩn và chức năng hoạt động mượt mà trên nhiều trình duyệt (Chrome, Safari, Firefox), hệ điều hành (iOS, Android, Windows) và kích thước màn hình khác nhau (PC, Mobile, Tablet).
44
+
45
+ ### C. Nhóm Môi trường & Dữ liệu Kiểm thử (Test Environment & Data Scenarios)
46
+
47
+ - **Data-Driven (Dữ liệu đặc biệt):** Thiết kế dựa trên **Mục 13 (Test Data dependencies)**. Kịch bản chạy kiểm thử lặp với các bộ dữ liệu nền/tài khoản đặc thù khác nhau (ví dụ: tài khoản bị khóa, số dư âm, khách hàng VIP).
48
+ - **Third-Party Integration Mocking (Tích hợp bên thứ ba):** Thiết kế dựa trên **Mục 14 (Third-party integrations)**. Kịch bản kiểm tra khả năng xử lý khi API của bên thứ ba trả về lỗi, timeout hoặc trả về phản hồi không mong muốn.
49
+
50
+ ### D. Nhóm Kịch bản Rủi ro (Risk-Based Scenarios)
51
+
52
+ - Thiết kế dựa trên **Mục 15 (Risk / điểm dễ lỗi)** từ Báo cáo phân tích yêu cầu kết hợp với danh sách phân loại rủi ro từ Báo cáo phân tích rủi ro. Tập trung vào kịch bản kiểm tra khả năng tự phục hồi lỗi hệ thống (Error Recovery) và kiểm thử phá hủy (Destructive Testing) ở các vùng nghiệp vụ phức tạp.
53
+
54
+ ## 2. Rà soát Độ bao phủ (Coverage Review)
55
+
56
+ - Xây dựng bảng ma trận để đảm bảo 100% các mục quan trọng (từ mục 1 đến 16 của Báo cáo phân tích yêu cầu) đều được kiểm thử và ánh xạ sang ít nhất một kịch bản kiểm thử tương ứng.
57
+
58
+ ---
59
+
60
+ # Mẫu Bảng Kịch bản Kiểm thử & Traceability Matrix (Template)
61
+
62
+ ```markdown
63
+ # DANH SÁCH KỊCH BẢN KIỂM THỬ (TEST SCENARIOS LIST)
64
+
65
+ | Scenario ID | Feature/Module | Check List | Scenario Type | Target Req ID (1-16) | Priority | Test Data / Dependency |
66
+ |-------------|----------------|------------|---------------|----------------------|----------|------------------------|
67
+ | TS_01_001 | [Tên Feature] | [Mô tả kịch bản] | Happy Path | Req_04 (Main Flow) | High | [Dữ liệu cần thiết] |
68
+ | TS_01_002 | [Tên Feature] | [Mô tả kịch bản] | Negative | Req_08 (Validations) | Medium | [Dữ liệu cần thiết] |
69
+ | TS_01_003 | [Tên Feature] | [Mô tả kịch bản] | Exception | Req_09 (Status) | High | [Dữ liệu cần thiết] |
70
+ | TS_01_004 | [Tên Feature] | [Mô tả kịch bản] | Permission | Req_06 (Roles) | High | [Dữ liệu cần thiết] |
71
+ | TS_01_005 | [Tên Feature] | [Mô tả kịch bản] | Accessibility | Req_11 (Access) | Low | [Screen Reader tool] |
72
+ | TS_01_006 | [Tên Feature] | [Mô tả kịch bản] | Risk-based | Req_15 (Risks) | High | [Dữ liệu giả lập] |
73
+ ```
74
+
75
+ ---
76
+
77
+ # Output
78
+
79
+ Bảng danh sách kịch bản kiểm thử (Test Scenarios) hoàn chỉnh bao gồm:
80
+
81
+ - **Test Scenarios List** chi tiết, đa chiều (Functional, Non-functional, Risk-based).
82
+ - **Traceability Matrix** được tích hợp sẵn thông qua cột ánh xạ nguồn gốc yêu cầu (Target Req ID).
83
+ - **Phân loại Priority** và xác định rõ ràng **Test Data/Dependency** cho từng kịch bản.
84
+
85
+ ⚠️ **LƯU Ý QUAN TRỌNG KHI THỰC HIỆN:**
86
+
87
+ - Trình bày rõ ràng dưới dạng bảng (table).
88
+ - Các mô tả kịch bản (Check List) cần ở mức High-level, tập trung vào mục tiêu kiểm thử thay vì chi tiết từng bước click chuột.
89
+ - Đảm bảo tính bao phủ (Coverage) triệt để đối với cả 16 điểm phân tích từ Báo cáo phân tích yêu cầu.
90
+ - Chỉ tạo các kịch bản nằm trong ranh giới In-scope (đã thống nhất tại Mục 2 của Báo cáo phân tích yêu cầu).
@@ -0,0 +1,68 @@
1
+ # Mục đích
2
+
3
+ Đảm bảo chất lượng, tính chính xác, tính khả thi và độ bao phủ toàn diện của bộ Test Case dựa trên Báo cáo phân tích yêu cầu (16 hạng mục tiêu chuẩn), Báo cáo phân tích rủi ro và phạm vi kiểm thử (Scope) đã được phê duyệt.
4
+
5
+ # Input
6
+
7
+ - Danh sách Test Case cần review.
8
+ - **Báo cáo Phân tích Yêu cầu (Requirement Analysis Report) hoàn chỉnh bao gồm 16 hạng mục dữ liệu:**
9
+ 1. *Module/Màn hình/Feature cụ thể đang test*
10
+ 2. *Ranh giới scope* (Bao gồm gì, không bao gồm gì)
11
+ 3. *Feature Overview*
12
+ 4. *Main Flow*
13
+ 5. *Alternative Flows*
14
+ 6. *User Roles / Permissions*
15
+ 7. *Business Rules*
16
+ 8. *Validations (input/output)*
17
+ 9. *State / Status liên quan*
18
+ 10. *API / External System liên quan (nếu có)*
19
+ 11. *Accessibility Requirements (WCAG, screen reader)*
20
+ 12. *Compatibility (Browser/Device/OS support)*
21
+ 13. *Test Data dependencies*
22
+ 14. *Third-party integrations*
23
+ 15. *Risk / điểm dễ lỗi*
24
+ 16. *Out of Scope*
25
+ - **Báo cáo Phân tích Rủi ro (00.02.risk-analysis.md)**
26
+ - **Đọc file quy ước chung (QA_Writing_Standards.md)**.
27
+
28
+ # Checklist kiểm tra
29
+
30
+ ## 1. Kiểm tra Phạm vi (Scope Definition Review)
31
+
32
+ - ✅ **In-scope Coverage (Bám sát phạm vi):** Tất cả các chức năng thuộc phần In-scope (Mục 1 & 2) đều phải được thiết kế test case tương ứng.
33
+ - ✅ **No Out-of-scope (Không dư thừa):** Tuyệt đối không tạo test case cho các phần nằm trong danh sách Out-of-scope (Mục 16) hoặc các chức năng nằm ngoài biên kiểm thử.
34
+
35
+ ## 2. Kiểm tra Luồng chức năng (Functional Coverage Review)
36
+
37
+ - ✅ **Main Flow (Luồng chính):** Các bước kiểm thử cho luồng chính (Mục 4) có rõ ràng, logic và kết quả mong muốn có chính xác không?
38
+ - ✅ **Alternative/Exception & Status (Luồng phụ/Ngoại lệ & Trạng thái):** Đã bao phủ hết các kịch bản lỗi, hủy thao tác (Mục 5) và các trường hợp chuyển đổi trạng thái của đối tượng (Mục 9)?
39
+ - ✅ **User Roles & Permissions (Tác nhân & Phân quyền):** Đã kiểm thử đủ cho từng vai trò người dùng (Mục 6), bao gồm cả phân quyền hợp lệ, chặn phân quyền không hợp lệ và kiểm tra leo thang đặc quyền (nếu có)?
40
+ - ✅ **Business Rules & Validations (Quy tắc & Ràng buộc):** Đã kiểm thử các quy tắc nghiệp vụ đặc thù (Mục 7) và các ràng buộc dữ liệu đầu vào/ra (Mục 8 - ranh giới biên, kiểu dữ liệu, định dạng)?
41
+ - ✅ **Integration & API (Tích hợp & API):** Đã kiểm thử đầy đủ các điểm giao tiếp API và tính toàn vẹn của dữ liệu lưu vào cơ sở dữ liệu (Mục 10)?
42
+
43
+ ## 3. Kiểm tra Phi chức năng (Non-Functional Review)
44
+
45
+ - ✅ **Accessibility (Khả năng tiếp cận):** Đã có test case kiểm thử hỗ trợ Screen Reader, độ tương phản màu sắc và phím tắt điều hướng theo chuẩn WCAG (Mục 11)?
46
+ - ✅ **Compatibility (Tính tương thích):** Đã có kịch bản chạy thử nghiệm trên các trình duyệt, hệ điều hành và thiết bị đích được yêu cầu (Mục 12)?
47
+
48
+ ## 4. Kiểm tra Môi trường & Dữ liệu Kiểm thử (Environment & Data Review)
49
+
50
+ - ✅ **Test Data (Dữ liệu nền):** Các điều kiện tiên quyết (Prerequisites/Preconditions) và dữ liệu test cần chuẩn bị (Mục 13) có được chỉ ra cụ thể và rõ ràng trong test case không?
51
+ - ✅ **Third-Party (Bên thứ ba):** Đã có giải pháp mô phỏng (stub/mock) hoặc test case kiểm thử các kịch bản tích hợp bên thứ ba (Mục 14)?
52
+
53
+ ## 5. Kiểm tra Rủi ro & Điểm dễ lỗi (Risk-Based Review)
54
+
55
+ - ✅ **High-risk Areas (Vùng rủi ro cao):** Các vùng nghiệp vụ phức tạp, dễ lỗi đã được phân tích (Mục 15) và xếp hạng ưu tiên cao trong Báo cáo phân tích rủi ro có được bao phủ bởi các kịch bản kiểm thử sâu (stress test cục bộ, error recovery...) không?
56
+
57
+ ## 6. Chất lượng Chi tiết của Test Case (Test Case Quality Review)
58
+
59
+ - ✅ **Test Steps (Các bước thực hiện):** Rõ ràng, súc tích, không mơ hồ và có thể tái hiện được?
60
+ - ✅ **Expected Result (Kết quả mong đợi):** Cụ thể, đo lường được (không ghi chung chung như "hệ thống hoạt động đúng").
61
+ - ✅ **Redundancy (Tính tối ưu):** Không trùng lặp nội dung giữa các test case.
62
+
63
+ ---
64
+
65
+ # Output
66
+
67
+ - Báo cáo kết quả Review Test Case (Review Comments & Feedback).
68
+ - Trạng thái phê duyệt (Approved / Need Update / Rejected).