@torus-engineering/tas-kit 1.13.0 → 2.1.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/.tas/_platform/claude-code/settings.json +58 -46
- package/.tas/_platform/hooks/code-quality.js +127 -127
- package/.tas/_platform/hooks/session-end.js +111 -111
- package/.tas/agents/architect.md +53 -53
- package/.tas/agents/aws-reviewer.md +71 -71
- package/.tas/agents/build-resolver.md +89 -59
- package/.tas/agents/code-explorer.md +63 -63
- package/.tas/agents/csharp-reviewer.md +62 -62
- package/.tas/agents/database-reviewer.md +73 -73
- package/.tas/agents/doc-updater.md +68 -66
- package/.tas/agents/python-reviewer.md +67 -67
- package/.tas/agents/security-reviewer.md +79 -79
- package/.tas/agents/software-engineer.md +53 -0
- package/.tas/agents/typescript-reviewer.md +65 -65
- package/.tas/commands/ado-create.md +33 -28
- package/.tas/commands/ado-delete.md +26 -22
- package/.tas/commands/ado-get.md +24 -20
- package/.tas/commands/ado-status.md +22 -18
- package/.tas/commands/ado-update.md +31 -27
- package/.tas/commands/tas-adr.md +37 -33
- package/.tas/commands/tas-apitest-plan.md +177 -173
- package/.tas/commands/tas-apitest.md +147 -143
- package/.tas/commands/tas-brainstorm.md +23 -19
- package/.tas/commands/tas-brd.md +50 -0
- package/.tas/commands/tas-bug.md +127 -113
- package/.tas/commands/tas-checklist.md +180 -0
- package/.tas/commands/tas-debug.md +103 -0
- package/.tas/commands/tas-design.md +41 -37
- package/.tas/commands/tas-dev.md +225 -125
- package/.tas/commands/tas-e2e-mobile.md +146 -155
- package/.tas/commands/tas-e2e-web.md +150 -163
- package/.tas/commands/tas-e2e.md +289 -102
- package/.tas/commands/tas-feature.md +181 -47
- package/.tas/commands/tas-fix.md +72 -51
- package/.tas/commands/tas-functest-mobile.md +138 -144
- package/.tas/commands/tas-functest-web.md +176 -192
- package/.tas/commands/tas-functest.md +225 -76
- package/.tas/commands/tas-init.md +22 -17
- package/.tas/commands/tas-master-plan.md +300 -0
- package/.tas/commands/tas-orchestrate.md +159 -0
- package/.tas/commands/tas-plan.md +152 -117
- package/.tas/commands/tas-prd.md +57 -37
- package/.tas/commands/tas-review-pr.md +174 -0
- package/.tas/commands/tas-review.md +115 -113
- package/.tas/commands/tas-sad.md +47 -43
- package/.tas/commands/tas-security.md +91 -87
- package/.tas/commands/tas-spec.md +54 -50
- package/.tas/commands/tas-status.md +25 -16
- package/.tas/project-status-example.yaml +3 -1
- package/.tas/rules/ado-integration.md +67 -65
- package/.tas/rules/common/api-design.md +517 -517
- package/.tas/rules/common/build-debug-loop.md +233 -0
- package/.tas/rules/common/code-review.md +4 -0
- package/.tas/rules/common/feature-done.md +42 -0
- package/.tas/rules/common/post-implementation-review.md +4 -0
- package/.tas/rules/common/project-status.md +33 -16
- package/.tas/rules/common/sad-impact.md +81 -0
- package/.tas/rules/common/tdd.md +104 -89
- package/.tas/rules/csharp/api-testing.md +2 -2
- package/.tas/rules/csharp/torus-core-framework.md +128 -0
- package/.tas/tas-example.yaml +9 -32
- package/.tas/templates/AGENTS.md +13 -0
- package/.tas/templates/API-Test-Spec.md +5 -4
- package/.tas/templates/BRD.md +133 -0
- package/.tas/templates/Bug.md +15 -0
- package/.tas/templates/E2E-Execution-Report.md +8 -8
- package/.tas/templates/E2E-Mobile-Spec.md +6 -8
- package/.tas/templates/E2E-Report.md +2 -2
- package/.tas/templates/E2E-Scenario.md +22 -22
- package/.tas/templates/E2E-Test-Spec.md +274 -0
- package/.tas/templates/E2E-Web-Spec.md +4 -4
- package/.tas/templates/Feature-Technical-Part.md +69 -0
- package/.tas/templates/Feature-Technical-Stack.md +74 -0
- package/.tas/templates/Feature-Technical.md +329 -0
- package/.tas/templates/Feature.md +50 -26
- package/.tas/templates/Func-Test-Script.md +29 -56
- package/.tas/templates/Func-Test-Spec.md +144 -142
- package/.tas/templates/PRD.md +173 -142
- package/.tas/templates/TestChecklist.md +96 -0
- package/.tas/templates/torus-dotnet-bootstrap.md +223 -0
- package/.tas/tools/tas-ado-readme.md +24 -27
- package/.tas/tools/tas-ado.py +328 -25
- package/.tas/tools/tas-github.py +339 -0
- package/README.md +142 -57
- package/bin/cli.js +90 -90
- package/lib/adapters/antigravity.js +131 -131
- package/lib/adapters/claude-code.js +71 -35
- package/lib/adapters/codex.js +157 -157
- package/lib/adapters/cursor.js +80 -80
- package/lib/adapters/index.js +20 -20
- package/lib/adapters/utils.js +81 -81
- package/lib/deleted-files.json +7 -0
- package/lib/install.js +546 -543
- package/package.json +2 -2
- package/.tas/README.md +0 -334
- package/.tas/commands/tas-epic.md +0 -35
- package/.tas/commands/tas-story.md +0 -91
- package/.tas/rules/common/story-done.md +0 -30
- package/.tas/templates/Epic.md +0 -46
- package/.tas/templates/Story.md +0 -90
|
@@ -0,0 +1,274 @@
|
|
|
1
|
+
---
|
|
2
|
+
created_date: YYYY-MM-DD
|
|
3
|
+
updated_date: YYYY-MM-DD
|
|
4
|
+
executor: ""
|
|
5
|
+
reviewer: ""
|
|
6
|
+
status: Draft
|
|
7
|
+
epic_id: ""
|
|
8
|
+
feature_ids: [] # comma-separated Feature IDs chained in this scenario
|
|
9
|
+
scenario_id: ""
|
|
10
|
+
platform: web
|
|
11
|
+
tags: []
|
|
12
|
+
ver: 1.0
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
# E2E Test Specification: {Scenario Name}
|
|
16
|
+
|
|
17
|
+
**Epic**: [{Epic_ID}] | **Features**: {feature_ids} | **Scenario**: [{Scenario_ID}]
|
|
18
|
+
**Author**: @{executor} | **Reviewer**: @{reviewer} | **Status**: {status}
|
|
19
|
+
|
|
20
|
+
---
|
|
21
|
+
|
|
22
|
+
## 1. Scenario Overview
|
|
23
|
+
|
|
24
|
+
> 📌 E2E Test Case mô phỏng **hành trình thực tế của người dùng (User Journey)** xuyên suốt hệ thống, kết nối multiple features thành một workflow hoàn chỉnh.
|
|
25
|
+
|
|
26
|
+
| **Field** | **Detail** |
|
|
27
|
+
| ------------------- | ----------------------------------------------------------------- |
|
|
28
|
+
| **Scenario Name** | {Business Flow Name - e.g., "Complete Purchase Journey"} |
|
|
29
|
+
| **Business Value** | {Why this flow matters - revenue, user retention, compliance} |
|
|
30
|
+
| **User Persona** | {Who performs this journey - e.g., "First-time Customer", "Admin"} |
|
|
31
|
+
| **Entry Point** | {Where user starts - e.g., Homepage, Login page} |
|
|
32
|
+
| **Exit Point** | {Where user ends - e.g., Order confirmation, Dashboard} |
|
|
33
|
+
| **Success Criteria**| {What defines success - e.g., Order created, Email sent} |
|
|
34
|
+
|
|
35
|
+
---
|
|
36
|
+
|
|
37
|
+
## 2. Integrated Systems & Dependencies
|
|
38
|
+
|
|
39
|
+
> 🔗 **Systems involved in this E2E flow**
|
|
40
|
+
|
|
41
|
+
| **System / Module** | **Role** | **Integration Type** | **Failure Impact** |
|
|
42
|
+
| ------------------------ | ---------------------------------- | ------------------- | ------------------ |
|
|
43
|
+
| Frontend (Web/Mobile) | User interface | Direct | Critical |
|
|
44
|
+
| Backend API | Business logic processing | REST/GraphQL | Critical |
|
|
45
|
+
| Database | Data persistence | ORM/Query | Critical |
|
|
46
|
+
| Payment Gateway | Payment processing | Third-party API | High |
|
|
47
|
+
| Email Service | Notifications | Webhook/API | Medium |
|
|
48
|
+
| {External System} | {Description} | {Type} | {Impact} |
|
|
49
|
+
|
|
50
|
+
### Prerequisites & Setup
|
|
51
|
+
|
|
52
|
+
| **Requirement** | **State** | **Verification** |
|
|
53
|
+
| ------------------------ | ---------------------------------- | --------------------------------------------- |
|
|
54
|
+
| Test Environment | Staging / Test | `curl https://test-api.example.com/health` |
|
|
55
|
+
| User Accounts | Created with proper roles | Check admin panel / DB |
|
|
56
|
+
| Master Data | Products, configs seeded | Verify test data fixtures |
|
|
57
|
+
| Third-party Credentials | Payment gateway, SMS configured | Test transaction → verify dashboard |
|
|
58
|
+
| Feature Flags | Required features enabled | Confirm with dev team |
|
|
59
|
+
|
|
60
|
+
---
|
|
61
|
+
|
|
62
|
+
## 3. Functional Test Cases Mapping
|
|
63
|
+
|
|
64
|
+
> 📋 **E2E flow được xây dựng từ các Functional Test Cases đã có**
|
|
65
|
+
> Mỗi bước trong E2E mapping với 1 hoặc nhiều Functional TCs
|
|
66
|
+
|
|
67
|
+
| **E2E Step** | **Functional TC Reference** | **Feature** | **Purpose** |
|
|
68
|
+
| ------------ | ---------------------------------- | ------------------------ | ------------------------------------ |
|
|
69
|
+
| Step 1 | `{FT_ID}_001_H` | {Feature A} | Initial action |
|
|
70
|
+
| Step 2 | `{FT_ID}_002_H`, `{FT_ID}_003_N` | {Feature B} | Core processing |
|
|
71
|
+
| Step 3 | `{FT_ID}_004_H` | {Feature C} | Validation & confirmation |
|
|
72
|
+
|
|
73
|
+
---
|
|
74
|
+
|
|
75
|
+
## 4. E2E Test Scenarios
|
|
76
|
+
|
|
77
|
+
### Test ID Format: `{PROJECT}_E2E_{SCENARIO_ID}_{FLOW_TYPE}_{NUMBER}`
|
|
78
|
+
|
|
79
|
+
**Flow Types:**
|
|
80
|
+
- `HP` - Happy Path (Main user journey)
|
|
81
|
+
- `NEG` - Negative Flow (Error handling across systems)
|
|
82
|
+
- `EDGE` - Edge Case (Boundary conditions)
|
|
83
|
+
- `PERF` - Performance Flow
|
|
84
|
+
|
|
85
|
+
---
|
|
86
|
+
|
|
87
|
+
### 4.1 Happy Path E2E Scenarios
|
|
88
|
+
|
|
89
|
+
> ✅ **Main user journeys - MUST automate these**
|
|
90
|
+
|
|
91
|
+
| **E2E Case ID** | **User Persona** | **Business Flow** | **Pre-Conditions** | **Cross-Functional Steps** | **Expected Final State** | **Priority** | **Autoable** | **Traceability** |
|
|
92
|
+
| --------------------- | ---------------- | ------------------------------------------- | --------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------ | ------------ | ------------ | -------------------------- |
|
|
93
|
+
| `{PROJECT}_E2E_001_HP` | Customer | Complete purchase journey | 1. User logged in<br>2. Product in stock<br>3. Payment method valid | **Step 1 [Browse]:** Navigate to product page<br>**Step 2 [Cart]:** Add to cart, verify total<br>**Step 3 [Checkout]:** Fill shipping info<br>**Step 4 [Payment]:** Process payment via gateway<br>**Step 5 [Confirm]:** Verify order created<br>**Step 6 [Notify]:** Check email sent | Order status = "Confirmed"<br>Inventory decremented<br>Payment recorded<br>Email received | P0 | Yes | FT-001, FT-005, FT-012 |
|
|
94
|
+
| `{PROJECT}_E2E_002_HP` | Admin | User onboarding workflow | 1. Admin logged in<br>2. Email server configured | **Step 1 [Invite]:** Create user invite<br>**Step 2 [Email]:** Verify invitation sent<br>**Step 3 [Accept]:** User accepts invite<br>**Step 4 [Setup]:** Complete profile<br>**Step 5 [Notify]:** Admin notified | User status = "Active"<br>Admin dashboard updated<br>Welcome email sent | P0 | Yes | FT-020, FT-021, FT-025 |
|
|
95
|
+
|
|
96
|
+
---
|
|
97
|
+
|
|
98
|
+
### 4.2 Negative Flow E2E Scenarios
|
|
99
|
+
|
|
100
|
+
> ❌ **Error handling across system boundaries**
|
|
101
|
+
|
|
102
|
+
| **E2E Case ID** | **User Persona** | **Business Flow** | **Pre-Conditions** | **Cross-Functional Steps** | **Expected Final State** | **Priority** | **Autoable** | **Traceability** |
|
|
103
|
+
| --------------------- | ---------------- | ------------------------------------------- | ------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------- | ------------ | ------------ | ----------------------- |
|
|
104
|
+
| `{PROJECT}_E2E_003_NEG` | Customer | Payment failure recovery | 1. User logged in<br>2. Invalid card | **Step 1 [Browse]:** Select product<br>**Step 2 [Cart]:** Proceed to checkout<br>**Step 3 [Payment]:** Submit invalid payment<br>**Step 4 [Error]:** Verify error message<br>**Step 5 [Retry]:** Update payment method<br>**Step 6 [Success]:** Complete payment | Order NOT created<br>Error displayed clearly<br>Cart preserved<br>Retry successful | P1 | Yes | FT-001, FT-008, FT-015 |
|
|
105
|
+
| `{PROJECT}_E2E_004_NEG` | Customer | Stock depletion during checkout | 1. Product low stock<br>2. Multiple users | **Step 1 [Browse]:** Add to cart (stock available)<br>**Step 2 [Delay]:** Wait 30s<br>**Step 3 [Checkout]:** Attempt payment<br>**Step 4 [Error]:** Verify out-of-stock message<br>**Step 5 [Notify]:** Check stock alert | Payment rejected<br>Clear OOS message<br>Back-in-stock notification registered | P1 | Yes | FT-001, FT-009, FT-018 |
|
|
106
|
+
|
|
107
|
+
---
|
|
108
|
+
|
|
109
|
+
### 4.3 Edge Case E2E Scenarios
|
|
110
|
+
|
|
111
|
+
> ⚠️ **Boundary and unusual conditions**
|
|
112
|
+
|
|
113
|
+
| **E2E Case ID** | **User Persona** | **Business Flow** | **Pre-Conditions** | **Cross-Functional Steps** | **Expected Final State** | **Priority** | **Autoable** | **Traceability** |
|
|
114
|
+
| --------------------- | ---------------- | ------------------------------------------- | ------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------- | ------------ | ------------ | --------------------- |
|
|
115
|
+
| `{PROJECT}_E2E_005_EDGE` | Customer | Large order handling | 1. VIP customer<br>2. Bulk discount enabled | **Step 1 [Browse]:** Add 100+ items<br>**Step 2 [Cart]:** Verify bulk discount applied<br>**Step 3 [Checkout]:** Process large order<br>**Step 4 [Confirm]:** Verify order split if needed<br>**Step 5 [Notify]:** Verify warehouse notification | Order created with discount<br>Warehouse notified of bulk<br>Invoice correct | P2 | Yes | FT-003, FT-007, FT-014 |
|
|
116
|
+
| `{PROJECT}_E2E_006_EDGE` | Admin | Concurrent user operations | 1. Two admin sessions<br>2. Same record | **Step 1 [Session A]:** Open record for edit<br>**Step 2 [Session B]:** Attempt same record edit<br>**Step 3 [Conflict]:** Verify optimistic lock<br>**Step 4 [Resolve]:** Save latest changes<br>**Step 5 [Audit]:** Check audit log | Optimistic lock triggered<br>Last write wins<br>Audit log complete | P2 | Yes | FT-022, FT-028 |
|
|
117
|
+
|
|
118
|
+
---
|
|
119
|
+
|
|
120
|
+
### 4.4 Performance E2E Scenarios
|
|
121
|
+
|
|
122
|
+
> ⚡ **Load and timing validation**
|
|
123
|
+
|
|
124
|
+
| **E2E Case ID** | **User Persona** | **Business Flow** | **Pre-Conditions** | **Cross-Functional Steps** | **Expected Final State** | **Priority** | **Autoable** | **Traceability** |
|
|
125
|
+
| --------------------- | ---------------- | ------------------------------------------- | ------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------- | ------------ | ------------ | ------------------- |
|
|
126
|
+
| `{PROJECT}_E2E_007_PERF` | Customer | Peak load checkout | 1. Load test configured<br>2. 50 concurrent users | **Step 1 [Load]:** Simulate 50 users starting checkout<br>**Step 2 [Process]:** All users complete payment<br>**Step 3 [Verify]:** Check all orders created<br>**Step 4 [DB]:** Verify no deadlocks<br>**Step 5 [Timing]:** Response < 3s p95 | All 50 orders created<br>No data corruption<br>p95 response time < 3s<br>Zero errors logged | P1 | Yes | FT-001, FT-012, FT-018 |
|
|
127
|
+
|
|
128
|
+
---
|
|
129
|
+
|
|
130
|
+
## 5. Data Flow Validation
|
|
131
|
+
|
|
132
|
+
> 🔄 **E2E phải kiểm tra dữ liệu cuối cùng trong Database/system bên thứ ba**
|
|
133
|
+
|
|
134
|
+
| **Data Point** | **Source** | **Expected Value** | **Verification Method** | **System** |
|
|
135
|
+
| --------------------- | ----------------------- | -------------------------------------- | ----------------------------------------------------------- | ----------------- |
|
|
136
|
+
| Order Status | Database | "Confirmed" | `SELECT status FROM orders WHERE id = {order_id}` | Backend DB |
|
|
137
|
+
| Payment Transaction | Payment Gateway API | transaction_id present, status=success | `GET /api/payment/{transaction_id}` | Third-party API |
|
|
138
|
+
| Inventory Count | Database | Decremented by 1 | `SELECT quantity FROM products WHERE id = {product_id}` | Backend DB |
|
|
139
|
+
| Email Delivered | Email Service / Mailhog | Email present in inbox | Check Mailhog or test email inbox | Email Service |
|
|
140
|
+
| Audit Log | Database | Action recorded with timestamp | `SELECT * FROM audit_logs WHERE entity_id = {order_id}` | Backend DB |
|
|
141
|
+
|
|
142
|
+
---
|
|
143
|
+
|
|
144
|
+
## 6. Integration Points Validation
|
|
145
|
+
|
|
146
|
+
> 🔗 **Critical checkpoints between systems**
|
|
147
|
+
|
|
148
|
+
| **Integration Point** | **Test Method** | **Success Criteria** | **Failure Handling** |
|
|
149
|
+
| -------------------------- | --------------------------------------------- | --------------------------------------------------------- | ----------------------------------------------- |
|
|
150
|
+
| Frontend → Backend API | Intercept network requests, verify response | Status 200, valid JSON, correct data | Show user-friendly error, retry logic |
|
|
151
|
+
| Backend → Payment Gateway | Mock or real payment, verify callback | Payment success, transaction ID returned | Handle timeout, log failure, notify user |
|
|
152
|
+
| Backend → Email Service | Check email delivery (Mailhog/test inbox) | Email sent, correct recipient, valid content | Queue for retry, log delivery status |
|
|
153
|
+
| Backend → Database | Query DB after flow completes | Data persisted correctly, no orphan records | Transaction rollback, error logging |
|
|
154
|
+
| External API Callback | Simulate webhook from external system | Callback received, processed, status updated | Idempotency, retry mechanism, dead letter queue |
|
|
155
|
+
|
|
156
|
+
---
|
|
157
|
+
|
|
158
|
+
## 7. Browser & Platform Matrix
|
|
159
|
+
|
|
160
|
+
| **Platform** | **Browser / Device** | **Version** | **Required** | **Notes** |
|
|
161
|
+
| -------------- | -------------------- | ---------------- | ------------ | ---------------------------------- |
|
|
162
|
+
| Desktop Web | Chrome | Latest | Yes | Primary platform |
|
|
163
|
+
| Desktop Web | Firefox | Latest | Yes | Firefox-specific issues |
|
|
164
|
+
| Desktop Web | Safari | Latest | Yes | WebKit engine differences |
|
|
165
|
+
| Mobile Web | iOS Safari | iOS 17+ | Yes | Mobile responsive |
|
|
166
|
+
| Mobile Web | Android Chrome | Android 14+ | Yes | Mobile responsive |
|
|
167
|
+
| Mobile App | iOS App | iOS 17+ | Optional | If mobile app exists |
|
|
168
|
+
| Mobile App | Android App | Android 14+ | Optional | If mobile app exists |
|
|
169
|
+
|
|
170
|
+
---
|
|
171
|
+
|
|
172
|
+
## 8. Success Criteria & Exit Conditions
|
|
173
|
+
|
|
174
|
+
### Must Have (P0)
|
|
175
|
+
- [ ] All Happy Path E2E scenarios pass
|
|
176
|
+
- [ ] Database state verified correct after each flow
|
|
177
|
+
- [ ] Third-party integrations validated (payment, email)
|
|
178
|
+
- [ ] No data corruption or orphan records
|
|
179
|
+
- [ ] User receives all expected notifications
|
|
180
|
+
|
|
181
|
+
### Should Have (P1)
|
|
182
|
+
- [ ] Negative flows handle errors gracefully
|
|
183
|
+
- [ ] Performance within SLA (p95 < 3s)
|
|
184
|
+
- [ ] All required browsers/platforms pass
|
|
185
|
+
- [ ] Audit logs complete and accurate
|
|
186
|
+
|
|
187
|
+
### Nice to Have (P2)
|
|
188
|
+
- [ ] Edge cases handled correctly
|
|
189
|
+
- [ ] Performance under load validated
|
|
190
|
+
- [ ] Accessibility checks pass
|
|
191
|
+
- [ ] Cross-browser consistency verified
|
|
192
|
+
|
|
193
|
+
---
|
|
194
|
+
|
|
195
|
+
## 9. Risk & Dependency Matrix
|
|
196
|
+
|
|
197
|
+
| **Risk ID** | **Risk Description** | **Impact** | **Mitigation Strategy** | **Owner** |
|
|
198
|
+
| ----------- | ------------------------------------------------ | ---------- | ------------------------------------------------------------ | ------------ |
|
|
199
|
+
| E2E-RSK-01 | Payment gateway downtime during test | High | Have mock payment fallback, check status page first | DevOps |
|
|
200
|
+
| E2E-RSK-02 | Test data not seeded properly | High | Verify data setup script runs before E2E suite | QA Lead |
|
|
201
|
+
| E2E-RSK-03 | Flaky tests due to timing issues | Medium | Add explicit waits, use stable selectors | Automation |
|
|
202
|
+
| E2E-RSK-04 | Staging environment not production-like | High | Regular sync of staging with production config | DevOps |
|
|
203
|
+
| E2E-RSK-05 | Third-party API rate limits during E2E runs | Medium | Use test API keys, implement exponential backoff | Backend Dev |
|
|
204
|
+
|
|
205
|
+
---
|
|
206
|
+
|
|
207
|
+
## 10. Automation Strategy
|
|
208
|
+
|
|
209
|
+
### Framework & Tools
|
|
210
|
+
|
|
211
|
+
| **Component** | **Tool** | **Purpose** |
|
|
212
|
+
| ---------------- | ------------------ | ------------------------------------- |
|
|
213
|
+
| Test Framework | Playwright/Cypress | E2E test execution |
|
|
214
|
+
| API Testing | Postman/REST Assured | Backend integration validation |
|
|
215
|
+
| Data Verification | SQL scripts / DB client | Database state validation |
|
|
216
|
+
| Email Testing | Mailhog / Test mail inbox | Notification verification |
|
|
217
|
+
| Load Testing | k6 / JMeter | Performance E2E scenarios |
|
|
218
|
+
|
|
219
|
+
### Automation Execution
|
|
220
|
+
|
|
221
|
+
```bash
|
|
222
|
+
# Run E2E suite locally
|
|
223
|
+
yarn e2e:local
|
|
224
|
+
|
|
225
|
+
# Run on specific environment
|
|
226
|
+
yarn e2e:staging
|
|
227
|
+
|
|
228
|
+
# Run specific scenario
|
|
229
|
+
yarn e2e:scenario --scenarioId="E2E_001"
|
|
230
|
+
|
|
231
|
+
# Run with report
|
|
232
|
+
yarn e2e:report
|
|
233
|
+
```
|
|
234
|
+
|
|
235
|
+
### CI/CD Integration
|
|
236
|
+
|
|
237
|
+
- Run smoke E2E tests on every PR
|
|
238
|
+
- Run full E2E suite on merge to main
|
|
239
|
+
- Run regression E2E nightly on staging
|
|
240
|
+
- Block deployment if critical E2E tests fail
|
|
241
|
+
|
|
242
|
+
---
|
|
243
|
+
|
|
244
|
+
## 11. Coverage Summary
|
|
245
|
+
|
|
246
|
+
**Feature Coverage:**
|
|
247
|
+
|
|
248
|
+
| **Feature ID** | **Feature Name** | **E2E Scenarios Covered** | **Coverage %** |
|
|
249
|
+
| -------------- | --------------------------- | ------------------------- | -------------- |
|
|
250
|
+
| {Feature-001} | {Feature Name} | E2E_001, E2E_003 | 100% |
|
|
251
|
+
| {Feature-002} | {Feature Name} | E2E_001, E2E_002 | 100% |
|
|
252
|
+
| {Feature-003} | {Feature Name} | E2E_005 | 100% |
|
|
253
|
+
|
|
254
|
+
**Overall Coverage:**
|
|
255
|
+
|
|
256
|
+
| **Metric** | **Value** |
|
|
257
|
+
| -------------------- | -------------------- |
|
|
258
|
+
| Total E2E Scenarios | {count} |
|
|
259
|
+
| Happy Path | {count} ({percent}%) |
|
|
260
|
+
| Negative Flows | {count} ({percent}%) |
|
|
261
|
+
| Edge Cases | {count} ({percent}%) |
|
|
262
|
+
| Automatable | {count} ({percent}%) |
|
|
263
|
+
| Manual Only | {count} ({percent}%) |
|
|
264
|
+
|
|
265
|
+
---
|
|
266
|
+
|
|
267
|
+
## 12. Change Log
|
|
268
|
+
|
|
269
|
+
> **Note:** Changes are summarized daily (Daily Summary format).
|
|
270
|
+
|
|
271
|
+
| **Date** | **Ver** | **Daily Summary of Changes** | **Author** |
|
|
272
|
+
| ----------------- | ------- | ------------------------------------------------------------------------- | ------------- |
|
|
273
|
+
| {created_date} | 1.0 | Initial E2E test specification created | @{executor} |
|
|
274
|
+
| {updated_date} | 1.0 | Initial E2E test specification created | @{executor} |
|
|
@@ -3,14 +3,14 @@ created_date:
|
|
|
3
3
|
updated_date:
|
|
4
4
|
executor:
|
|
5
5
|
status: Draft
|
|
6
|
-
|
|
6
|
+
feature_ids: # comma-separated Feature IDs chained in this scenario
|
|
7
7
|
scenario_id:
|
|
8
8
|
---
|
|
9
9
|
|
|
10
10
|
# E2E Web Test Specification: {Scenario Name}
|
|
11
11
|
|
|
12
12
|
**Scenario**: [{Scenario_ID}]({SCENARIO_LINK})
|
|
13
|
-
**
|
|
13
|
+
**Features**: {feature_ids}
|
|
14
14
|
**Author**: @[executor]
|
|
15
15
|
**Created**: [created_date]
|
|
16
16
|
**Status**: [status] (Draft | Ready | Implemented | Verified)
|
|
@@ -54,8 +54,8 @@ scenario_id:
|
|
|
54
54
|
|
|
55
55
|
| Test ID | Step | Page | Action | Expected | Browser | Viewport |
|
|
56
56
|
|---------|------|------|--------|----------|---------|----------|
|
|
57
|
-
| {PROJECT}
|
|
58
|
-
| {PROJECT}
|
|
57
|
+
| {PROJECT}_E2E_001_H | 1 | {Page} | {Action} | {Expected} | All | All |
|
|
58
|
+
| {PROJECT}_E2E_001_H | 2 | {Page} | {Action} | {Expected} | All | All |
|
|
59
59
|
|
|
60
60
|
### Cross-Browser Specific
|
|
61
61
|
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
---
|
|
2
|
+
feature_id: # e.g., Feature-001
|
|
3
|
+
parent_technical_file: # relative path to Feature-Technical.md (index)
|
|
4
|
+
part_id: # e.g., part1, part2
|
|
5
|
+
part_title: # e.g., Cart Processing
|
|
6
|
+
stacks_involved: # e.g., [service, integration]
|
|
7
|
+
plan_by:
|
|
8
|
+
plan_date:
|
|
9
|
+
status: Draft # Draft | Approved | Implemented
|
|
10
|
+
---
|
|
11
|
+
# Feature-{NNN}-Technical: {Title} — Part: {part_title}
|
|
12
|
+
|
|
13
|
+
> Sub-feature detail file for part `{part_id}`. Global context (Context Diagram, Data Flow, API Spec, ERD, Architecture Decisions): see [`{parent_technical_file}`]({parent_technical_file}).
|
|
14
|
+
> Stacks involved in this part: {stacks_involved}.
|
|
15
|
+
> Source of truth for SE during `/tas-dev` for this part only.
|
|
16
|
+
|
|
17
|
+
---
|
|
18
|
+
|
|
19
|
+
## Stack: {Stack}
|
|
20
|
+
> *(repeat this section per stack involved in this part — omit stacks not touched here)*
|
|
21
|
+
|
|
22
|
+
### Logic Flow
|
|
23
|
+
1. {entry point}
|
|
24
|
+
2. {validation / auth}
|
|
25
|
+
3. {business logic}
|
|
26
|
+
4. {persistence / external call}
|
|
27
|
+
5. {response / event emit}
|
|
28
|
+
|
|
29
|
+
### File Changes
|
|
30
|
+
|
|
31
|
+
#### Modify
|
|
32
|
+
| File | Change | Reason |
|
|
33
|
+
|------|--------|--------|
|
|
34
|
+
| {path} | {what} | {why} |
|
|
35
|
+
|
|
36
|
+
#### Create
|
|
37
|
+
| File | Purpose |
|
|
38
|
+
|------|---------|
|
|
39
|
+
| {path} | {what it does} |
|
|
40
|
+
|
|
41
|
+
#### Delete
|
|
42
|
+
| File | Reason |
|
|
43
|
+
|------|--------|
|
|
44
|
+
| {path} | {why removed} |
|
|
45
|
+
|
|
46
|
+
### Config
|
|
47
|
+
| Item | Type | Value / Source | Environment |
|
|
48
|
+
|------|------|----------------|-------------|
|
|
49
|
+
| {VAR_NAME} | env var | {description} | dev / staging / prod |
|
|
50
|
+
|
|
51
|
+
### Unit Test Cases
|
|
52
|
+
> Test ID: `{PROJECT}_F{FEATURE}_AC{N}_UT_NNN_{H|E|N}`
|
|
53
|
+
|
|
54
|
+
| ID | AC Ref | Type | Description | Input | Expected Output |
|
|
55
|
+
|----|--------|------|-------------|-------|-----------------|
|
|
56
|
+
| {PROJ}_F{NNN}_AC1_UT_001_H | AC-1 | Happy | {description} | {input} | {expected} |
|
|
57
|
+
| {PROJ}_F{NNN}_AC1_UT_001_E | AC-1 | Edge | {description} | {boundary} | {expected} |
|
|
58
|
+
| {PROJ}_F{NNN}_AC1_UT_001_N | AC-1 | Negative | {description} | {invalid} | {error} |
|
|
59
|
+
|
|
60
|
+
### Tasks
|
|
61
|
+
- [ ] 1: {file + change}
|
|
62
|
+
- [ ] 2: {file + change}
|
|
63
|
+
- [ ] 3: Unit tests for AC-1, AC-2
|
|
64
|
+
|
|
65
|
+
---
|
|
66
|
+
|
|
67
|
+
## Changelog
|
|
68
|
+
| Date | Changes | Author |
|
|
69
|
+
|------|---------|--------|
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
---
|
|
2
|
+
feature_id: # e.g., Feature-001
|
|
3
|
+
parent_technical_file: # relative path to Feature-Technical.md (index)
|
|
4
|
+
stack: # web | service | integration | app
|
|
5
|
+
plan_by:
|
|
6
|
+
plan_date:
|
|
7
|
+
status: Draft # Draft | Approved | Implemented
|
|
8
|
+
---
|
|
9
|
+
# Feature-{NNN}-Technical: {Title} — Stack: {Stack}
|
|
10
|
+
|
|
11
|
+
> Stack detail file for `{stack}`. Global context (Context Diagram, Data Flow, API Spec, ERD, Architecture Decisions): see [`{parent_technical_file}`]({parent_technical_file}).
|
|
12
|
+
> Source of truth for SE during `/tas-dev` for this stack only.
|
|
13
|
+
|
|
14
|
+
---
|
|
15
|
+
|
|
16
|
+
## Logic Flow
|
|
17
|
+
1. {entry point}
|
|
18
|
+
2. {validation / auth}
|
|
19
|
+
3. {business logic}
|
|
20
|
+
4. {persistence / external call}
|
|
21
|
+
5. {response / event emit}
|
|
22
|
+
|
|
23
|
+
Optional sequence diagram:
|
|
24
|
+
:::mermaid
|
|
25
|
+
sequenceDiagram
|
|
26
|
+
Caller->>Controller: request
|
|
27
|
+
Controller->>Service: invoke
|
|
28
|
+
Service->>Repository: read/write
|
|
29
|
+
Repository->>DB: query
|
|
30
|
+
DB-->>Service: rows
|
|
31
|
+
Service-->>Caller: response
|
|
32
|
+
:::
|
|
33
|
+
|
|
34
|
+
## File Changes
|
|
35
|
+
|
|
36
|
+
### Modify
|
|
37
|
+
| File | Change | Reason |
|
|
38
|
+
|------|--------|--------|
|
|
39
|
+
| {path} | {what} | {why} |
|
|
40
|
+
|
|
41
|
+
### Create
|
|
42
|
+
| File | Purpose |
|
|
43
|
+
|------|---------|
|
|
44
|
+
| {path} | {what it does} |
|
|
45
|
+
|
|
46
|
+
### Delete
|
|
47
|
+
| File | Reason |
|
|
48
|
+
|------|--------|
|
|
49
|
+
| {path} | {why removed} |
|
|
50
|
+
|
|
51
|
+
## Config
|
|
52
|
+
| Item | Type | Value / Source | Environment |
|
|
53
|
+
|------|------|----------------|-------------|
|
|
54
|
+
| {VAR_NAME} | env var | {description} | dev / staging / prod |
|
|
55
|
+
|
|
56
|
+
## Unit Test Cases
|
|
57
|
+
> Test ID: `{PROJECT}_F{FEATURE}_AC{N}_UT_NNN_{H|E|N}`
|
|
58
|
+
|
|
59
|
+
| ID | AC Ref | Type | Description | Input | Expected Output |
|
|
60
|
+
|----|--------|------|-------------|-------|-----------------|
|
|
61
|
+
| {PROJ}_F{NNN}_AC1_UT_001_H | AC-1 | Happy | {description} | {input} | {expected} |
|
|
62
|
+
| {PROJ}_F{NNN}_AC1_UT_001_E | AC-1 | Edge | {description} | {boundary} | {expected} |
|
|
63
|
+
| {PROJ}_F{NNN}_AC1_UT_001_N | AC-1 | Negative | {description} | {invalid} | {error} |
|
|
64
|
+
|
|
65
|
+
## Tasks
|
|
66
|
+
- [ ] 1: {file + change}
|
|
67
|
+
- [ ] 2: {file + change}
|
|
68
|
+
- [ ] 3: Unit tests for AC-1, AC-2
|
|
69
|
+
|
|
70
|
+
---
|
|
71
|
+
|
|
72
|
+
## Changelog
|
|
73
|
+
| Date | Changes | Author |
|
|
74
|
+
|------|---------|--------|
|