The Four Phases
You MUST complete each phase before proceeding to the next.
Phase 1: Test Planning (Shift Left)
BEFORE code is written:
Analyze the Requirements (Static Testing)
- Read the PRD/Ticket.
- Find Logical Holes: "What happens if the user has no internet?" "What if the date is in the past?"
- Challenge the PM/Dev: "How can we test this?"
- Goal: Prevent bugs before they are coded.
Define the Test Strategy
- What is the scope? (UI only? API? Database?)
- What devices/browsers must we support?
- Do we need test data? (e.g., a user with an expired credit card).
Risk Assessment
- What is the impact of failure? (Critical/High/Low).
- Focus effort on the high-risk areas. You cannot test everything.
Phase 2: Test Execution (Manual/Exploratory)
Finding the unknown unknowns:
Sanity / Smoke Test
- Does the build even launch?
- Runtime Symbol Audit (MANDATORY): Verify all imported symbols (e.g.,
crypto, fs) are defined.
- Dry-Run Execution: Verify server reaches "Ready" without ReferenceErrors.
- If this fails, reject the build immediately.
Exploratory Testing
- Don't just follow a script. Be a detective.
- Try to break it: Double click buttons. Enter emojis in name fields. Use back buttons.
- Change network speed (Throttling) to see how it handles slow loading.
Cross-Platform Verification
- Test on Mobile (iOS/Android).
- Test on Desktop (Chrome/Safari).
- Responsive Check: Does the layout break on small screens?
Phase 3: Automation & Regression (The Safety Net)
Codifying the knowns:
Automate Stable Features
- Rule: Do not automate a feature that is still changing.
- Write E2E tests (Cypress/Playwright) for the "Happy Path."
- Write API tests for backend logic (faster/reliable).
Manage Flakiness
- A test that fails randomly is worse than no test.
- Action: If a test is flaky, fix it or delete it. Do not ignore it.
Regression Suite
- Run the suite to ensure new code didn't break old features.
- Focus on "Critical Business Flows" (Login, Checkout, Signup).
Phase 3.5: Visual Regression Testing (2026)
Catch UI bugs that functional tests miss:
Screenshot Comparison
- Tools: Percy, Chromatic (for Storybook), Playwright screenshots
- How: Capture baseline, compare on every PR
- Threshold: Allow 0.1% pixel difference (antialiasing)
- When: Design system components, marketing pages
Visual Review Workflow
- Baseline approved by designer
- PR shows visual diff automatically
- Approve or request changes before merge
- Benefit: Prevents unintended CSS changes
Cross-Browser Visual Testing
- Challenge: Fonts render differently (Chrome vs Safari)
- Solution: Test on actual browsers, not emulators
- Tools: BrowserStack, Sauce Labs, Percy
Phase 3.6: Chaos Engineering
Test resilience by breaking things on purpose:
Chaos Principles
- Hypothesis: "If Redis fails, app degrades gracefully (slow, not down)"
- Bl ast Radius: Test in staging first, production during low traffic
- Automated: Run chaos tests in CI/CD weekly
Failure Injection Scenarios
- Kill random pods/containers
- Introduce network latency (500ms)
- CPU/Memory pressure
- Database connection pool exhaustion
Tools
- Chaos Mesh: Kubernetes-native
- Gremlin: Enterprise chaos engineering platform
- Toxiproxy: Network failure simulation
- AWS Fault Injection Simulator: Cloud-native
Phase 4: Reporting & Advocacy
The Gatekeeper:
Bug Reporting
- Clear Title:
[Component] Action results in Error
- Steps to Reproduce: Exact steps. 1, 2, 3.
- Evidence: Screenshots, Video, Console Logs, API responses.
- Severity vs. Priority: Severity = Impact (Crash). Priority = Urgency (Fix now).
Release Decision
- Provide a "Go / No-Go" recommendation based on data.
- "We have 0 Critical bugs, but 5 Visual bugs. Recommendation: Ship."
- MANDATORY: Verify that a 'fine-toothed comb' code review has been completed by the specific personas (PE, PM, Designer).
Root Cause Analysis (Post-Bug)
- Ask the Dev: "How did we miss this? Did we lack a unit test?"
- Improve the process so this bug type doesn't return.
Red Flags - STOP and Follow Process
If you catch yourself thinking:
- "The dev said they tested it, I'll trust them."
- "I'll just test the happy path to get this merged."
- "I'll write the bug report later." (You'll forget details).
- "This test fails sometimes, just re-run it until it passes." (Flaky test).
- "I don't need to check logs, the UI looks fine." (Hidden errors).
- "I'll test everything manually forever." (Unscalable).
- Skipping the 'fine-toothed comb' pre-deployment code review.
ALL of these mean: STOP. Return to Phase 1.
Your Human Partner's Signals You're Doing It Wrong
Watch for these complaints:
- Dev: "I can't reproduce your bug." (Your report lacks Steps/Evidence).
- PM: "Why is QA taking so long?" (You are manually testing what should be automated).
- Team: "The build is always red." (Flaky tests).
- Users: "The app crashes on iPhone." (You skipped Cross-Platform tests).
- Dev: "You're finding typos, not logic bugs." (You're focusing on Low Priority issues).
When you see these: STOP. Refine your strategy.
Common Rationalizations
| Excuse |
Reality |
| "It's a small change, no need to test" |
Small changes cause big outages. Smoke test it. |
| "I don't have time to automate" |
Then you will spend all your time manually testing regression. |
| "It works in Staging" |
Staging is not Production. Data/Config might differ. |
| "Documentation is outdated" |
Then clarify requirements before testing. |
Quick Reference
| Phase |
Key Activities |
Success Criteria |
| 1. Planning |
Requirements Review, Strategy |
Potential bugs found in specs |
| 2. Execution |
Exploratory, Cross-browser |
Bugs logged with evidence |
| 3. Automation |
E2E Scripts, API Tests |
Green regression suite |
| 4. Reporting |
Bug Triage, Go/No-Go |
Informed shipping decision |
1---2name: qa-engineer3description: QA Engineer Skill4---5## The Four Phases67You MUST complete each phase before proceeding to the next.89### Phase 1: Test Planning (Shift Left)1011**BEFORE code is written:**12131. **Analyze the Requirements (Static Testing)**14 - Read the PRD/Ticket.15 - **Find Logical Holes:** "What happens if the user has no internet?" "What if the date is in the past?"16 - Challenge the PM/Dev: "How can we test this?"17 - **Goal:** Prevent bugs *before* they are coded.18192. **Define the Test Strategy**20 - What is the scope? (UI only? API? Database?)21 - What devices/browsers must we support?22 - Do we need test data? (e.g., a user with an expired credit card).23243. **Risk Assessment**25 - What is the impact of failure? (Critical/High/Low).26 - Focus effort on the high-risk areas. You cannot test everything.2728### Phase 2: Test Execution (Manual/Exploratory)2930**Finding the unknown unknowns:**31321. **Sanity / Smoke Test**33 - Does the build even launch?34 - **Runtime Symbol Audit (MANDATORY):** Verify all imported symbols (e.g., `crypto`, `fs`) are defined.35 - **Dry-Run Execution:** Verify server reaches "Ready" without ReferenceErrors.36 - If this fails, reject the build immediately.37382. **Exploratory Testing**39 - Don't just follow a script. Be a detective.40 - Try to break it: Double click buttons. Enter emojis in name fields. Use back buttons.41 - Change network speed (Throttling) to see how it handles slow loading.42433. **Cross-Platform Verification**44 - Test on Mobile (iOS/Android).45 - Test on Desktop (Chrome/Safari).46 - **Responsive Check:** Does the layout break on small screens?4748### Phase 3: Automation & Regression (The Safety Net)4950**Codifying the knowns:**51521. **Automate Stable Features**53 - **Rule:** Do not automate a feature that is still changing.54 - Write E2E tests (Cypress/Playwright) for the "Happy Path."55 - Write API tests for backend logic (faster/reliable).56572. **Manage Flakiness**58 - A test that fails randomly is worse than no test.59 - **Action:** If a test is flaky, fix it or delete it. Do not ignore it.60613. **Regression Suite**62 - Run the suite to ensure new code didn't break old features.63 - Focus on "Critical Business Flows" (Login, Checkout, Signup).6465### Phase 3.5: Visual Regression Testing (2026)6667**Catch UI bugs that functional tests miss:**68691. **Screenshot Comparison**70 - **Tools:** Percy, Chromatic (for Storybook), Playwright screenshots71 - **How:** Capture baseline, compare on every PR72 - **Threshold:** Allow 0.1% pixel difference (antialiasing)73 - **When:** Design system components, marketing pages74752. **Visual Review Workflow**76 - Baseline approved by designer77 - PR shows visual diff automatically78 - Approve or request changes before merge79 - **Benefit:** Prevents unintended CSS changes80813. **Cross-Browser Visual Testing**82 - **Challenge:** Fonts render differently (Chrome vs Safari)83 - **Solution:** Test on actual browsers, not emulators84 - **Tools:** BrowserStack, Sauce Labs, Percy8586### Phase 3.6: Chaos Engineering8788**Test resilience by breaking things on purpose:**89901. **Chaos Principles**91 - **Hypothesis:** "If Redis fails, app degrades gracefully (slow, not down)"92 - **Bl ast Radius:** Test in staging first, production during low traffic93 - **Automated:** Run chaos tests in CI/CD weekly94952. **Failure Injection Scenarios**96 - Kill random pods/containers97 - Introduce network latency (500ms)98 - CPU/Memory pressure99 - Database connection pool exhaustion1001013. **Tools**102 - **Chaos Mesh:** Kubernetes-native103 - **Gremlin:** Enterprise chaos engineering platform104 - **Toxiproxy:** Network failure simulation105 - **AWS Fault Injection Simulator:** Cloud-native106107### Phase 4: Reporting & Advocacy108109**The Gatekeeper:**1101111. **Bug Reporting**112 - **Clear Title:** `[Component] Action results in Error`113 - **Steps to Reproduce:** Exact steps. 1, 2, 3.114 - **Evidence:** Screenshots, Video, Console Logs, API responses.115 - **Severity vs. Priority:** Severity = Impact (Crash). Priority = Urgency (Fix now).1161172. **Release Decision**118 - Provide a "Go / No-Go" recommendation based on data.119 - "We have 0 Critical bugs, but 5 Visual bugs. Recommendation: Ship."120 - **MANDATORY: Verify that a 'fine-toothed comb' code review has been completed by the specific personas (PE, PM, Designer).**1211223. **Root Cause Analysis (Post-Bug)**123 - Ask the Dev: "How did we miss this? Did we lack a unit test?"124 - Improve the process so this bug type doesn't return.125126## Red Flags - STOP and Follow Process127128If you catch yourself thinking:129- "The dev said they tested it, I'll trust them."130- "I'll just test the happy path to get this merged."131- "I'll write the bug report later." (You'll forget details).132- "This test fails sometimes, just re-run it until it passes." (Flaky test).133- "I don't need to check logs, the UI looks fine." (Hidden errors).134- "I'll test everything manually forever." (Unscalable).135- **Skipping the 'fine-toothed comb' pre-deployment code review.**136137**ALL of these mean: STOP. Return to Phase 1.**138139## Your Human Partner's Signals You're Doing It Wrong140141**Watch for these complaints:**142- **Dev:** "I can't reproduce your bug." (Your report lacks Steps/Evidence).143- **PM:** "Why is QA taking so long?" (You are manually testing what should be automated).144- **Team:** "The build is always red." (Flaky tests).145- **Users:** "The app crashes on iPhone." (You skipped Cross-Platform tests).146- **Dev:** "You're finding typos, not logic bugs." (You're focusing on Low Priority issues).147148**When you see these:** STOP. Refine your strategy.149150## Common Rationalizations151152| Excuse | Reality |153|--------|---------|154| "It's a small change, no need to test" | Small changes cause big outages. Smoke test it. |155| "I don't have time to automate" | Then you will spend all your time manually testing regression. |156| "It works in Staging" | Staging is not Production. Data/Config might differ. |157| "Documentation is outdated" | Then clarify requirements *before* testing. |158159## Quick Reference160161| Phase | Key Activities | Success Criteria |162|-------|---------------|------------------|163| **1. Planning** | Requirements Review, Strategy | Potential bugs found in specs |164| **2. Execution** | Exploratory, Cross-browser | Bugs logged with evidence |165| **3. Automation** | E2E Scripts, API Tests | Green regression suite |166| **4. Reporting** | Bug Triage, Go/No-Go | Informed shipping decision |