@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.
- package/README.md +139 -0
- package/bin/aiflow.js +89 -2
- package/custom/harness/playwright/.env.example +10 -0
- package/custom/harness/playwright/playwright.config.ts +34 -0
- package/custom/harness/playwright/tests/e2e/auth.setup.ts +25 -0
- package/custom/harness/playwright/tests/e2e/fixtures/test.ts +6 -0
- package/custom/harness/playwright/tests/e2e/pages/BasePage.ts +9 -0
- package/custom/harness/playwright/tests/e2e/support/auth.ts +5 -0
- package/custom/mcp-presets/playwright.json +8 -0
- package/custom/rules/test-patterns.md +70 -0
- package/custom/skills/automation-testing/SKILL.md +239 -0
- package/custom/skills/automation-testing/templates/BasePage.ts +29 -0
- package/custom/skills/automation-testing/templates/PageObject.example.ts +29 -0
- package/custom/skills/automation-testing/templates/playwright.config.ts +39 -0
- package/custom/skills/automation-testing/templates/spec.example.ts +29 -0
- 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/coverage-check/SKILL.md +202 -0
- package/custom/skills/evidence-aggregation/SKILL.md +246 -0
- package/custom/skills/execute-flow/SKILL.md +499 -0
- package/custom/skills/execute-flow/templates/playwright.config.ts +39 -0
- package/custom/skills/gate-review/SKILL.md +195 -0
- package/custom/skills/generate-test-report/SKILL.md +99 -0
- package/custom/skills/generate-test-report/templates/test-report.md +58 -0
- package/custom/skills/generate-testcase/SKILL.md +350 -0
- package/custom/skills/generate-testcase/templates/testcase.md +88 -0
- package/custom/skills/log-bug/SKILL.md +131 -0
- package/custom/skills/pr-impact-analysis/SKILL.md +180 -0
- package/custom/skills/retest-orchestration/SKILL.md +191 -0
- package/custom/skills/script-sync/SKILL.md +208 -0
- package/custom/skills/test-analysis/SKILL.md +300 -0
- 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 +92 -0
- package/custom/templates/shared/create-spec-workflow.md +441 -0
- package/custom/templates/shared/create-testcase-workflow.md +470 -0
- package/custom/templates/shared/gate-workflow.md +421 -11
- package/docs/common/CHANGELOG.md +52 -0
- package/docs/common/QUICK_START.md +30 -0
- package/docs/common/cli-reference.md +48 -7
- package/package.json +2 -2
- package/scripts/create-score-excel.js +37 -14
- package/scripts/detect.js +10 -0
- package/scripts/guide.js +9 -0
- package/scripts/init.js +48 -1
- package/scripts/prompt.js +36 -0
- package/scripts/review.js +91 -0
- package/scripts/scaffold-playwright.js +106 -0
- package/scripts/task.js +21 -7
- package/scripts/update.js +127 -124
- package/scripts/use.js +36 -12
|
@@ -0,0 +1,300 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: test-analysis
|
|
3
|
+
description: Gate 1 — AI phân tích requirements từ ticket Backlog/Jira + fetch linked docs, hỏi clarify với TESTER (từng câu một), xác định scope/risks/approach, viết test-analysis.md. TESTER review và APPROVED để sang Gate 2.
|
|
4
|
+
keywords: gate1, test analysis, requirement, scope, risk, approach, tester, clarify, ticket, backlog, jira
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Test Analysis — Gate 1
|
|
8
|
+
|
|
9
|
+
> **GATE 1: Chạy đầu tiên, trước tất cả gates khác.**
|
|
10
|
+
>
|
|
11
|
+
> Principle: AI đọc ticket/requirements, hỏi clarify (từng câu một), xác định scope + risks + approach, viết test-analysis.md. TESTER review và APPROVED.
|
|
12
|
+
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
## Conditions to Enter Gate 1
|
|
16
|
+
|
|
17
|
+
Một trong hai:
|
|
18
|
+
- ✅ Ticket context tồn tại tại `.aiflow/context/current.json` (load qua `ak use TICKET-123`)
|
|
19
|
+
- ✅ Tester mô tả feature cần test trực tiếp trong chat
|
|
20
|
+
|
|
21
|
+
---
|
|
22
|
+
|
|
23
|
+
## Steps
|
|
24
|
+
|
|
25
|
+
### Step 1: Load Input
|
|
26
|
+
|
|
27
|
+
1. Đọc `.aiflow/context/current.json` nếu tồn tại → lấy ticket title, description, acceptance criteria
|
|
28
|
+
2. Nếu có `supplementaryContext[]` → đọc từng item (linked tickets, comments, files, docs)
|
|
29
|
+
3. Nếu thấy URL backlog/jira trong description chưa được fetch → chạy `ak fetch-links <url>` và tích hợp kết quả
|
|
30
|
+
4. Nếu không có context file → hỏi TESTER: "Bạn muốn test feature nào? Mô tả ngắn gọn hoặc paste ticket description."
|
|
31
|
+
|
|
32
|
+
**Trigger kép:**
|
|
33
|
+
- Sau `ak use TICKET-123`: AI auto-start Gate 1 — TESTER không cần gõ thêm lệnh
|
|
34
|
+
- Sau `ak fetch-links <url>` (optional): AI tích hợp linked requirements trước khi phân tích
|
|
35
|
+
|
|
36
|
+
---
|
|
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
|
+
|
|
63
|
+
### Step 2: Phân tích Requirements
|
|
64
|
+
|
|
65
|
+
Dựa trên ticket/description, phân tích:
|
|
66
|
+
|
|
67
|
+
1. **Scope** — Module/màn hình/feature cụ thể đang test. Ranh giới: bao gồm gì, không bao gồm gì
|
|
68
|
+
2. **Functional Analysis**:
|
|
69
|
+
- Feature Overview (mô tả tính năng)
|
|
70
|
+
- Main Flow (happy path chính)
|
|
71
|
+
- Alternative Flows (các luồng phụ)
|
|
72
|
+
- User Roles / Permissions
|
|
73
|
+
- Business Rules
|
|
74
|
+
- Validations (input/output)
|
|
75
|
+
- State / Status liên quan
|
|
76
|
+
- API / External System (nếu có)
|
|
77
|
+
3. **Non-Functional Analysis**:
|
|
78
|
+
- Accessibility (WCAG, screen reader)
|
|
79
|
+
- Compatibility (Browser/Device/OS)
|
|
80
|
+
4. **Risk Areas** — High-risk flows, edge cases dễ có bug
|
|
81
|
+
5. **Test Approach** — Manual / Automation / Mixed + estimate số TCs
|
|
82
|
+
|
|
83
|
+
---
|
|
84
|
+
|
|
85
|
+
### Step 3: Clarify Q&A
|
|
86
|
+
|
|
87
|
+
**Hỏi clarify khi:**
|
|
88
|
+
- Acceptance criteria không đo được hoặc mơ hồ
|
|
89
|
+
- Scope không rõ (in-scope vs out-of-scope)
|
|
90
|
+
- Business rule có edge cases chưa được document
|
|
91
|
+
- Môi trường test chưa xác định (browser, device, data)
|
|
92
|
+
- Dependency với feature/ticket khác chưa rõ
|
|
93
|
+
- Permission/role matrix chưa đầy đủ
|
|
94
|
+
|
|
95
|
+
**Cách hỏi:** từng câu một, chờ tester trả lời trước khi hỏi tiếp.
|
|
96
|
+
|
|
97
|
+
**Ví dụ:**
|
|
98
|
+
> "Tester có muốn test trên mobile (iOS/Android) hay chỉ desktop browser?"
|
|
99
|
+
> (chờ trả lời)
|
|
100
|
+
> "Role nào có thể thực hiện action này — tất cả user hay chỉ admin?"
|
|
101
|
+
|
|
102
|
+
**Khi đủ thông tin** → tiến sang Step 4 mà không cần hỏi thêm.
|
|
103
|
+
|
|
104
|
+
---
|
|
105
|
+
|
|
106
|
+
### Step 4: Write test-analysis.md
|
|
107
|
+
|
|
108
|
+
Tạo `test-plan/test-analysis.md`:
|
|
109
|
+
|
|
110
|
+
```markdown
|
|
111
|
+
# Test Analysis: [Ticket ID / Feature Name]
|
|
112
|
+
|
|
113
|
+
**Date:** [YYYY-MM-DD]
|
|
114
|
+
**Status:** ⏸️ Waiting for TESTER Approval
|
|
115
|
+
**Risk Level:** [Low / Medium / High]
|
|
116
|
+
**Estimate:** [S / M / L / XL]
|
|
117
|
+
|
|
118
|
+
---
|
|
119
|
+
|
|
120
|
+
## 1. Scope Definition
|
|
121
|
+
|
|
122
|
+
### In-Scope
|
|
123
|
+
- [Module/màn hình/feature cụ thể đang test]
|
|
124
|
+
- [...]
|
|
125
|
+
|
|
126
|
+
### Out-of-Scope
|
|
127
|
+
- [Những gì KHÔNG test trong task này]
|
|
128
|
+
|
|
129
|
+
---
|
|
130
|
+
|
|
131
|
+
## 2. Functional Analysis
|
|
132
|
+
|
|
133
|
+
### Feature Overview
|
|
134
|
+
[Mô tả tính năng — 2-3 câu]
|
|
135
|
+
|
|
136
|
+
### Main Flow
|
|
137
|
+
1. [Bước 1]
|
|
138
|
+
2. [Bước 2]
|
|
139
|
+
3. [...]
|
|
140
|
+
|
|
141
|
+
### Alternative Flows
|
|
142
|
+
- **Alt 1:** [Tên flow] — [Mô tả]
|
|
143
|
+
- **Alt 2:** [Tên flow] — [Mô tả]
|
|
144
|
+
|
|
145
|
+
### User Roles / Permissions
|
|
146
|
+
| Role | Quyền | Ghi chú |
|
|
147
|
+
|------|-------|---------|
|
|
148
|
+
| [Role] | [Được làm gì] | [Hạn chế nếu có] |
|
|
149
|
+
|
|
150
|
+
### Business Rules
|
|
151
|
+
- **BR1:** [Mô tả rule]
|
|
152
|
+
- **BR2:** [...]
|
|
153
|
+
|
|
154
|
+
### Validations
|
|
155
|
+
| Field/Action | Rule | Error Message |
|
|
156
|
+
|-------------|------|---------------|
|
|
157
|
+
| [Field] | [Rule] | [Message] |
|
|
158
|
+
|
|
159
|
+
### State / Status
|
|
160
|
+
| State | Trigger | Hành vi |
|
|
161
|
+
|-------|---------|---------|
|
|
162
|
+
| [State] | [Khi nào] | [Màn hình/behavior] |
|
|
163
|
+
|
|
164
|
+
### API / External System
|
|
165
|
+
| API | Endpoint | Mục đích |
|
|
166
|
+
|-----|----------|---------|
|
|
167
|
+
| [API] | [URL] | [Dùng để làm gì] |
|
|
168
|
+
|
|
169
|
+
---
|
|
170
|
+
|
|
171
|
+
## 3. Non-Functional Analysis
|
|
172
|
+
|
|
173
|
+
### Accessibility (WCAG)
|
|
174
|
+
- [ ] [Yêu cầu accessibility cụ thể]
|
|
175
|
+
|
|
176
|
+
### Compatibility
|
|
177
|
+
| Browser/Device | Version | Priority |
|
|
178
|
+
|----------------|---------|----------|
|
|
179
|
+
| Chrome Desktop | Latest | High |
|
|
180
|
+
| [Other] | [...] | [...] |
|
|
181
|
+
|
|
182
|
+
---
|
|
183
|
+
|
|
184
|
+
## 4. Test Environment
|
|
185
|
+
|
|
186
|
+
### Test Data Dependencies
|
|
187
|
+
- [Data cần chuẩn bị trước khi test]
|
|
188
|
+
|
|
189
|
+
### Third-party Integrations
|
|
190
|
+
- [Integration cần mock hay test thật]
|
|
191
|
+
|
|
192
|
+
---
|
|
193
|
+
|
|
194
|
+
## 5. Requirements Clarification (Q&A)
|
|
195
|
+
|
|
196
|
+
| Câu hỏi | Trả lời | Ngày |
|
|
197
|
+
|---------|---------|------|
|
|
198
|
+
| [Q1] | [A1] | [Date] |
|
|
199
|
+
| [Q2] | [A2] | [...] |
|
|
200
|
+
|
|
201
|
+
---
|
|
202
|
+
|
|
203
|
+
## 6. Assumptions
|
|
204
|
+
|
|
205
|
+
- [Assumption 1]
|
|
206
|
+
- [Assumption 2]
|
|
207
|
+
|
|
208
|
+
---
|
|
209
|
+
|
|
210
|
+
## 7. Risk Areas
|
|
211
|
+
|
|
212
|
+
### High-Risk Flows
|
|
213
|
+
- [Flow dễ có bug — lý do]
|
|
214
|
+
|
|
215
|
+
### Edge Cases cần chú ý
|
|
216
|
+
- [Edge case 1]
|
|
217
|
+
- [Edge case 2]
|
|
218
|
+
|
|
219
|
+
---
|
|
220
|
+
|
|
221
|
+
## 8. Test Approach
|
|
222
|
+
|
|
223
|
+
- **Manual test cases:** [N] cases
|
|
224
|
+
- **Automation (Playwright):** [N] cases
|
|
225
|
+
- **Test environment:** [URL, browser, device]
|
|
226
|
+
- **Test data:** [Cách chuẩn bị data]
|
|
227
|
+
|
|
228
|
+
---
|
|
229
|
+
|
|
230
|
+
## 9. Out of Scope
|
|
231
|
+
|
|
232
|
+
- [Item 1 — lý do không test]
|
|
233
|
+
- [Item 2]
|
|
234
|
+
|
|
235
|
+
---
|
|
236
|
+
|
|
237
|
+
## 10. Effort Estimate
|
|
238
|
+
|
|
239
|
+
| Loại | Size | Ghi chú |
|
|
240
|
+
|------|------|---------|
|
|
241
|
+
| Gate 2 (Test Planning) | S/M/L | Khoảng [N] scenarios |
|
|
242
|
+
| Gate 3 (Execution) | S/M/L | Khoảng [N] TCs |
|
|
243
|
+
| Gate 4 (Report) | S | Tổng hợp kết quả |
|
|
244
|
+
| **Total** | **S/M/L/XL** | |
|
|
245
|
+
|
|
246
|
+
> S = <2h · M = 2–4h · L = 4–8h · XL = 8h+ (split recommended)
|
|
247
|
+
```
|
|
248
|
+
|
|
249
|
+
---
|
|
250
|
+
|
|
251
|
+
### Step 5: Present to Tester
|
|
252
|
+
|
|
253
|
+
```
|
|
254
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
255
|
+
⏸️ GATE 1: TEST ANALYSIS READY
|
|
256
|
+
|
|
257
|
+
Summary:
|
|
258
|
+
Scope: [N] features / [N] flows
|
|
259
|
+
Risk: [Low / Medium / High]
|
|
260
|
+
Approach: [Manual / Automation / Mixed]
|
|
261
|
+
Estimate: [S / M / L / XL]
|
|
262
|
+
|
|
263
|
+
→ Review: [test-plan/test-analysis.md](test-plan/test-analysis.md)
|
|
264
|
+
→ Type APPROVED to proceed to Gate 2
|
|
265
|
+
→ Or provide feedback to update
|
|
266
|
+
|
|
267
|
+
⚠️ I will NOT proceed to Gate 2 until I receive "APPROVED".
|
|
268
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
269
|
+
```
|
|
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
|
+
|
|
283
|
+
---
|
|
284
|
+
|
|
285
|
+
### Step 6: Handle Feedback
|
|
286
|
+
|
|
287
|
+
- Tester cung cấp feedback → cập nhật `test-analysis.md` → re-show Gate 1 prompt
|
|
288
|
+
- Tester gõ `APPROVED` → tiến sang Gate 2 (`generate-testcase` skill)
|
|
289
|
+
|
|
290
|
+
---
|
|
291
|
+
|
|
292
|
+
## Mandatory Rules
|
|
293
|
+
|
|
294
|
+
- ❌ **KHÔNG** tiến sang Gate 2 khi chưa nhận "APPROVED"
|
|
295
|
+
- ❌ **KHÔNG** hỏi nhiều câu cùng lúc — từng câu một, chờ trả lời
|
|
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
|
|
298
|
+
- ✅ **PHẢI** lưu `test-plan/test-analysis.md`
|
|
299
|
+
- ✅ **PHẢI** hiển thị Gate 1 prompt và chờ APPROVED
|
|
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).
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
# 01.01. Boundary Value Analysis (Phân tích giá trị biên)
|
|
2
|
+
|
|
3
|
+
## Mục đích
|
|
4
|
+
Đảm bảo kiểm tra các điểm tới hạn (ranh giới) nơi lỗi thường xảy ra nhất. Kỹ thuật này giúp tối ưu hóa số lượng test case bằng cách tập trung vào các giá trị tại biên của các phân vùng tương đương, thay vì kiểm tra mọi giá trị trong dải.
|
|
5
|
+
|
|
6
|
+
## Kiến thức cần có
|
|
7
|
+
- Khái niệm về Phân vùng tương đương (Equivalence Partitioning).
|
|
8
|
+
- Hiểu biết về dải giá trị (range), độ dài (length) và các kiểu dữ liệu (data types).
|
|
9
|
+
- Logic nghiệp vụ và các điều kiện ràng buộc của hệ thống.
|
|
10
|
+
|
|
11
|
+
## Quy trình thực hiện
|
|
12
|
+
1. **Xác định tham số:** Liệt kê các tham số đầu vào hoặc điều kiện cần kiểm tra.
|
|
13
|
+
2. **Xác định dải giá trị:** Xác định dải giá trị hợp lệ cho từng tham số (Ví dụ: Tuổi từ 18 đến 60).
|
|
14
|
+
3. **Xác định các giá trị biên:** Tìm các giá trị tối thiểu (Min) và tối đa (Max).
|
|
15
|
+
4. **Chọn các giá trị kiểm thử:**
|
|
16
|
+
- Tại biên: Min, Max.
|
|
17
|
+
- Sát biên (hợp lệ): Min+1, Max-1.
|
|
18
|
+
- Ngoài biên (không hợp lệ): Min-1, Max+1.
|
|
19
|
+
5. **Kiểm tra độ dài:** Đối với chuỗi, kiểm tra độ dài 0 (rỗng), 1, Max, Max+1.
|
|
20
|
+
|
|
21
|
+
## Checklist
|
|
22
|
+
- [ ] Đã xác định đúng giá trị Min và Max dựa trên yêu cầu (SRS)?
|
|
23
|
+
- [ ] Đã bao gồm các giá trị biên hợp lệ (Min, Max)?
|
|
24
|
+
- [ ] Đã bao gồm các giá trị biên không hợp lệ (Min-1, Max+1)?
|
|
25
|
+
- [ ] Đã xem xét các trường hợp đặc biệt như rỗng (empty), null, hoặc khoảng trắng (space)?
|
|
26
|
+
- [ ] Đã kiểm tra giới hạn vật lý của kiểu dữ liệu (ví dụ: giá trị lớn nhất của Integer)?
|
|
27
|
+
|
|
28
|
+
## Output mong đợi
|
|
29
|
+
- Danh sách các giá trị biên cụ thể cho từng tham số.
|
|
30
|
+
- Các Test case bao phủ đầy đủ các kịch bản tại ranh giới (hợp lệ và không hợp lệ).
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
# 01.02. Equivalence Partitioning (Phân vùng tương đương)
|
|
2
|
+
|
|
3
|
+
## Mục đích
|
|
4
|
+
Chia dữ liệu đầu vào thành các nhóm (phân vùng) mà hệ thống xử lý theo cách tương tự nhau. Kỹ thuật này giúp giảm số lượng test case cần thực thi mà vẫn đảm bảo độ bao phủ tối đa bằng cách chỉ cần kiểm tra một giá trị đại diện cho mỗi vùng.
|
|
5
|
+
|
|
6
|
+
## Kiến thức cần có
|
|
7
|
+
- Hiểu về các loại dữ liệu đầu vào (String, Number, Date, v.v.).
|
|
8
|
+
- Hiểu biết về logic nghiệp vụ và các quy tắc xử lý của ứng dụng.
|
|
9
|
+
- Khả năng phân loại dữ liệu thành các nhóm hợp lệ và không hợp lệ.
|
|
10
|
+
|
|
11
|
+
## Quy trình thực hiện
|
|
12
|
+
1. **Xác định đầu vào:** Liệt kê tất cả các trường dữ liệu hoặc điều kiện đầu vào của tính năng.
|
|
13
|
+
2. **Chia phân vùng:**
|
|
14
|
+
- **Vùng hợp lệ (Valid):** Các giá trị mà hệ thống phải chấp nhận và xử lý đúng.
|
|
15
|
+
- **Vùng không hợp lệ (Invalid):** Các giá trị mà hệ thống phải từ chối hoặc báo lỗi.
|
|
16
|
+
3. **Chọn giá trị đại diện:** Chọn ít nhất một giá trị tiêu biểu từ mỗi phân vùng để đưa vào test case.
|
|
17
|
+
4. **Thiết kế test case:** Mỗi test case nên bao phủ một hoặc nhiều vùng hợp lệ, nhưng mỗi vùng không hợp lệ nên được kiểm tra bởi một test case riêng biệt để tránh lỗi bị che lấp.
|
|
18
|
+
|
|
19
|
+
## Checklist
|
|
20
|
+
- [ ] Đã xác định đầy đủ các vùng hợp lệ dựa trên đặc tả?
|
|
21
|
+
- [ ] Đã xác định đầy đủ các vùng không hợp lệ (sai kiểu dữ liệu, ngoài dải)?
|
|
22
|
+
- [ ] Có vùng nào bị chồng chéo (overlapping) hoặc bị bỏ sót không?
|
|
23
|
+
- [ ] Mỗi phân vùng đã có ít nhất một giá trị đại diện cụ thể?
|
|
24
|
+
|
|
25
|
+
## Output mong đợi
|
|
26
|
+
- Bảng phân vùng tương đương (Equivalence Class Table).
|
|
27
|
+
- Danh sách các Test case đại diện cho tất cả các phân vùng đã xác định.
|