@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,195 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: gate-review
|
|
3
|
+
description: Generate a checkbox review file for a gate output and verify it when APPROVED is received. Called at every gate pause point in both dev and tester workflows.
|
|
4
|
+
keywords: gate review, checkbox, review file, approved, mandatory review
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Gate Review — Mandatory Checkbox Protocol
|
|
8
|
+
|
|
9
|
+
> **Purpose:** Prevent blind approval. Every gate output gets a review file with one checkbox per key section. Developer checks off items in VSCode. APPROVED is only accepted after all items are checked.
|
|
10
|
+
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
## When to invoke this skill
|
|
14
|
+
|
|
15
|
+
This skill is invoked in **two modes** at every gate pause point:
|
|
16
|
+
|
|
17
|
+
| Mode | When | What AI does |
|
|
18
|
+
|------|------|-------------|
|
|
19
|
+
| `generate` | Immediately after AI finishes gate output | Write `.aiflow/review/gate-N-[ticket].md` |
|
|
20
|
+
| `verify` | When developer types `APPROVED` | Run `ak review check`, interpret result, proceed or block |
|
|
21
|
+
|
|
22
|
+
---
|
|
23
|
+
|
|
24
|
+
## File Naming Rules
|
|
25
|
+
|
|
26
|
+
**Standard gates (Dev and Tester):**
|
|
27
|
+
|
|
28
|
+
```
|
|
29
|
+
.aiflow/review/gate-[N]-[ticket-id].md
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
**Tester Gate 2 sub-phases only:**
|
|
33
|
+
|
|
34
|
+
Tester Gate 2 produces multiple review files — one per sub-phase. Use a letter suffix instead of the base gate number alone:
|
|
35
|
+
|
|
36
|
+
```
|
|
37
|
+
.aiflow/review/gate-2a-[ticket-id].md ← first sub-phase
|
|
38
|
+
.aiflow/review/gate-2b-[ticket-id].md ← second sub-phase
|
|
39
|
+
.aiflow/review/gate-2c-[ticket-id].md ← third sub-phase
|
|
40
|
+
(and so on)
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
> **IMPORTANT:** Do NOT use `gate-2-[ticket].md` for Tester Gate 2 sub-phases. Always use the lettered form (`gate-2a`, `gate-2b`, etc.) so each sub-phase has its own distinct review file and the `ak review check` command can target the correct file.
|
|
44
|
+
|
|
45
|
+
---
|
|
46
|
+
|
|
47
|
+
## Mode 1: GENERATE — Write Review File
|
|
48
|
+
|
|
49
|
+
### Step 1: Extract checklist items from gate output
|
|
50
|
+
|
|
51
|
+
Read the output you just created. For each **top-level section** in the output, create one checklist item — a one-line summary of what that section contains. The summary must be specific enough to identify the content without opening the output file.
|
|
52
|
+
|
|
53
|
+
**Extraction rules:**
|
|
54
|
+
- One item per top-level section (H2 heading or named block)
|
|
55
|
+
- Format: `**[Section name]**: [one-line summary of actual content]`
|
|
56
|
+
- Maximum 12 items per gate. If more than 12 sections, group related ones.
|
|
57
|
+
- The summary is the actual content, not a description of the category. ✅ "Scope: Auth module + User management (payment OUT of scope)" not ❌ "Scope: the scope section"
|
|
58
|
+
|
|
59
|
+
**Examples by gate:**
|
|
60
|
+
|
|
61
|
+
Dev Gate 1 (requirement.md has 4 sections → 4 items):
|
|
62
|
+
```
|
|
63
|
+
- [ ] **Requirements Summary**: Add batch export endpoint returning signed S3 URL, triggered by POST /exports
|
|
64
|
+
- [ ] **Proposed Solution**: New ExportService + S3Adapter; reuse existing AuthMiddleware for permissions
|
|
65
|
+
- [ ] **Impact Analysis**: Medium — touches ExportController, UserService (permission check added)
|
|
66
|
+
- [ ] **Effort Estimate**: M (3–4 days)
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
Tester Gate 1 (test-analysis.md):
|
|
70
|
+
```
|
|
71
|
+
- [ ] **Scope**: Auth module + User management only; payment and notifications OUT of scope
|
|
72
|
+
- [ ] **Functional Analysis**: Login, logout, session management, password reset, role-based access (3 roles)
|
|
73
|
+
- [ ] **Risk Areas**: High — session token handling; Medium — email format validation
|
|
74
|
+
- [ ] **Test Approach**: 60% automation (Playwright), 40% manual; ~18 TCs estimated
|
|
75
|
+
- [ ] **Effort Estimate**: M (2–3 days)
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
### Step 2: Write the review file
|
|
79
|
+
|
|
80
|
+
**File path:** `.aiflow/review/gate-[N]-[ticket-id].md`
|
|
81
|
+
|
|
82
|
+
For Tester Gate 2 sub-phases, use the lettered form: `.aiflow/review/gate-2a-[ticket-id].md`, `.aiflow/review/gate-2b-[ticket-id].md`, etc.
|
|
83
|
+
|
|
84
|
+
Where `[ticket-id]` comes from `.aiflow/context/current.json` → `ticketId` field. If ticketId is unavailable, use `unknown`.
|
|
85
|
+
|
|
86
|
+
**File template:**
|
|
87
|
+
|
|
88
|
+
```markdown
|
|
89
|
+
# Gate [N] Review — [TICKET-ID]
|
|
90
|
+
> Status: PENDING | Generated: YYYY-MM-DD
|
|
91
|
+
|
|
92
|
+
## How to review
|
|
93
|
+
- Toggle `[ ]` → `[x]` for each item you have read and agree with
|
|
94
|
+
- Add a comment under any item you want changed: `<!-- your comment here -->`
|
|
95
|
+
- Type `APPROVED` in chat when done
|
|
96
|
+
|
|
97
|
+
---
|
|
98
|
+
|
|
99
|
+
## Checklist
|
|
100
|
+
|
|
101
|
+
- [ ] **[Section]**: [one-line summary]
|
|
102
|
+
- [ ] **[Section]**: [one-line summary]
|
|
103
|
+
(... one per section, max 12)
|
|
104
|
+
|
|
105
|
+
---
|
|
106
|
+
|
|
107
|
+
## Review Notes
|
|
108
|
+
<!-- Optional: overall notes -->
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
### Step 3: Display gate pause message
|
|
112
|
+
|
|
113
|
+
After writing the file, display in chat:
|
|
114
|
+
|
|
115
|
+
```
|
|
116
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
117
|
+
⏸️ GATE [N] PAUSED — REVIEW REQUIRED
|
|
118
|
+
|
|
119
|
+
📋 Open in VSCode: [.aiflow/review/gate-[N]-[ticket-id].md](.aiflow/review/gate-[N]-[ticket-id].md)
|
|
120
|
+
|
|
121
|
+
• Toggle [ ] → [x] for each item you agree with
|
|
122
|
+
• Add <!-- comment --> under any item needing changes
|
|
123
|
+
• Type APPROVED when all items are addressed
|
|
124
|
+
|
|
125
|
+
⚠️ APPROVED will not be accepted until all checkboxes are checked.
|
|
126
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
127
|
+
```
|
|
128
|
+
|
|
129
|
+
---
|
|
130
|
+
|
|
131
|
+
## Mode 2: VERIFY — Check Review File on APPROVED
|
|
132
|
+
|
|
133
|
+
When the developer types `APPROVED`, run this before accepting:
|
|
134
|
+
|
|
135
|
+
### Step 1: Run CLI check
|
|
136
|
+
|
|
137
|
+
```bash
|
|
138
|
+
ak review check --gate [N] --ticket [ticket-id]
|
|
139
|
+
```
|
|
140
|
+
|
|
141
|
+
For Tester Gate 2 sub-phases, pass the lettered gate identifier:
|
|
142
|
+
|
|
143
|
+
```bash
|
|
144
|
+
ak review check --gate 2a --ticket [ticket-id]
|
|
145
|
+
ak review check --gate 2b --ticket [ticket-id]
|
|
146
|
+
```
|
|
147
|
+
|
|
148
|
+
### Step 2: Interpret result
|
|
149
|
+
|
|
150
|
+
**Exit code 0 — all checked:**
|
|
151
|
+
- Gate proceeds normally
|
|
152
|
+
- Run telemetry: `ak gate [N] approved --ticket [ticket-id]`
|
|
153
|
+
- Continue to next gate
|
|
154
|
+
|
|
155
|
+
**Exit code 1 — file missing:**
|
|
156
|
+
```
|
|
157
|
+
✗ Review file not found for gate N, ticket PROJ-33
|
|
158
|
+
```
|
|
159
|
+
AI response:
|
|
160
|
+
> "The review file wasn't found. Let me regenerate it."
|
|
161
|
+
Then re-run Mode 1 (generate) and display the gate pause message again.
|
|
162
|
+
|
|
163
|
+
**Exit code 1 — items with comments (need revision):**
|
|
164
|
+
```
|
|
165
|
+
Items with comments (need AI revision):
|
|
166
|
+
• **Risk Areas**: High — session token handling
|
|
167
|
+
Comment: "Missing: SQL injection risk on login form"
|
|
168
|
+
```
|
|
169
|
+
AI response:
|
|
170
|
+
1. Read each comment
|
|
171
|
+
2. Update the specific section in the gate output file
|
|
172
|
+
3. Rewrite only the flagged items in the review file (keep already-checked `[x]` items as-is)
|
|
173
|
+
4. Display updated gate pause message
|
|
174
|
+
|
|
175
|
+
**Exit code 1 — unchecked items, no comment:**
|
|
176
|
+
```
|
|
177
|
+
Items unchecked (no comment):
|
|
178
|
+
• **Scope**: Auth module only
|
|
179
|
+
```
|
|
180
|
+
AI response:
|
|
181
|
+
> "Item(s) are unchecked without a comment. Please either:
|
|
182
|
+
> - Check `[x]` if you agree with the content, or
|
|
183
|
+
> - Add `<!-- your comment -->` on the next line if you want changes."
|
|
184
|
+
Do NOT re-generate. Wait for developer to update the file.
|
|
185
|
+
|
|
186
|
+
---
|
|
187
|
+
|
|
188
|
+
## Mandatory Rules
|
|
189
|
+
|
|
190
|
+
- ❌ **NEVER** accept `APPROVED` without first running `ak review check`
|
|
191
|
+
- ❌ **NEVER** re-generate already-checked `[x]` items when doing a partial revision
|
|
192
|
+
- ✅ **ALWAYS** create `.aiflow/review/` directory if it doesn't exist (use `mkdir -p`)
|
|
193
|
+
- ✅ **ALWAYS** use the ticket ID from `.aiflow/context/current.json` in the file name
|
|
194
|
+
- ✅ **ALWAYS** keep review items specific to the actual content — not generic category names
|
|
195
|
+
- ✅ **ALWAYS** use lettered suffixes (`gate-2a`, `gate-2b`, …) for Tester Gate 2 sub-phases — never plain `gate-2`
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: generate-test-report
|
|
3
|
+
description: Use when TESTER needs to generate the final test summary report at Gate 4 after all test execution is complete. Aggregates results from evidence/ and bugs/ directories, verifies acceptance criteria coverage, and produces a Go/No-Go recommendation.
|
|
4
|
+
keywords: test report, summary, sign-off, go no-go, gate 4, evidence, bug summary, coverage
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Generate Test Report — Gate 4
|
|
8
|
+
|
|
9
|
+
> **Phạm vi:** Gate 4 — Báo cáo & Sign-off trong workflow 4-gate (`docs/workflow.md`)
|
|
10
|
+
> **Chỉ chạy sau khi Gate 3 đã được TESTER gõ `APPROVED`.**
|
|
11
|
+
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
## Điều kiện vào Gate 4
|
|
15
|
+
|
|
16
|
+
- ✅ Gate 3 APPROVED — tất cả critical/high bugs đã resolved và re-tested
|
|
17
|
+
- ✅ Đã có đầy đủ: `evidence/`, `bugs/`, `test-plan/test-cases/`, `test-plan/checklist.md`
|
|
18
|
+
- ✅ `test-plan/impact-analysis.md` tồn tại (kể cả khi không có PR — file ghi "chưa có dev artifacts")
|
|
19
|
+
|
|
20
|
+
---
|
|
21
|
+
|
|
22
|
+
## Quy trình tạo Test Report
|
|
23
|
+
|
|
24
|
+
### Bước 1 — Thu thập kết quả
|
|
25
|
+
|
|
26
|
+
Đọc toàn bộ:
|
|
27
|
+
- `evidence/*/result.md` → đếm Pass / Fail / Blocked per TC
|
|
28
|
+
- `bugs/BUG-*.md` → đếm bugs theo severity, trạng thái resolved/unresolved
|
|
29
|
+
- `test-plan/test-cases/*.md` → danh sách TC ID và module
|
|
30
|
+
|
|
31
|
+
Tổng hợp per module theo format template (R1/R2 tracking từ testcase files).
|
|
32
|
+
|
|
33
|
+
### Bước 2 — Kiểm tra coverage
|
|
34
|
+
|
|
35
|
+
- So sánh TC đã thực thi với checklist `test-plan/checklist.md`
|
|
36
|
+
- Verify acceptance criteria từ `test-plan/test-analysis.md` (Gate 1) — từng item đã cover chưa?
|
|
37
|
+
- Tính % hoàn thành: `(Tổng passed / Total test cases) × 100`
|
|
38
|
+
- **Verify regression scope từ `test-plan/impact-analysis.md`**: đọc "Đề xuất Regression TCs" — những regression TCs đó đã được execute chưa? Nếu chưa → flag trong report (không block Go/No-Go nhưng phải ghi nhận rõ).
|
|
39
|
+
|
|
40
|
+
### Bước 3 — Đánh giá Exit Criteria & Go/No-Go
|
|
41
|
+
|
|
42
|
+
| Điều kiện | Go | No-Go |
|
|
43
|
+
|---|---|---|
|
|
44
|
+
| Critical bugs | 0 unresolved | Còn ≥ 1 |
|
|
45
|
+
| High bugs | 0 unresolved hoặc có deferred plan | Còn unresolved không có plan |
|
|
46
|
+
| Coverage | ≥ 100% acceptance criteria covered | Còn AC chưa test |
|
|
47
|
+
| Pass rate | Đạt ngưỡng exit criteria | Dưới ngưỡng |
|
|
48
|
+
|
|
49
|
+
**Conditional Go:** Pass nhưng còn Medium/Low bugs chưa fix — ghi rõ điều kiện deferred.
|
|
50
|
+
|
|
51
|
+
### Bước 4 — Viết Test Report
|
|
52
|
+
|
|
53
|
+
**Dùng template:** `templates/test-report.md`
|
|
54
|
+
|
|
55
|
+
Điền đầy đủ:
|
|
56
|
+
- **Project Information:** lấy từ ticket context
|
|
57
|
+
- **Test Execution Summary:** per module, R1/R2 stats, % hoàn thành
|
|
58
|
+
- **Bug Summary:** tổng hợp từ `bugs/`
|
|
59
|
+
- **Coverage:** acceptance criteria đã cover
|
|
60
|
+
- **Sign-off Decision:** Go / No-Go / Conditional Go + lý do cụ thể
|
|
61
|
+
|
|
62
|
+
Output: `test-plan/test-report.md`
|
|
63
|
+
|
|
64
|
+
---
|
|
65
|
+
|
|
66
|
+
## Gate 4 Display
|
|
67
|
+
|
|
68
|
+
```
|
|
69
|
+
⏸️ GATE 4: TEST REPORT READY
|
|
70
|
+
|
|
71
|
+
Overall: [Pass / Fail / Conditional]
|
|
72
|
+
Passed: [N/total] | Bugs unresolved: [N Critical / N High / N Medium / N Low]
|
|
73
|
+
Coverage: [N]% acceptance criteria covered
|
|
74
|
+
|
|
75
|
+
Recommendation: [Go / No-Go / Conditional go]
|
|
76
|
+
[Nếu Conditional: điều kiện cụ thể]
|
|
77
|
+
|
|
78
|
+
→ Review: [test-plan/test-report.md](test-plan/test-report.md)
|
|
79
|
+
→ Type APPROVED to sign off and submit to Backlog/Jira
|
|
80
|
+
→ Type NO-GO: [reason] to reject release
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
---
|
|
84
|
+
|
|
85
|
+
## Xử lý phản hồi của TESTER
|
|
86
|
+
|
|
87
|
+
**`APPROVED`** → Done. Hướng dẫn TESTER copy nội dung lên Backlog/Jira ticket.
|
|
88
|
+
|
|
89
|
+
**`NO-GO: [reason]`** → Ghi nhận lý do vào test-report.md. List những gì cần fix trước khi release.
|
|
90
|
+
|
|
91
|
+
---
|
|
92
|
+
|
|
93
|
+
## Mandatory Rules
|
|
94
|
+
|
|
95
|
+
- ❌ KHÔNG generate report khi còn critical bug chưa resolved
|
|
96
|
+
- ❌ KHÔNG tự quyết Go/No-Go thay TESTER — chỉ đưa ra recommendation
|
|
97
|
+
- ✅ PHẢI verify từng acceptance criteria từ Gate 1 trước khi kết luận coverage
|
|
98
|
+
- ✅ PHẢI trích dẫn TC ID cụ thể khi claim "requirement X đã covered"
|
|
99
|
+
- ✅ Bugs deferred PHẢI có justification rõ ràng trong report
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
# SUMMARY TEST REPORT
|
|
2
|
+
|
|
3
|
+
## Project Information
|
|
4
|
+
|
|
5
|
+
| Property | Value | Property | Value |
|
|
6
|
+
| :--- | :--- | :--- | :--- |
|
|
7
|
+
| **Project Name** | [Project Name] | **Author/Created By** | [Author Name] |
|
|
8
|
+
| **Project Code** | [Project Code] | **Reviewer** | [Reviewer Name] |
|
|
9
|
+
| **Created At** | [Creation Date] | **Report Date** | [Report Date] |
|
|
10
|
+
| **Last updated at** | [Update Date] | | |
|
|
11
|
+
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
## Test Execution Summary
|
|
15
|
+
|
|
16
|
+
| No | Module Code | Written By | Created Date | R1 Passed | R1 Failed | R1 UnTest | R1 Pending | R2 Passed | R2 Failed | R2 UnTest | R2 Pending | Blocked | Total Test Cases | Tổng Passed | % Hoàn thành | Updated Date | Sprint | Creator | Reviewer / Approver |
|
|
17
|
+
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|
18
|
+
| 1 | [Module Code] | [Author] | [Date] | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0% | [Date] | [Sprint] | [Creator] | [Reviewer] |
|
|
19
|
+
| 2 | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... |
|
|
20
|
+
|
|
21
|
+
---
|
|
22
|
+
|
|
23
|
+
## Bug Summary
|
|
24
|
+
|
|
25
|
+
| Severity | Total | Resolved | Unresolved | Deferred |
|
|
26
|
+
|---|---|---|---|---|
|
|
27
|
+
| Critical | 0 | 0 | 0 | 0 |
|
|
28
|
+
| High | 0 | 0 | 0 | 0 |
|
|
29
|
+
| Medium | 0 | 0 | 0 | 0 |
|
|
30
|
+
| Low | 0 | 0 | 0 | 0 |
|
|
31
|
+
| **Total** | **0** | **0** | **0** | **0** |
|
|
32
|
+
|
|
33
|
+
**Deferred bugs justification:**
|
|
34
|
+
- [BUG-ID]: [Lý do defer và sprint xử lý]
|
|
35
|
+
|
|
36
|
+
---
|
|
37
|
+
|
|
38
|
+
## Acceptance Criteria Coverage
|
|
39
|
+
|
|
40
|
+
| # | Acceptance Criteria | TC IDs | Status |
|
|
41
|
+
|---|---|---|---|
|
|
42
|
+
| 1 | [AC từ Gate 1] | [TC_001, TC_002] | ✅ Covered |
|
|
43
|
+
| 2 | [AC từ Gate 1] | [TC_003] | ✅ Covered |
|
|
44
|
+
| 3 | [AC từ Gate 1] | - | ❌ Not covered |
|
|
45
|
+
|
|
46
|
+
**Coverage:** [N/N] acceptance criteria covered ([N]%)
|
|
47
|
+
|
|
48
|
+
---
|
|
49
|
+
|
|
50
|
+
## Sign-off Decision
|
|
51
|
+
|
|
52
|
+
| Item | Value |
|
|
53
|
+
|---|---|
|
|
54
|
+
| **Overall Result** | Pass / Fail / Conditional |
|
|
55
|
+
| **Recommendation** | Go / No-Go / Conditional Go |
|
|
56
|
+
| **Conditions** (nếu Conditional) | [Mô tả điều kiện cụ thể] |
|
|
57
|
+
| **Sign-off By** | [TESTER Name] |
|
|
58
|
+
| **Sign-off Date** | [Date] |
|