@relipa/ai-flow-kit 0.1.3 → 0.1.4
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.
- package/README.md +253 -91
- package/bin/aiflow.js +49 -1
- package/custom/skills/ba-skills/skill-ba-phan-tich-ban-dau-v1.md +44 -0
- package/custom/skills/ba-skills/skill-ba-prototype-v1.md +35 -0
- package/custom/skills/ba-skills/skill-ba-qa-template-v1.md +21 -0
- package/custom/skills/ba-skills/skill-ba-qa-v1.md +35 -0
- package/custom/skills/ba-skills/skill-ba-template-phan-tich-ban-dau-v1.md +30 -0
- package/custom/skills/ba-skills/skill-ba-template-uc-v1.md +83 -0
- package/custom/skills/ba-skills/skill-ba-ve-luong-mermaid-v1.md +35 -0
- package/custom/skills/ba-skills/skill-ba-viet-spec-uc-v1.md +38 -0
- package/custom/skills/ba-skills/skill-ba-xay-dung-business-rules-v1.md +39 -0
- package/custom/skills/execute-flow/SKILL.md +27 -36
- package/custom/skills/gate-review/SKILL.md +119 -0
- package/custom/skills/generate-test-report/SKILL.md +1 -1
- package/custom/skills/generate-testcase/SKILL.md +50 -11
- package/custom/skills/generate-testcase/templates/testcase.md +50 -59
- package/custom/skills/test-analysis/SKILL.md +37 -3
- package/custom/skills/test-skills/categories/00-core/00.01.requirement-analysis.md +111 -0
- package/custom/skills/test-skills/categories/00-core/00.02.risk-analysis.md +24 -0
- package/custom/skills/test-skills/categories/00-core/00.03.test-scenario-builder.md +90 -0
- package/custom/skills/test-skills/categories/00-core/00.04.testcase-review.md +68 -0
- package/custom/skills/test-skills/categories/01-test-design/01.01.boundary-value-analysis.md +30 -0
- package/custom/skills/test-skills/categories/01-test-design/01.02.equivalence.partitioning.md +27 -0
- package/custom/skills/test-skills/categories/01-test-design/01.03.decision-table.md +26 -0
- package/custom/skills/test-skills/categories/01-test-design/01.04.state.transition.md +26 -0
- package/custom/skills/test-skills/categories/01-test-design/01.05.pairwise.md +25 -0
- package/custom/skills/test-skills/categories/01-test-design/01.06.error-guessing.md +28 -0
- package/custom/skills/test-skills/categories/02-ui-testing/02.01.UI-layout.md +29 -0
- package/custom/skills/test-skills/categories/02-ui-testing/02.02.form-validation.md +57 -0
- package/custom/skills/test-skills/categories/02-ui-testing/02.03.navigation.md +27 -0
- package/custom/skills/test-skills/categories/02-ui-testing/02.04.localization.md +27 -0
- package/custom/skills/test-skills/categories/02-ui-testing/02.05.accessibility.md +27 -0
- package/custom/skills/test-skills/categories/03-business-testing/03.01.CRUD-testing.md +51 -0
- package/custom/skills/test-skills/categories/03-business-testing/03.02.workflow-testing.md +44 -0
- package/custom/skills/test-skills/categories/03-business-testing/03.03.permission-testing.md +41 -0
- package/custom/skills/test-skills/categories/03-business-testing/03.04.dependency-validation.md +40 -0
- package/custom/skills/test-skills/categories/03-business-testing/03.05.notification-testing.md +43 -0
- package/custom/skills/test-skills/categories/03-business-testing/03.06.calculation.testing.md +44 -0
- package/custom/skills/test-skills/categories/04-data-testing/04.01.database-testing.md +43 -0
- package/custom/skills/test-skills/categories/04-data-testing/04.02.import-export-testing.md +43 -0
- package/custom/skills/test-skills/categories/04-data-testing/04.03.data-mapping.md +39 -0
- package/custom/skills/test-skills/categories/04-data-testing/04.04.duplicate-handling.md +39 -0
- package/custom/skills/test-skills/categories/04-data-testing/04.05.migration.md +42 -0
- package/custom/skills/test-skills/categories/05-integration/05.01.API-testing.md +37 -0
- package/custom/skills/test-skills/categories/05-integration/05.02.third-party-integration.md +36 -0
- package/custom/skills/test-skills/categories/05-integration/05.03.batch-processing.md +38 -0
- package/custom/skills/test-skills/categories/05-integration/05.04.file-upload-download.md +40 -0
- package/custom/skills/test-skills/categories/08-domain-skills/CMS.md +34 -0
- package/custom/skills/test-skills/categories/08-domain-skills/Ecommerce.md +35 -0
- package/custom/skills/test-skills/categories/99-review/99.01.coverage-review.md +35 -0
- package/custom/skills/test-skills/categories/99-review/99.02.knowledge-learning.md +34 -0
- package/custom/skills/test-skills/categories/99-review/99.03.repository-update.md +33 -0
- package/custom/skills/test-skills/categories/99-review/99.04.change-history.md +38 -0
- package/custom/skills/test-skills/rules/Directory_and_Naming_Convention.md +257 -0
- package/custom/skills/test-skills/rules/QA_Writing_Standards.md +49 -0
- package/custom/skills/test-skills/template/template_testcase.md +83 -0
- package/custom/templates/shared/create-spec-workflow.md +435 -0
- package/custom/templates/shared/create-testcase-workflow.md +470 -0
- package/custom/templates/shared/gate-workflow.md +122 -16
- package/docs/common/CHANGELOG.md +47 -0
- package/package.json +2 -2
- package/scripts/create-score-excel.js +17 -7
- package/scripts/init.js +48 -1
- package/scripts/review.js +128 -0
- package/scripts/update.js +4 -1
- package/scripts/use.js +22 -16
|
@@ -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)
|
|
@@ -76,13 +99,11 @@ Liệt kê scenarios theo nhóm, output vào `test-plan/checklist.md`:
|
|
|
76
99
|
📙 **Regression** _(nếu Dev Artifacts Check Bước 2 tìm thấy impacted areas)_
|
|
77
100
|
- Mỗi item ghi rõ: "Regression — [vùng ảnh hưởng] — [lý do từ PR diff]"
|
|
78
101
|
|
|
79
|
-
```
|
|
80
102
|
⏸️ GATE 2 — PHASE 2a: SCENARIOS READY
|
|
81
103
|
Scenarios: [N] total
|
|
82
104
|
- Functional: [N] | Non-functional: [N] | Integration: [N] | Exploratory: [N] | Regression: [N]
|
|
83
|
-
→ Review: test-plan/checklist.md
|
|
105
|
+
→ Review: [test-plan/checklist.md](test-plan/checklist.md)
|
|
84
106
|
→ Type APPROVED to proceed to Phase 2b
|
|
85
|
-
```
|
|
86
107
|
|
|
87
108
|
---
|
|
88
109
|
|
|
@@ -155,14 +176,12 @@ Output testcases: `test-plan/test-cases/[ScreenID]-testcases.md`
|
|
|
155
176
|
| **Total** | **[S/M/L/XL]** |
|
|
156
177
|
```
|
|
157
178
|
|
|
158
|
-
```
|
|
159
179
|
⏸️ GATE 2 — PHASE 2b: TESTCASES GENERATED
|
|
160
180
|
Test cases: [N] total ([N] positive / [N] negative / [N] edge)
|
|
161
|
-
Test plan: test-plan/test-plan.md
|
|
162
|
-
→ Review: test-plan/test-cases/
|
|
181
|
+
Test plan: [test-plan/test-plan.md](test-plan/test-plan.md)
|
|
182
|
+
→ Review: [test-plan/test-cases/](test-plan/test-cases/)
|
|
163
183
|
→ Type APPROVED to proceed to Phase 2c (Review & Optimize)
|
|
164
184
|
→ Or provide feedback to update
|
|
165
|
-
```
|
|
166
185
|
|
|
167
186
|
---
|
|
168
187
|
|
|
@@ -206,13 +225,24 @@ Kiểm tra theo thứ tự, output vào `test-plan/review-report.md`:
|
|
|
206
225
|
Priority: High (phải fix trước Phase 2d) / Medium / Low (có thể defer)
|
|
207
226
|
```
|
|
208
227
|
|
|
209
|
-
```
|
|
210
228
|
⏸️ GATE 2 — PHASE 2c: REVIEW COMPLETE
|
|
211
229
|
Issues: [N] duplicate | [N] problematic | [N] to optimize | [N] missing
|
|
212
|
-
|
|
213
|
-
→
|
|
230
|
+
High priority chưa xử lý: [N]
|
|
231
|
+
→ Review: [test-plan/review-report.md](test-plan/review-report.md)
|
|
232
|
+
→ Type APPROVED to proceed to Phase 2d (chỉ khi High priority = 0)
|
|
214
233
|
→ Or provide specific fixes to apply
|
|
215
|
-
|
|
234
|
+
|
|
235
|
+
**Nếu nhận được APPROVED mà còn issues Priority High chưa xử lý → từ chối ngay:**
|
|
236
|
+
|
|
237
|
+
⛔ PHASE 2c BLOCKED — Còn [N] issues Priority HIGH chưa được xử lý:
|
|
238
|
+
|
|
239
|
+
| TC_ID | Vấn đề | Đề xuất sửa |
|
|
240
|
+
|-------|--------|------------|
|
|
241
|
+
| [TC_ID] | [vấn đề] | [đề xuất] |
|
|
242
|
+
|
|
243
|
+
→ Cung cấp fixes cho các issues trên, sau đó gõ APPROVED.
|
|
244
|
+
❌ APPROVED chỉ được chấp nhận khi không còn issues Priority High.
|
|
245
|
+
Medium và Low có thể defer — không block APPROVED.
|
|
216
246
|
|
|
217
247
|
---
|
|
218
248
|
|
|
@@ -301,3 +331,12 @@ Issues: [N] duplicate | [N] problematic | [N] to optimize | [N] missing
|
|
|
301
331
|
| **High** | Chức năng chính không hoạt động đúng |
|
|
302
332
|
| **Medium** | Chức năng phụ bị ảnh hưởng, workaround có thể có |
|
|
303
333
|
| **Low** | UI/UX nhỏ, cosmetic, không ảnh hưởng chức năng |
|
|
334
|
+
|
|
335
|
+
---
|
|
336
|
+
|
|
337
|
+
## Mandatory Rules
|
|
338
|
+
|
|
339
|
+
- ✅ **PHẢI** dừng và chờ APPROVED sau mỗi Phase (2a → 2b → 2c → 2d)
|
|
340
|
+
- ❌ **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
|
|
341
|
+
- ✅ Medium và Low issues không block APPROVED — có thể defer
|
|
342
|
+
- ❌ **KHÔNG** tự động chuyển phase mà không có APPROVED từ TESTER
|
|
@@ -11,78 +11,69 @@
|
|
|
11
11
|
| **Người kiểm duyệt (Reviewer)** | |
|
|
12
12
|
| **Ngày kiểm duyệt (Review Date)** | |
|
|
13
13
|
|
|
14
|
-
## 2.
|
|
14
|
+
## 2. Danh sách Test Cases Chi Tiết
|
|
15
15
|
|
|
16
|
-
|
|
17
|
-
|:---|:---:|:---:|:---:|:---:|:---:|:---:|
|
|
18
|
-
| Round 1 | 0 | 0 | 0 | 0 | 0 | 0% |
|
|
19
|
-
| Round 2 | 0 | 0 | 0 | 0 | 0 | 0% |
|
|
16
|
+
### 2.1. Kiểm thử Truy cập & Phân quyền (Access & Authorization)
|
|
20
17
|
|
|
21
|
-
|
|
18
|
+
| TC ID | Test Case Name | Severity | Pre-condition | Steps | Data Test | Expected Result | Ticket ID | Comment |
|
|
19
|
+
|---|---|---|---|---|---|---|---|---|
|
|
20
|
+
| [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). | | |
|
|
21
|
+
| [ID]_002 | Truy cập trực tiếp qua URL khi đã đăng nhập | Medium | Người dùng đã đăng nhập 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. | | |
|
|
22
|
+
| [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. | | |
|
|
22
23
|
|
|
23
|
-
|
|
24
|
+
### 2.2. Kiểm thử Giao diện Người dùng (UI/UX)
|
|
24
25
|
|
|
25
|
-
|
|
26
|
+
| TC ID | Test Case Name | Severity | Pre-condition | Steps | Data Test | Expected Result | Ticket ID | Comment |
|
|
27
|
+
|---|---|---|---|---|---|---|---|---|
|
|
28
|
+
| [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ả.<br>4. Định dạng placeholder hiển thị chính xác theo thiết kế. | | |
|
|
26
29
|
|
|
27
|
-
|
|
28
|
-
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|
29
|
-
| [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). | | | | | | | | |
|
|
30
|
-
| [ID]_002 | Truy cập trực tiếp qua URL khi đã đăng nhập | Medium | Người dùng đã đăng nhập 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. | | | | | | | | |
|
|
31
|
-
| [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. | | | | | | | | |
|
|
32
|
-
|
|
33
|
-
### 3.2. Kiểm thử Giao diện Người dùng (UI/UX)
|
|
34
|
-
|
|
35
|
-
| TC 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 |
|
|
36
|
-
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|
37
|
-
| [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ả.<br>4. Định dạng placeholder hiển thị chính xác theo thiết kế. | | | | | | | | |
|
|
38
|
-
|
|
39
|
-
### 3.3. Kiểm thử Validation các trường nhập liệu (Input Validation)
|
|
30
|
+
### 2.3. Kiểm thử Validation các trường nhập liệu (Input Validation)
|
|
40
31
|
|
|
41
32
|
*(Tạo riêng từng bảng hoặc nhóm theo từng Field để dễ theo dõi)*
|
|
42
33
|
|
|
43
34
|
#### * Đối với Trường [Tên Trường] — Text
|
|
44
35
|
|
|
45
|
-
| TC ID | Test Case Name | Severity | Pre-condition | Steps | Data Test | Expected Result | Ticket ID | Comment |
|
|
46
|
-
|
|
47
|
-
| [ID]_0xx | 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 theo thiết kế. | | |
|
|
48
|
-
| [ID]_0xx | 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: "Hãy nhập [Tên Trường]".<br>2. Field bị highlight viền đỏ. | | |
|
|
49
|
-
| [ID]_0xx | 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 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. | | |
|
|
50
|
-
| [ID]_0xx | 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. | | |
|
|
51
|
-
| [ID]_0xx | 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 độ dài N-1 ký tự.<br>2. Nhập chuỗi độ dài N ký tự.<br>3. Nhập chuỗi độ dài > N ký tự. | Chuỗi test tương ứng | - Độ dài <= N: cho phép nhập và lưu bình thường.<br>- Độ dài > N: hệ thống chặn trực tiếp trên UI hoặc báo lỗi hợp lệ. | | |
|
|
52
|
-
| [ID]_0xx | Kiểm tra nhập ký tự đặc biệt | Medium | Đã truy cập màn hình | 1. Nhập các ký tự đặc biệt (!@#$%^&*).<br>2. Bấm nút thực hiện. | `"!@#$%"` | Hệ thống lưu trữ đúng định dạng ký tự đã nhập (hoặc báo lỗi nếu có quy định hạn chế định dạng). | | |
|
|
53
|
-
| [ID]_0xx | 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. | | |
|
|
36
|
+
| TC ID | Test Case Name | Severity | Pre-condition | Steps | Data Test | Expected Result | Ticket ID | Comment |
|
|
37
|
+
|---|---|---|---|---|---|---|---|---|
|
|
38
|
+
| [ID]_0xx | 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 theo thiết kế. | | |
|
|
39
|
+
| [ID]_0xx | 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: "Hãy nhập [Tên Trường]".<br>2. Field bị highlight viền đỏ. | | |
|
|
40
|
+
| [ID]_0xx | 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 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. | | |
|
|
41
|
+
| [ID]_0xx | 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. | | |
|
|
42
|
+
| [ID]_0xx | 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 độ dài N-1 ký tự.<br>2. Nhập chuỗi độ dài N ký tự.<br>3. Nhập chuỗi độ dài > N ký tự. | Chuỗi test tương ứng | - Độ dài <= N: cho phép nhập và lưu bình thường.<br>- Độ dài > N: hệ thống chặn trực tiếp trên UI hoặc báo lỗi hợp lệ. | | |
|
|
43
|
+
| [ID]_0xx | Kiểm tra nhập ký tự đặc biệt | Medium | Đã truy cập màn hình | 1. Nhập các ký tự đặc biệt (!@#$%^&*).<br>2. Bấm nút thực hiện. | `"!@#$%"` | Hệ thống lưu trữ đúng định dạng ký tự đã nhập (hoặc báo lỗi nếu có quy định hạn chế định dạng). | | |
|
|
44
|
+
| [ID]_0xx | 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. | | |
|
|
54
45
|
|
|
55
46
|
#### * Đối với Trường Số (Number / Price / Quantity)
|
|
56
47
|
|
|
57
|
-
| TC ID | Test Case Name | Severity | Pre-condition | Steps | Data Test | Expected Result | Ticket ID | Comment |
|
|
58
|
-
|
|
59
|
-
| [ID]_0xx | 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ố. | | |
|
|
60
|
-
| [ID]_0xx | 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). | | |
|
|
61
|
-
| [ID]_0xx | 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ụ). | | |
|
|
62
|
-
| [ID]_0xx | 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 (VD: `1,000,000`). | | |
|
|
48
|
+
| TC ID | Test Case Name | Severity | Pre-condition | Steps | Data Test | Expected Result | Ticket ID | Comment |
|
|
49
|
+
|---|---|---|---|---|---|---|---|---|
|
|
50
|
+
| [ID]_0xx | 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ố. | | |
|
|
51
|
+
| [ID]_0xx | 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). | | |
|
|
52
|
+
| [ID]_0xx | 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ụ). | | |
|
|
53
|
+
| [ID]_0xx | 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 (VD: `1,000,000`). | | |
|
|
63
54
|
|
|
64
55
|
#### * Đối với Trường File Upload (Hình ảnh)
|
|
65
56
|
|
|
66
|
-
| TC ID | Test Case Name | Severity | Pre-condition | Steps | Data Test | Expected Result | Ticket ID | Comment |
|
|
67
|
-
|
|
68
|
-
| [ID]_0xx | 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. | | |
|
|
69
|
-
| [ID]_0xx | 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...).<br>2. Tiến hành upload. | 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." | | |
|
|
70
|
-
| [ID]_0xx | 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." | | |
|
|
71
|
-
| [ID]_0xx | 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. | | |
|
|
72
|
-
| [ID]_0xx | 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. | | |
|
|
73
|
-
|
|
74
|
-
###
|
|
75
|
-
|
|
76
|
-
| TC ID | Test Case Name | Severity | Pre-condition | Steps | Data Test | Expected Result | Ticket ID | Comment |
|
|
77
|
-
|
|
78
|
-
| [ID]_0xx | 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." | | |
|
|
79
|
-
| [ID]_0xx | 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ả Business Rule. | | |
|
|
80
|
-
| [ID]_0xx | 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. | | |
|
|
81
|
-
|
|
82
|
-
###
|
|
83
|
-
|
|
84
|
-
| TC ID | Test Case Name | Severity | Pre-condition | Steps | Data Test | Expected Result | Ticket ID | Comment |
|
|
85
|
-
|
|
86
|
-
| [ID]_0xx | 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. | | |
|
|
87
|
-
| [ID]_0xx | 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. | - | 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. | | |
|
|
88
|
-
| [ID]_0xx | 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. | | |
|
|
57
|
+
| TC ID | Test Case Name | Severity | Pre-condition | Steps | Data Test | Expected Result | Ticket ID | Comment |
|
|
58
|
+
|---|---|---|---|---|---|---|---|---|
|
|
59
|
+
| [ID]_0xx | 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. | | |
|
|
60
|
+
| [ID]_0xx | 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...).<br>2. Tiến hành upload. | 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." | | |
|
|
61
|
+
| [ID]_0xx | 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." | | |
|
|
62
|
+
| [ID]_0xx | 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. | | |
|
|
63
|
+
| [ID]_0xx | 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. | | |
|
|
64
|
+
|
|
65
|
+
### 2.4. Kiểm thử Logic Nghiệp vụ (Business Rules - BR)
|
|
66
|
+
|
|
67
|
+
| TC ID | Test Case Name | Severity | Pre-condition | Steps | Data Test | Expected Result | Ticket ID | Comment |
|
|
68
|
+
|---|---|---|---|---|---|---|---|---|
|
|
69
|
+
| [ID]_0xx | 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." | | |
|
|
70
|
+
| [ID]_0xx | 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ả Business Rule. | | |
|
|
71
|
+
| [ID]_0xx | 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. | | |
|
|
72
|
+
|
|
73
|
+
### 2.5. Kiểm thử Ngoại lệ & Hệ thống (Exceptions & Systems)
|
|
74
|
+
|
|
75
|
+
| TC ID | Test Case Name | Severity | Pre-condition | Steps | Data Test | Expected Result | Ticket ID | Comment |
|
|
76
|
+
|---|---|---|---|---|---|---|---|---|
|
|
77
|
+
| [ID]_0xx | 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. | | |
|
|
78
|
+
| [ID]_0xx | 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. | - | 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. | | |
|
|
79
|
+
| [ID]_0xx | 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. | | |
|
|
@@ -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:
|
|
@@ -225,7 +250,6 @@ Tạo `test-plan/test-analysis.md`:
|
|
|
225
250
|
|
|
226
251
|
### Step 5: Present to Tester
|
|
227
252
|
|
|
228
|
-
```
|
|
229
253
|
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
230
254
|
⏸️ GATE 1: TEST ANALYSIS READY
|
|
231
255
|
|
|
@@ -235,13 +259,22 @@ Summary:
|
|
|
235
259
|
Approach: [Manual / Automation / Mixed]
|
|
236
260
|
Estimate: [S / M / L / XL]
|
|
237
261
|
|
|
238
|
-
→ Review: test-plan/test-analysis.md
|
|
262
|
+
→ Review: [test-plan/test-analysis.md](test-plan/test-analysis.md)
|
|
239
263
|
→ Type APPROVED to proceed to Gate 2
|
|
240
264
|
→ Or provide feedback to update
|
|
241
265
|
|
|
242
266
|
⚠️ I will NOT proceed to Gate 2 until I receive "APPROVED".
|
|
243
267
|
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
244
|
-
|
|
268
|
+
|
|
269
|
+
**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:**
|
|
270
|
+
|
|
271
|
+
⛔ GATE 1 BLOCKED — Còn câu hỏi chưa được trả lời.
|
|
272
|
+
|
|
273
|
+
Câu hỏi đang chờ:
|
|
274
|
+
- [câu hỏi clarify chưa được trả lời]
|
|
275
|
+
|
|
276
|
+
→ Vui lòng trả lời câu hỏi trên trước khi gõ APPROVED.
|
|
277
|
+
❌ APPROVED không được chấp nhận khi còn câu hỏi chưa được làm rõ.
|
|
245
278
|
|
|
246
279
|
---
|
|
247
280
|
|
|
@@ -257,6 +290,7 @@ Summary:
|
|
|
257
290
|
- ❌ **KHÔNG** tiến sang Gate 2 khi chưa nhận "APPROVED"
|
|
258
291
|
- ❌ **KHÔNG** hỏi nhiều câu cùng lúc — từng câu một, chờ trả lời
|
|
259
292
|
- ❌ **KHÔNG** viết code ở Gate 1
|
|
293
|
+
- ❌ **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
294
|
- ✅ **PHẢI** lưu `test-plan/test-analysis.md`
|
|
261
295
|
- ✅ **PHẢI** hiển thị Gate 1 prompt và chờ APPROVED
|
|
262
296
|
- ✅ **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).
|