111 lines
2.8 KiB
Markdown
111 lines
2.8 KiB
Markdown
---
|
||
name: 'step-03-test-strategy'
|
||
description: 'Map acceptance criteria to test levels and priorities'
|
||
outputFile: '{test_artifacts}/atdd-checklist-{story_id}.md'
|
||
nextStepFile: './step-04-generate-tests.md'
|
||
---
|
||
|
||
# Step 3: Test Strategy
|
||
|
||
## STEP GOAL
|
||
|
||
Translate acceptance criteria into a prioritized, level-appropriate test plan.
|
||
|
||
## MANDATORY EXECUTION RULES
|
||
|
||
- 📖 Read the entire step file before acting
|
||
- ✅ Speak in `{communication_language}`
|
||
- 🚫 Avoid duplicate coverage across levels
|
||
|
||
---
|
||
|
||
## EXECUTION PROTOCOLS:
|
||
|
||
- 🎯 Follow the MANDATORY SEQUENCE exactly
|
||
- 💾 Record outputs before proceeding
|
||
- 📖 Load the next step only when instructed
|
||
|
||
## CONTEXT BOUNDARIES:
|
||
|
||
- Available context: config, loaded artifacts, and knowledge fragments
|
||
- Focus: this step's goal only
|
||
- Limits: do not execute future steps
|
||
- Dependencies: prior steps' outputs (if any)
|
||
|
||
## MANDATORY SEQUENCE
|
||
|
||
**CRITICAL:** Follow this sequence exactly. Do not skip, reorder, or improvise.
|
||
|
||
## 1. Map Acceptance Criteria
|
||
|
||
- Convert each acceptance criterion into test scenarios
|
||
- Include negative and edge cases where risk is high
|
||
|
||
---
|
||
|
||
## 2. Select Test Levels
|
||
|
||
Choose the best level per scenario based on `{detected_stack}`:
|
||
|
||
**If {detected_stack} is `frontend` or `fullstack`:**
|
||
|
||
- **E2E** for critical user journeys
|
||
- **API** for business logic and service contracts
|
||
- **Component** for UI behavior
|
||
|
||
**If {detected_stack} is `backend` or `fullstack`:**
|
||
|
||
- **Unit** for pure functions, business logic, and edge cases
|
||
- **Integration** for service interactions, database queries, and middleware
|
||
- **API/Contract** for endpoint validation, request/response schemas, and Pact contracts
|
||
- **No E2E** for pure backend projects (no browser-based testing needed)
|
||
|
||
---
|
||
|
||
## 3. Prioritize Tests
|
||
|
||
Assign P0–P3 priorities using risk and business impact.
|
||
|
||
---
|
||
|
||
## 4. Confirm Red Phase Requirements
|
||
|
||
Ensure all tests are designed to **fail before implementation** (TDD red phase).
|
||
|
||
---
|
||
|
||
## 5. Save Progress
|
||
|
||
**Save this step's accumulated work to `{outputFile}`.**
|
||
|
||
- **If `{outputFile}` does not exist** (first save), create it with YAML frontmatter:
|
||
|
||
```yaml
|
||
---
|
||
stepsCompleted: ['step-03-test-strategy']
|
||
lastStep: 'step-03-test-strategy'
|
||
lastSaved: '{date}'
|
||
---
|
||
```
|
||
|
||
Then write this step's output below the frontmatter.
|
||
|
||
- **If `{outputFile}` already exists**, update:
|
||
- Add `'step-03-test-strategy'` to `stepsCompleted` array (only if not already present)
|
||
- Set `lastStep: 'step-03-test-strategy'`
|
||
- Set `lastSaved: '{date}'`
|
||
- Append this step's output to the appropriate section.
|
||
|
||
Load next step: `{nextStepFile}`
|
||
|
||
## 🚨 SYSTEM SUCCESS/FAILURE METRICS:
|
||
|
||
### ✅ SUCCESS:
|
||
|
||
- Step completed in full with required outputs
|
||
|
||
### ❌ SYSTEM FAILURE:
|
||
|
||
- Skipped sequence steps or missing outputs
|
||
**Master Rule:** Skipping steps is FORBIDDEN.
|