@relipa/ai-flow-kit 0.1.2 → 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 (94) hide show
  1. package/README.md +139 -0
  2. package/bin/aiflow.js +89 -2
  3. package/custom/harness/playwright/.env.example +10 -0
  4. package/custom/harness/playwright/playwright.config.ts +34 -0
  5. package/custom/harness/playwright/tests/e2e/auth.setup.ts +25 -0
  6. package/custom/harness/playwright/tests/e2e/fixtures/test.ts +6 -0
  7. package/custom/harness/playwright/tests/e2e/pages/BasePage.ts +9 -0
  8. package/custom/harness/playwright/tests/e2e/support/auth.ts +5 -0
  9. package/custom/mcp-presets/playwright.json +8 -0
  10. package/custom/rules/test-patterns.md +70 -0
  11. package/custom/skills/automation-testing/SKILL.md +239 -0
  12. package/custom/skills/automation-testing/templates/BasePage.ts +29 -0
  13. package/custom/skills/automation-testing/templates/PageObject.example.ts +29 -0
  14. package/custom/skills/automation-testing/templates/playwright.config.ts +39 -0
  15. package/custom/skills/automation-testing/templates/spec.example.ts +29 -0
  16. package/custom/skills/ba-skills/skill-ba-phan-tich-ban-dau-v1.md +44 -0
  17. package/custom/skills/ba-skills/skill-ba-prototype-v1.md +35 -0
  18. package/custom/skills/ba-skills/skill-ba-qa-template-v1.md +21 -0
  19. package/custom/skills/ba-skills/skill-ba-qa-v1.md +35 -0
  20. package/custom/skills/ba-skills/skill-ba-template-phan-tich-ban-dau-v1.md +30 -0
  21. package/custom/skills/ba-skills/skill-ba-template-uc-v1.md +83 -0
  22. package/custom/skills/ba-skills/skill-ba-ve-luong-mermaid-v1.md +35 -0
  23. package/custom/skills/ba-skills/skill-ba-viet-spec-uc-v1.md +38 -0
  24. package/custom/skills/ba-skills/skill-ba-xay-dung-business-rules-v1.md +39 -0
  25. package/custom/skills/coverage-check/SKILL.md +202 -0
  26. package/custom/skills/evidence-aggregation/SKILL.md +246 -0
  27. package/custom/skills/execute-flow/SKILL.md +499 -0
  28. package/custom/skills/execute-flow/templates/playwright.config.ts +39 -0
  29. package/custom/skills/gate-review/SKILL.md +195 -0
  30. package/custom/skills/generate-test-report/SKILL.md +99 -0
  31. package/custom/skills/generate-test-report/templates/test-report.md +58 -0
  32. package/custom/skills/generate-testcase/SKILL.md +350 -0
  33. package/custom/skills/generate-testcase/templates/testcase.md +88 -0
  34. package/custom/skills/log-bug/SKILL.md +131 -0
  35. package/custom/skills/pr-impact-analysis/SKILL.md +180 -0
  36. package/custom/skills/retest-orchestration/SKILL.md +191 -0
  37. package/custom/skills/script-sync/SKILL.md +208 -0
  38. package/custom/skills/test-analysis/SKILL.md +300 -0
  39. package/custom/skills/test-skills/categories/00-core/00.01.requirement-analysis.md +111 -0
  40. package/custom/skills/test-skills/categories/00-core/00.02.risk-analysis.md +24 -0
  41. package/custom/skills/test-skills/categories/00-core/00.03.test-scenario-builder.md +90 -0
  42. package/custom/skills/test-skills/categories/00-core/00.04.testcase-review.md +68 -0
  43. package/custom/skills/test-skills/categories/01-test-design/01.01.boundary-value-analysis.md +30 -0
  44. package/custom/skills/test-skills/categories/01-test-design/01.02.equivalence.partitioning.md +27 -0
  45. package/custom/skills/test-skills/categories/01-test-design/01.03.decision-table.md +26 -0
  46. package/custom/skills/test-skills/categories/01-test-design/01.04.state.transition.md +26 -0
  47. package/custom/skills/test-skills/categories/01-test-design/01.05.pairwise.md +25 -0
  48. package/custom/skills/test-skills/categories/01-test-design/01.06.error-guessing.md +28 -0
  49. package/custom/skills/test-skills/categories/02-ui-testing/02.01.UI-layout.md +29 -0
  50. package/custom/skills/test-skills/categories/02-ui-testing/02.02.form-validation.md +57 -0
  51. package/custom/skills/test-skills/categories/02-ui-testing/02.03.navigation.md +27 -0
  52. package/custom/skills/test-skills/categories/02-ui-testing/02.04.localization.md +27 -0
  53. package/custom/skills/test-skills/categories/02-ui-testing/02.05.accessibility.md +27 -0
  54. package/custom/skills/test-skills/categories/03-business-testing/03.01.CRUD-testing.md +51 -0
  55. package/custom/skills/test-skills/categories/03-business-testing/03.02.workflow-testing.md +44 -0
  56. package/custom/skills/test-skills/categories/03-business-testing/03.03.permission-testing.md +41 -0
  57. package/custom/skills/test-skills/categories/03-business-testing/03.04.dependency-validation.md +40 -0
  58. package/custom/skills/test-skills/categories/03-business-testing/03.05.notification-testing.md +43 -0
  59. package/custom/skills/test-skills/categories/03-business-testing/03.06.calculation.testing.md +44 -0
  60. package/custom/skills/test-skills/categories/04-data-testing/04.01.database-testing.md +43 -0
  61. package/custom/skills/test-skills/categories/04-data-testing/04.02.import-export-testing.md +43 -0
  62. package/custom/skills/test-skills/categories/04-data-testing/04.03.data-mapping.md +39 -0
  63. package/custom/skills/test-skills/categories/04-data-testing/04.04.duplicate-handling.md +39 -0
  64. package/custom/skills/test-skills/categories/04-data-testing/04.05.migration.md +42 -0
  65. package/custom/skills/test-skills/categories/05-integration/05.01.API-testing.md +37 -0
  66. package/custom/skills/test-skills/categories/05-integration/05.02.third-party-integration.md +36 -0
  67. package/custom/skills/test-skills/categories/05-integration/05.03.batch-processing.md +38 -0
  68. package/custom/skills/test-skills/categories/05-integration/05.04.file-upload-download.md +40 -0
  69. package/custom/skills/test-skills/categories/08-domain-skills/CMS.md +34 -0
  70. package/custom/skills/test-skills/categories/08-domain-skills/Ecommerce.md +35 -0
  71. package/custom/skills/test-skills/categories/99-review/99.01.coverage-review.md +35 -0
  72. package/custom/skills/test-skills/categories/99-review/99.02.knowledge-learning.md +34 -0
  73. package/custom/skills/test-skills/categories/99-review/99.03.repository-update.md +33 -0
  74. package/custom/skills/test-skills/categories/99-review/99.04.change-history.md +38 -0
  75. package/custom/skills/test-skills/rules/Directory_and_Naming_Convention.md +257 -0
  76. package/custom/skills/test-skills/rules/QA_Writing_Standards.md +49 -0
  77. package/custom/skills/test-skills/template/template_testcase.md +92 -0
  78. package/custom/templates/shared/create-spec-workflow.md +441 -0
  79. package/custom/templates/shared/create-testcase-workflow.md +470 -0
  80. package/custom/templates/shared/gate-workflow.md +421 -11
  81. package/docs/common/CHANGELOG.md +52 -0
  82. package/docs/common/QUICK_START.md +30 -0
  83. package/docs/common/cli-reference.md +48 -7
  84. package/package.json +2 -2
  85. package/scripts/create-score-excel.js +37 -14
  86. package/scripts/detect.js +10 -0
  87. package/scripts/guide.js +9 -0
  88. package/scripts/init.js +48 -1
  89. package/scripts/prompt.js +36 -0
  90. package/scripts/review.js +91 -0
  91. package/scripts/scaffold-playwright.js +106 -0
  92. package/scripts/task.js +21 -7
  93. package/scripts/update.js +127 -124
  94. package/scripts/use.js +36 -12
@@ -0,0 +1,257 @@
1
+ # 00. Hướng dẫn Cấu trúc Thư mục & Quy tắc Đặt tên File (Directory Structure & Naming Convention)
2
+
3
+ ## Mục tiêu (Objective)
4
+
5
+ Định nghĩa và chuẩn hóa quy tắc tổ chức thư mục, đặt tên file cho toàn bộ các Artifact được sinh ra trong quy trình QA Workflow. Đảm bảo tính nhất quán, truy vết và dễ bảo trì trên toàn dự án.
6
+
7
+ > **Lưu ý quan trọng**: Tài liệu này là **điểm tham chiếu bắt buộc** cho toàn bộ quy trình. Mọi Artifact sinh ra (Result, QA) phải tuân thủ nghiêm ngặt các quy tắc được định nghĩa tại đây trước khi thực thi bất kỳ bước nào trong workflow.
8
+
9
+ ---
10
+
11
+ ## 1. Tổng quan Cấu trúc Thư mục (Directory Overview)
12
+
13
+ ```text
14
+ Flow_TestCase_v1.1/
15
+ ├── Work-flow/ ← Định nghĩa quy trình (Workflow Definitions)
16
+ │ ├── 01_Requirement_Analysis.md
17
+ │ ├── 02_Scenario_Building.md
18
+ │ ├── 03_Test_Design.md
19
+ │ ├── 04_Test_Review.md
20
+ │ ├── 05_Test_Reporting.md
21
+ │ └── Standard_QA_Workflow.md
22
+
23
+ ├── Rule/ ← Quy tắc & Quy ước chung (Rules & Standards)
24
+ │ ├── GUI_work_flow/
25
+ │ │ └── Directory_and_Naming_Convention.md ← File này
26
+ │ └── Quy_uoc_TC/
27
+ │ └── QA_Writing_Standards.md
28
+
29
+ ├── Result/ ← Kết quả chính thức của từng bước (Result Artifacts)
30
+ │ └── {tên_SRS hoặc tên_chức_năng}/
31
+ │ ├── 01_Requirement_Analysis_Result.md
32
+ │ ├── 02_Test_Scenarios_Result.md
33
+ │ ├── 03_Test_Cases_Draft_Result.md
34
+ │ └── 04_Test_Cases_Final_Result.md
35
+
36
+ ├── QA/ ← Quản lý Issue & Câu hỏi làm rõ (QA Artifacts)
37
+ │ └── {tên_SRS hoặc tên_chức_năng}/
38
+ │ ├── 01_Requirement_Analysis_QA.md
39
+ │ ├── 02_Scenario_Building_QA.md
40
+ │ ├── 03_Test_Design_QA.md
41
+ │ └── 04_Test_Review_QA.md
42
+
43
+ └── TestCase/ ← Bộ Test Case giao nộp theo template chuẩn (TestCase Artifacts)
44
+ └── {tên_SRS hoặc tên_chức_năng}/
45
+ └── {tên_SRS_hoặc_tên_chức_năng}_TestCase.md
46
+ ```
47
+
48
+ ---
49
+
50
+ ## 2. Quy tắc thư mục `Result/` (Result Directory Rules)
51
+
52
+ - **Đường dẫn gốc**: [Result/](file:///home/lee/Documents/Projects/Flow_TestCase_v1.1/Result)
53
+ - **Mục đích**: Lưu trữ toàn bộ các file kết quả chính thức (Result Artifact) được sinh ra ở mỗi bước workflow.
54
+
55
+ ### 2.1. Quy tắc tạo thư mục con
56
+
57
+ Với mỗi tài liệu SRS hoặc tính năng được đưa vào làm đầu vào, **tạo một thư mục con** bên trong `Result/` có tên **trùng với tên tài liệu SRS hoặc tên chức năng** đó.
58
+
59
+ ```
60
+ Result/
61
+ └── {tên_tài_liệu_SRS_hoặc_tên_chức_năng}/
62
+ ```
63
+
64
+ > **Ví dụ**: Nếu đầu vào là tài liệu `AD10_Create_Product`, thư mục con sẽ là:
65
+ > `Result/AD10_Create_Product/`
66
+
67
+ ### 2.2. Quy tắc đặt tên file Result
68
+
69
+ Tên file kết quả trong mỗi thư mục con phải tuân theo mẫu:
70
+
71
+ ```
72
+ {tên_step}_Result.md
73
+ ```
74
+
75
+ #### Bảng đặt tên file Result theo từng bước
76
+
77
+ | Bước | Tên Step | Tên file Result |
78
+ | :---: | :--- | :--- |
79
+ | **01** | `01_Requirement_Analysis` | `01_Requirement_Analysis_Result.md` |
80
+ | **02** | `02_Test_Scenarios` | `02_Test_Scenarios_Result.md` |
81
+ | **03** | `03_Test_Cases_Draft` | `03_Test_Cases_Draft_Result.md` |
82
+ | **04** | `04_Test_Cases_Final` | `04_Test_Cases_Final_Result.md` |
83
+
84
+ #### Ví dụ đường dẫn đầy đủ
85
+
86
+ ```
87
+ Result/AD10_Create_Product/01_Requirement_Analysis_Result.md
88
+ Result/AD10_Create_Product/02_Test_Scenarios_Result.md
89
+ Result/AD10_Create_Product/03_Test_Cases_Draft_Result.md
90
+ Result/AD10_Create_Product/04_Test_Cases_Final_Result.md
91
+ ```
92
+
93
+ ---
94
+
95
+ ## 3. Quy tắc thư mục `QA/` (QA Directory Rules)
96
+
97
+ - **Đường dẫn gốc**: [QA/](file:///home/lee/Documents/Projects/Flow_TestCase_v1.1/QA)
98
+ - **Mục đích**: Lưu trữ toàn bộ các file ghi nhận Issue, câu hỏi làm rõ và giả định phát sinh trong từng bước workflow.
99
+
100
+ ### 3.1. Quy tắc tạo thư mục con
101
+
102
+ Tương tự thư mục `Result/`, với mỗi tài liệu SRS hoặc tính năng được đưa vào, **tạo một thư mục con** bên trong `QA/` có tên **trùng với tên tài liệu SRS hoặc tên chức năng** đó.
103
+
104
+ ```
105
+ QA/
106
+ └── {tên_tài_liệu_SRS_hoặc_tên_chức_năng}/
107
+ ```
108
+
109
+ > **Ví dụ**: Nếu đầu vào là tài liệu `AD10_Create_Product`, thư mục con sẽ là:
110
+ > `QA/AD10_Create_Product/`
111
+
112
+ ### 3.2. Quy tắc đặt tên file QA
113
+
114
+ Tên file QA trong mỗi thư mục con phải tuân theo mẫu:
115
+
116
+ ```
117
+ {tên_step}_QA.md
118
+ ```
119
+
120
+ #### Bảng đặt tên file QA theo từng bước
121
+
122
+ | Bước | Tên Step | Tên file QA |
123
+ | :---: | :--- | :--- |
124
+ | **01** | `01_Requirement_Analysis` | `01_Requirement_Analysis_QA.md` |
125
+ | **02** | `02_Scenario_Building` | `02_Scenario_Building_QA.md` |
126
+ | **03** | `03_Test_Design` | `03_Test_Design_QA.md` |
127
+ | **04** | `04_Test_Review` | `04_Test_Review_QA.md` |
128
+
129
+ #### Ví dụ đường dẫn đầy đủ
130
+
131
+ ```
132
+ QA/AD10_Create_Product/01_Requirement_Analysis_QA.md
133
+ QA/AD10_Create_Product/02_Scenario_Building_QA.md
134
+ QA/AD10_Create_Product/03_Test_Design_QA.md
135
+ QA/AD10_Create_Product/04_Test_Review_QA.md
136
+ ```
137
+
138
+ ---
139
+
140
+ ## 4. Quy tắc thư mục `TestCase/` (TestCase Directory Rules)
141
+
142
+ - **Đường dẫn gốc**: [TestCase/](file:///home/lee/Documents/Projects/Flow_TestCase_v1.1/TestCase)
143
+ - **Mục đích**: Lưu trữ bộ Test Case giao nộp cuối cùng theo đúng template chuẩn dự án. File này chỉ chứa **phần bảng Test Case** (không chứa review summary, findings hay coverage validation) và được sinh **đồng thời** với `04_Test_Cases_Final_Result.md` ở cuối Bước 04.
144
+
145
+ ### 4.1. Quy tắc tạo thư mục con
146
+
147
+ Tương tự `Result/` và `QA/`, với mỗi tài liệu SRS hoặc tính năng, **tạo một thư mục con** bên trong `TestCase/` có tên **trùng với tên tài liệu SRS hoặc tên chức năng** đó.
148
+
149
+ ```
150
+ TestCase/
151
+ └── {tên_tài_liệu_SRS_hoặc_tên_chức_năng}/
152
+ ```
153
+
154
+ > **Ví dụ**: Nếu đầu vào là tài liệu `AD06_Create_Tag`, thư mục con sẽ là:
155
+ > `TestCase/AD06_Create_Tag/`
156
+
157
+ ### 4.2. Quy tắc đặt tên file TestCase
158
+
159
+ Tên file TestCase trong mỗi thư mục con phải tuân theo mẫu:
160
+
161
+ ```
162
+ {tên_SRS_hoặc_tên_chức_năng}_TestCase.md
163
+ ```
164
+
165
+ | Thành phần | Mô tả |
166
+ | :--- | :--- |
167
+ | `{tên_SRS_hoặc_tên_chức_năng}` | Trùng khớp với tên thư mục con (không rút gọn, không thay đổi) |
168
+ | `_TestCase` | Hậu tố cố định, phân biệt với Result và QA artifact |
169
+ | `.md` | Định dạng Markdown |
170
+
171
+ #### Ví dụ đường dẫn đầy đủ
172
+
173
+ ```
174
+ TestCase/AD06_Create_Tag/AD06_Create_Tag_TestCase.md
175
+ TestCase/AD10_Create_Product/AD10_Create_Product_TestCase.md
176
+ ```
177
+
178
+ ### 4.3. Nội dung file TestCase
179
+
180
+ File TestCase tuân theo **template chuẩn** tại [Template/template_testcase.md](file:///home/lee/Documents/Projects/Flow_TestCase_v1.1/Template/template_testcase.md) và **chỉ bao gồm**:
181
+
182
+ - Mục **1. Thông tin chung** (General Info)
183
+ - Mục **2. Kết quả kiểm thử tổng hợp** (Test Execution Summary)
184
+ - Mục **3. Danh sách Test Cases Chi Tiết** (Detailed Test Cases — toàn bộ các nhóm và bảng test case)
185
+
186
+ > **Không bao gồm**: Review Summary, Review Findings, Coverage Validation (RTM), Sign-off Status — các mục này thuộc về `04_Test_Cases_Final_Result.md`.
187
+
188
+ ### 4.4. Thời điểm sinh file
189
+
190
+ File TestCase được sinh **đồng thời** với `04_Test_Cases_Final_Result.md` tại cuối Bước 04 (Test Review), khi tất cả issue Critical/Major đã được giải quyết và bộ Test Case đã Sign-off.
191
+
192
+ ---
193
+
194
+ ## 5. Artifact Matrix Tổng hợp (Full Artifact Matrix)
195
+
196
+ Bảng tổng hợp đầy đủ mapping giữa các bước workflow và các Artifact tương ứng:
197
+
198
+ | Step | Mô tả | Result Artifact | QA Artifact | TestCase Artifact | Storage |
199
+ | :---: | :--- | :--- | :--- | :--- | :--- |
200
+ | **01** | Phân tích Yêu cầu & Rủi ro | `01_Requirement_Analysis_Result.md` | `01_Requirement_Analysis_QA.md` | — | `Result/{tên}/` và `QA/{tên}/` |
201
+ | **02** | Xây dựng Kịch bản (Scenario) | `02_Test_Scenarios_Result.md` | `02_Scenario_Building_QA.md` | — | `Result/{tên}/` và `QA/{tên}/` |
202
+ | **03** | Thiết kế Test Case chi tiết | `03_Test_Cases_Draft_Result.md` | `03_Test_Design_QA.md` | — | `Result/{tên}/` và `QA/{tên}/` |
203
+ | **04** | Review & Tối ưu hóa | `04_Test_Cases_Final_Result.md` | `04_Test_Review_QA.md` | `{tên}_TestCase.md` | `Result/{tên}/`, `QA/{tên}/` và `TestCase/{tên}/` |
204
+
205
+ ---
206
+
207
+ ## 6. Quy tắc bổ sung (Additional Rules)
208
+
209
+ ### 6.1. Quy tắc cập nhật file (Update Rule)
210
+
211
+ - Nếu file đã tồn tại, **cập nhật và ghi đè** nội dung mới nhất.
212
+ - **Không tạo file trùng lặp** với hậu tố phiên bản (ví dụ: `_v1`, `_v2`, `_final`, `_new`).
213
+
214
+ ### 6.2. Quy tắc đặt tên thư mục con (Subdirectory Naming)
215
+
216
+ - Sử dụng **đúng tên** của tài liệu SRS hoặc tên chức năng được đưa vào (không tự ý rút gọn hoặc thay đổi).
217
+ - Ví dụ hợp lệ: `AD10_Create_Product`, `Login_Feature`, `AD06_Create_Tag`.
218
+ - Ví dụ **không hợp lệ**: `product`, `login`, `tag_feature` (tên tự đặt khác với tên gốc).
219
+
220
+ ### 6.3. Nguyên tắc nhất quán (Consistency Principle)
221
+
222
+ - Thư mục con trong `Result/`, `QA/` và `TestCase/` **phải có cùng tên** với nhau cho một tài liệu SRS/chức năng.
223
+ - Điều này đảm bảo việc tra cứu và truy vết giữa Result, QA và TestCase là nhanh chóng và chính xác.
224
+
225
+ ---
226
+
227
+ ## 7. Checklist Áp dụng (Application Checklist)
228
+
229
+ Trước khi bắt đầu thực thi bất kỳ bước nào trong workflow, kiểm tra:
230
+
231
+ - [ ] Đã xác định đúng tên tài liệu SRS / tên chức năng đầu vào chưa?
232
+ - [ ] Đã tạo thư mục con trong `Result/` với đúng tên chưa?
233
+ - [ ] Đã tạo thư mục con trong `QA/` với đúng tên (trùng với `Result/`) chưa?
234
+ - [ ] Tên file Result tuân theo mẫu `{tên_step}_Result.md` chưa?
235
+ - [ ] Tên file QA tuân theo mẫu `{tên_step}_QA.md` chưa?
236
+ - [ ] (Sau Bước 04) Đã tạo thư mục con trong `TestCase/` với đúng tên chưa?
237
+ - [ ] (Sau Bước 04) Tên file TestCase tuân theo mẫu `{tên_SRS_hoặc_tên_chức_năng}_TestCase.md` chưa?
238
+ - [ ] (Sau Bước 04) File TestCase chỉ chứa phần bảng test case theo template chuẩn, không chứa review metadata chưa?
239
+ - [ ] Không có file trùng lặp hoặc sai quy tắc đặt tên không?
240
+
241
+ ---
242
+
243
+ ## 8. Liên kết tham chiếu (References)
244
+
245
+ - [Standard_QA_Workflow.md](file:///home/lee/Documents/Projects/Flow_TestCase_v1.1/Work-flow/Standard_QA_Workflow.md) — Tổng quan quy trình làm việc chuẩn.
246
+ - [01_Requirement_Analysis.md](file:///home/lee/Documents/Projects/Flow_TestCase_v1.1/Work-flow/01_Requirement_Analysis.md) — Chi tiết Bước 1.
247
+ - [02_Scenario_Building.md](file:///home/lee/Documents/Projects/Flow_TestCase_v1.1/Work-flow/02_Scenario_Building.md) — Chi tiết Bước 2.
248
+ - [03_Test_Design.md](file:///home/lee/Documents/Projects/Flow_TestCase_v1.1/Work-flow/03_Test_Design.md) — Chi tiết Bước 3.
249
+ - [04_Test_Review.md](file:///home/lee/Documents/Projects/Flow_TestCase_v1.1/Work-flow/04_Test_Review.md) — Chi tiết Bước 4.
250
+ - [Result/](file:///home/lee/Documents/Projects/Flow_TestCase_v1.1/Result) — Thư mục lưu Result Artifacts.
251
+ - [QA/](file:///home/lee/Documents/Projects/Flow_TestCase_v1.1/QA) — Thư mục lưu QA Artifacts.
252
+ - [TestCase/](file:///home/lee/Documents/Projects/Flow_TestCase_v1.1/TestCase) — Thư mục lưu TestCase Artifacts theo template chuẩn.
253
+ - [Template/template_testcase.md](file:///home/lee/Documents/Projects/Flow_TestCase_v1.1/Template/template_testcase.md) — Template chuẩn cho file TestCase.
254
+
255
+ ---
256
+
257
+ *Tài liệu này là quy tắc nền tảng của hệ thống. Mọi thay đổi về cấu trúc thư mục hoặc quy tắc đặt tên phải được cập nhật tại đây trước khi áp dụng.*
@@ -0,0 +1,49 @@
1
+ # Quy ước chung (SETTING) — Flow tạo testcase
2
+
3
+ > File này là "cấu hình" dùng chung cho **tất cả** các skill trong flow.
4
+ > Mọi skill PHẢI đọc file này trước khi chạy để giữ output nhất quán.
5
+ > Khi muốn đổi phong cách/quy tắc cho cả flow → chỉ sửa file này.
6
+
7
+ ---
8
+
9
+ ## 1. Ngôn ngữ & văn phong
10
+
11
+ - Nội dung mô tả/diễn giải bằng **tiếng Việt**.
12
+ - **Tiêu đề cột của bảng (checklist, testcase) viết bằng tiếng Anh** theo quy ước team; **nội dung trong ô viết tiếng Việt**.
13
+ - Thuật ngữ kỹ thuật/test có thể giữ tiếng Anh trong ngoặc khi cần (vd: kiểm thử biên (boundary)).
14
+ - Viết ngắn gọn, rõ ràng, không lan man. Ưu tiên gạch đầu dòng và bảng.
15
+
16
+ ### Từ vựng trạng thái test (Status) — dùng thống nhất ở checklist & testcase
17
+
18
+ - `Untest` — chưa test (mặc định khi mới sinh).
19
+ - `Pass` — đạt.
20
+ - `Fail` — không đạt.
21
+ - `Blocked` — bị chặn, chưa test được.
22
+ - `N/A` — không áp dụng.
23
+
24
+ ## 2. Mức độ ưu tiên
25
+
26
+ - **High** — luồng chính, ảnh hưởng nghiệp vụ/tiền/bảo mật, lỗi gây chặn người dùng.
27
+ - **Medium** — luồng phụ, validation quan trọng, ảnh hưởng trải nghiệm rõ rệt.
28
+ - **Low** — trường hợp hiếm, UI cosmetic, edge ít xảy ra.
29
+
30
+ ## 3. Quy ước đặt ID
31
+
32
+ - Checklist mục: `CL-<FEATURE>-001`
33
+ - Testcase: `TC-<FEATURE>-001`
34
+ - `<FEATURE>` viết hoa, không dấu, gạch nối nếu dài. Vd: `TC-LOGIN-001`, `TC-DAT-HANG-005`.
35
+ - Đánh số liên tục, 3 chữ số.
36
+
37
+ ## 4. Nguyên tắc viết testcase
38
+
39
+ 1. **1 testcase = 1 mục tiêu kiểm thử** (đừng gộp nhiều mục đích).
40
+ 2. **Bước (steps)** rõ ràng, đánh số, người khác đọc làm theo được mà không cần hỏi.
41
+ 3. **Kết quả mong đợi** phải **đo được / quan sát được** (tránh "hoạt động đúng").
42
+ 4. Luôn ghi **tiền điều kiện** (precondition) và **dữ liệu test** cụ thể.
43
+ 5. Phủ đủ: happy path → edge/biên → negative. Không chỉ test trường hợp đúng.
44
+ 6. Mỗi testcase truy vết được về 1 mục checklist và/hoặc 1 yêu cầu trong spec.
45
+
46
+ ## 5. Khi gặp điểm mơ hồ
47
+
48
+ - KHÔNG tự bịa nghiệp vụ. Ghi rõ là **giả định (assumption)** và đánh dấu cần xác nhận.
49
+ - Dồn các điểm chưa rõ vào bước QA (`/tc-qa`) để hỏi, đừng đoán bừa rồi viết testcase sai.
@@ -0,0 +1,92 @@
1
+ # HƯỚNG DẪN VÀ TEMPLATE VIẾT TEST CASE CHUẨN DỰ ÁN (MD FORMAT)
2
+
3
+ Tài liệu này cung cấp **Template Test Case** chuẩn chỉnh và hướng dẫn chi tiết dành cho QA/QC/Tester để xây dựng danh sách kịch bản kiểm thử (Test Cases) chất lượng cao bằng định dạng Markdown. Ngoài ra, tài liệu còn đính kèm **AI Prompt** để sinh Test Case tự động từ tài liệu SRS hoặc giao diện HTML.
4
+
5
+ ---
6
+
7
+ ```markdown
8
+ # [Screen_ID]_[Screen_Name] - Test Cases
9
+
10
+ ## 1. Thông tin chung
11
+
12
+ | Mục | Chi tiết |
13
+ |:---|:---|
14
+ | **Mã màn hình - Tên màn hình** | [Ví dụ: AD10_Create Product] |
15
+ | **Tài liệu tham chiếu (SRS)** | [Ví dụ: 【K'S CANDY】_SRS_v1.5] |
16
+ | **Người tạo (Author)** | [Ví dụ: LyLT] |
17
+ | **Ngày tạo (Created Date)** | [Ví dụ: 2026-06-15] |
18
+ | **Người kiểm duyệt (Reviewer)** | [Ví dụ: Nguyễn Văn A] |
19
+ | **Ngày kiểm duyệt (Review Date)** | [Ví dụ: 2026-06-16] |
20
+
21
+ ## 2. Kết quả kiểm thử tổng hợp (Test Execution Summary)
22
+
23
+ | Vòng kiểm thử (Round) | Đạt (Passed) | Lỗi (Failed) | Chưa test (Untest) | Chờ (Pending) | Tổng số (Total) | Tỷ lệ Đạt (%) |
24
+ |:---|:---:|:---:|:---:|:---:|:---:|:---:|
25
+ | Round 1 | 0 | 0 | 0 | 0 | 0 | 0% |
26
+ | Round 2 | 0 | 0 | 0 | 0 | 0 | 0% |
27
+
28
+ ---
29
+
30
+ ## 3. Danh sách Test Cases Chi Tiết
31
+
32
+ ### 3.1. Kiểm thử truy cập & Phân quyền (Access & Authorization)
33
+
34
+ | Test Case ID | Test Case Name | Severity | Pre-condition | Steps | Data Test | Expected Result | Ticket ID | Comment | R1 Result | R1 Date | R1 Tester | R2 Result | R2 Date | R2 Tester |
35
+ |---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
36
+ | [ID_001] | Truy cập trực tiếp qua URL khi chưa đăng nhập | High | Người dùng chưa đăng nhập hệ thống | 1. Nhập URL màn hình vào thanh địa chỉ trình duyệt.<br>2. Nhấn Enter. | URL của màn hình | Hệ thống không cho phép truy cập.<br>Tự động chuyển hướng về trang Đăng nhập (Login). | | | | | | | | |
37
+ | [ID_002] | Truy cập trực tiếp qua URL khi đã đăng nhập | Medium | Người dùng đã đăng nhập hệ thống thành công | 1. Nhập URL màn hình vào thanh địa chỉ trình duyệt.<br>2. Nhấn Enter. | URL của màn hình | Hệ thống cho phép truy cập.<br>Hiển thị đúng giao diện màn hình. | | | | | | | | |
38
+ | [ID_003] | Truy cập qua button/menu điều hướng | Low | Người dùng đang ở màn hình danh sách | 1. Click vào nút "Thêm mới" hoặc menu tương ứng. | - | Hệ thống mở màn hình đăng ký/thực hiện tương ứng thành công. | | | | | | | | |
39
+
40
+ ### 3.2. Kiểm thử Giao diện Người dùng (UI/UX)
41
+
42
+ | Test Case ID | Test Case Name | Severity | Pre-condition | Steps | Data Test | Expected Result | Ticket ID | Comment | R1 Result | R1 Date | R1 Tester | R2 Result | R2 Date | R2 Tester |
43
+ |---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
44
+ | [ID_004] | Kiểm tra hiển thị giao diện tổng quan | Low | Màn hình hiển thị bình thường | 1. Quan sát giao diện màn hình.<br>2. Kiểm tra layout, màu sắc, font chữ, khoảng cách giữa các trường. | - | 1. Layout cân đối, font chữ và cỡ chữ đồng nhất.<br>2. Các trường bắt buộc nhập có dấu sao đỏ (*).<br>3. Không có lỗi chính tả, lỗi dịch thuật tiếng Nhật/Anh/Việt.<br>4. Định dạng placeholder hiển thị chính xác theo thiết kế. | | | | | | | | |
45
+
46
+ ### 3.3. Kiểm thử Validation các trường nhập liệu (Input Validation)
47
+ *(Tạo riêng từng bảng hoặc nhóm theo từng Field để dễ theo dõi)*
48
+
49
+ #### * Đối với Trường nhập liệu Text (Ví dụ: 【品番】/【品名】...)
50
+ | Test Case ID | Test Case Name | Severity | Pre-condition | Steps | Data Test | Expected Result | Ticket ID | Comment | R1 Result | R1 Date | R1 Tester | R2 Result | R2 Date | R2 Tester |
51
+ |---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
52
+ | [ID_005] | Kiểm tra giá trị mặc định | Low | Đã truy cập màn hình | 1. Quan sát trường [Tên Trường]. | - | Giá trị mặc định là trống (blank).<br>Hiển thị đúng Placeholder thiết kế. | | | | | | | | |
53
+ | [ID_006] | Kiểm tra trường bắt buộc nhập để trống | High | Đã truy cập màn hình | 1. Để trống trường [Tên Trường].<br>2. Bấm nút thực hiện (Đăng ký/Lưu). | Empty | 1. Hiển thị thông báo lỗi trên đầu trang hoặc dưới field: "Hãy nhập [Tên Trường]" (tiếng Nhật/Anh tương ứng).<br>2. Field bị highlight viền đỏ. | | | | | | | | |
54
+ | [ID_007] | Kiểm tra nhập ký tự khoảng trắng (Spaces) | Medium | Đã truy cập màn hình | 1. Nhập toàn khoảng trắng vào trường.<br>2. Bấm nút thực hiện (Đăng ký/Lưu) hoặc focus out. | `" "` | Hệ thống xem như để trống.<br>Báo lỗi bắt buộc nhập (nếu là trường Required) hoặc tự động trim khoảng trắng. | | | | | | | | |
55
+ | [ID_008] | Kiểm tra nhập khoảng trắng ở đầu/cuối chuỗi | Low | Đã truy cập màn hình | 1. Nhập chuỗi có khoảng trắng ở đầu/cuối.<br>2. Bấm nút thực hiện (Đăng ký/Lưu). | `" data_test "` | Hệ thống tự động cắt bỏ (trim) khoảng trắng ở đầu và cuối chuỗi trước khi lưu vào DB. | | | | | | | | |
56
+ | [ID_009] | Kiểm tra nhập độ dài tối thiểu/tối đa (Boundary Value) | Medium | Đã truy cập màn hình, biết Maxlength = N | 1. Nhập chuỗi có độ dài N - 1 ký tự.<br>2. Nhập chuỗi có độ dài N ký tự.<br>3. Nhập chuỗi có độ dài > N ký tự. | Chuỗi test tương ứng | - Với độ dài <= N: Cho phép nhập và lưu bình thường.<br>- Với độ dài > N: Hệ thống chặn trực tiếp trên UI (không cho gõ tiếp) hoặc báo lỗi hợp lệ. | | | | | | | | |
57
+ | [ID_010] | Kiểm tra nhập ký tự đặc biệt / Tiếng Nhật Halfwidth & Fullwidth | Medium | Đã truy cập màn hình | 1. Nhập các ký tự đặc biệt (!@#$).<br>2. Nhập ký tự Halfwidth (カタカナ, 123).<br>3. Nhập ký tự Fullwidth (カタカナ, 123). | Dữ liệu kiểm thử | Hệ thống lưu trữ đúng định dạng ký tự đã nhập (hoặc báo lỗi chuẩn nếu có quy định hạn chế định dạng). | | | | | | | | |
58
+ | [ID_011] | Kiểm tra thao tác Copy/Paste | Low | Đã truy cập màn hình | 1. Copy một chuỗi hợp lệ.<br>2. Paste vào trường thông tin.<br>3. Bấm nút thực hiện. | - | Cho phép paste dữ liệu vào field thành công và xử lý lưu bình thường. | | | | | | | | |
59
+
60
+ #### * Đối với Trường Số (Number / Price / Quantity)
61
+ | Test Case ID | Test Case Name | Severity | Pre-condition | Steps | Data Test | Expected Result | Ticket ID | Comment | R1 Result | R1 Date | R1 Tester | R2 Result | R2 Date | R2 Tester |
62
+ |---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
63
+ | [ID_012] | Kiểm tra nhập chữ cái và ký tự đặc biệt | Medium | Đã truy cập màn hình | 1. Cố gắng nhập chữ cái (a, b, c...) hoặc ký tự đặc biệt.<br>2. Bấm nút thực hiện. | `"abc"`, `"@#$"` | UI ngăn không cho nhập chữ cái/ký tự đặc biệt, chỉ chấp nhận chữ số. | | | | | | | | |
64
+ | [ID_013] | Kiểm tra nhập số âm | High | Đã truy cập màn hình | 1. Nhập số âm.<br>2. Bấm nút thực hiện. | `-10` | Báo lỗi giá trị phải lớn hơn hoặc bằng 0 (hoặc chặn dấu trừ `-` trực tiếp từ UI). | | | | | | | | |
65
+ | [ID_014] | Kiểm tra nhập số thập phân | High | Đã truy cập màn hình | 1. Nhập số có dấu phẩy thập phân.<br>2. Bấm nút thực hiện. | `1.5`, `2,3` | Báo lỗi chỉ chấp nhận số nguyên (hoặc chấp nhận số thập phân tùy đặc tả nghiệp vụ). | | | | | | | | |
66
+ | [ID_015] | Kiểm tra hiển thị định dạng phân tách hàng nghìn | Low | Đã truy cập màn hình | 1. Nhập số lớn.<br>2. Focus out khỏi trường nhập liệu. | `1000000` | Số tự động định dạng phân tách hàng nghìn (Ví dụ: `1,000,000`). | | | | | | | | |
67
+
68
+ #### * Đối với Trường File Upload (Hình ảnh)
69
+ | Test Case ID | Test Case Name | Severity | Pre-condition | Steps | Data Test | Expected Result | Ticket ID | Comment | R1 Result | R1 Date | R1 Tester | R2 Result | R2 Date | R2 Tester |
70
+ |---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
71
+ | [ID_016] | Kiểm tra không upload file (Trường tùy chọn) | Medium | Đã truy cập màn hình | 1. Không chọn file upload.<br>2. Bấm nút thực hiện. | - | Hệ thống cho phép thực hiện thành công mà không báo lỗi. | | | | | | | | |
72
+ | [ID_017] | Kiểm tra upload file sai định dạng | High | Định dạng cho phép: jpeg, png | 1. Chọn upload file có định dạng không được phép (xlsx, gif, pdf...). | File `.pdf`, `.xlsx` | Upload không thành công. Hiển thị thông báo lỗi đúng thiết kế: "Hình ảnh phải là định dạng jpeg hoặc png." | | | | | | | | |
73
+ | [ID_018] | Kiểm tra upload dung lượng vượt quá giới hạn | High | Giới hạn dung lượng: tối đa 10MB | 1. Chọn file có kích thước > 10MB.<br>2. Tiến hành upload. | File kích thước `10.5MB` | Upload thất bại. Hiển thị lỗi cảnh báo: "Dung lượng hình ảnh vượt quá 10MB." | | | | | | | | |
74
+ | [ID_019] | Kiểm tra upload file giả mạo đuôi mở rộng (Spoofing) | High | Đã truy cập màn hình | 1. Đổi đuôi file thực thi nguy hiểm `.exe` thành `.jpg`.<br>2. Chọn upload file này. | File `.exe` đổi tên thành `.jpg` | Hệ thống kiểm tra phần thân file (MIME type) thực tế và báo lỗi không đúng định dạng. | | | | | | | | |
75
+ | [ID_020] | Kiểm tra kéo thả file (Drag & Drop) | Low | Đã truy cập màn hình | 1. Kéo file ảnh thả vào vùng upload. | File `.png` hợp lệ | Upload file thành công và hiển thị thumbnail ảnh xem trước trên giao diện. | | | | | | | | |
76
+
77
+ ### 3.4. Kiểm thử Logic Nghiệp vụ (Business Rules - BR)
78
+
79
+ | Test Case ID | Test Case Name | Severity | Pre-condition | Steps | Data Test | Expected Result | Ticket ID | Comment | R1 Result | R1 Date | R1 Tester | R2 Result | R2 Date | R2 Tester |
80
+ |---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
81
+ | [ID_021] | Kiểm tra ràng buộc trùng lặp dữ liệu duy nhất (Unique) | High | Đã tồn tại bản ghi trong DB | 1. Nhập thông tin trùng khóa chính/mã duy nhất với bản ghi cũ.<br>2. Điền các thông tin hợp lệ khác.<br>3. Bấm Đăng ký. | Mã trùng lặp | Hệ thống báo lỗi trùng lặp: "Mã/Tên này đã tồn tại trong hệ thống. Vui lòng kiểm tra lại." | | | | | | | | |
82
+ | [ID_022] | Kiểm tra logic liên kết dữ liệu động (Dynamic Form Control) | High | Điều kiện thay đổi hiển thị | 1. Tích chọn/Bỏ tích chọn [Checkbox điều kiện]. | - | Giao diện tự động thay đổi hiển thị ẩn/hiện hoặc disable/enable các trường thông tin liên quan theo đúng mô tả BR. | | | | | | | | |
83
+ | [ID_023] | Kiểm tra lưu dữ liệu vào Database thành công | Critical | Nhập đầy đủ và chính xác tất cả dữ liệu hợp lệ | 1. Nhập toàn bộ dữ liệu hợp lệ.<br>2. Bấm nút Đăng ký.<br>3. Kiểm tra DB và màn hình danh sách. | Dữ liệu hợp lệ | 1. Lưu bản ghi mới thành công.<br>2. Hiển thị thông báo thành công.<br>3. Dữ liệu trong Database khớp hoàn toàn các trường thông tin đã điền trên UI. | | | | | | | | |
84
+
85
+ ### 3.5. Kiểm thử Ngoại lệ & Hệ thống (Exceptions & Systems)
86
+
87
+ | Test Case ID | Test Case Name | Severity | Pre-condition | Steps | Data Test | Expected Result | Ticket ID | Comment | R1 Result | R1 Date | R1 Tester | R2 Result | R2 Date | R2 Tester |
88
+ |---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
89
+ | [ID_024] | Bấm nút Đăng ký nhiều lần liên tiếp (Double Click) | High | Đã điền đầy đủ dữ liệu hợp lệ | 1. Click liên tiếp nhiều lần vào nút Đăng ký/Lưu. | - | Nút bấm bị disable ngay sau lượt click đầu tiên. Hệ thống chỉ xử lý và tạo duy nhất 1 bản ghi trong DB, không tạo trùng lặp. | | | | | | | | |
90
+ | [ID_025] | Kiểm tra mất kết nối mạng đột ngột khi bấm Lưu | High | Điền đầy đủ dữ liệu hợp lệ | 1. Bấm nút Lưu.<br>2. Đồng thời ngắt kết nối mạng (hoặc giả lập mất kết nối mạng). | - | Hệ thống hiển thị loading và thông báo lỗi kết nối mạng, không bị crash hoặc treo màn hình trắng. | | | | | | | | |
91
+ | [ID_026] | Kiểm tra nhấn nút Quay lại (戻る) | Low | Đã điền một số dữ liệu | 1. Nhập một số thông tin.<br>2. Bấm nút Quay lại. | - | Hệ thống chuyển hướng về màn hình danh sách trước đó.<br>Bản ghi mới không được tạo trong DB. | | | | | | | | |
92
+ ```