Shift-Left Testing
<default_to_action> When implementing early testing practices:
-
VALIDATE requirements before coding (testability, BDD scenarios)
-
WRITE tests before implementation (TDD red-green-refactor)
-
AUTOMATE in CI pipeline (every commit triggers tests)
-
FOLLOW test pyramid: Many unit (70%), some integration (20%), few E2E (10%)
-
FIX defects immediately - never let them accumulate
Quick Shift-Left Levels:
-
Level 1: Unit tests with each PR (developer responsibility)
-
Level 2: TDD practice (tests before code)
-
Level 3: BDD/Example mapping in refinement (requirements testing)
-
Level 4: Risk analysis in design (architecture testing)
Critical Success Factors:
-
Defects found in requirements cost 1x; in production cost 100x
-
Every commit must run automated tests
-
Quality is built in, not tested in </default_to_action>
Quick Reference Card
When to Use
-
Reducing cost of defects
-
Implementing CI/CD pipelines
-
Starting TDD practice
-
Improving requirements quality
Cost of Defects by Phase
Phase Relative Cost Example
Requirements 1x Fix doc: 30 min
Design 5x Redesign: few hours
Development 10x Code fix: 1 day
Testing 20x Fix + retest: 2 days
Production 100x Hotfix + rollback + investigation
Test Pyramid
/\ E2E (10%) - Critical user journeys
/ \
/ \ Integration (20%) - Component interactions
/ \
/________\ Unit (70%) - Fast, isolated, comprehensive
Shift-Left Levels
Level Practice When
1 Unit tests in PR Before merge
2 TDD Before implementation
3 BDD/Example Mapping During refinement
4 Risk Analysis During design
Level 1: Tests in Every PR
CI pipeline - tests run on every commit
name: CI on: [push, pull_request] jobs: test: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - run: npm ci - run: npm run test:unit - run: npm run test:integration - run: npm run lint
quality-gate: needs: test steps: - name: Coverage Check run: npx coverage-check --min 80 - name: No New Warnings run: npm run lint -- --max-warnings 0
Level 2: TDD Practice
// Red: Write failing test first test('calculates discount for orders over $100', () => { const order = new Order([{ price: 150 }]); expect(order.discount).toBe(15); // 10% off });
// Green: Minimal implementation class Order { get discount() { return this.total > 100 ? this.total * 0.1 : 0; } }
// Refactor: Improve while keeping green
Level 3: BDD in Refinement
Example mapping before coding
Feature: Loyalty Discount Scenario: Gold member gets 15% discount Given a customer with "gold" membership When they checkout with $200 in cart Then discount applied is $30 And order total is $170
Scenario: New customer gets no discount Given a customer with no membership When they checkout with $200 in cart Then no discount is applied
Level 4: Risk Analysis in Design
// During architecture review await Task("Risk Analysis", { phase: 'design', component: 'payment-service', questions: [ 'What happens when payment gateway times out?', 'How do we handle duplicate submissions?', 'What if inventory changed during checkout?' ] }, "qe-requirements-validator");
// Output: Testability requirements, failure mode tests
Agent-Assisted Shift-Left
// Validate requirements testability await Task("Requirements Validation", { requirements: userStories, check: ['INVEST-criteria', 'testability', 'ambiguity'], generateBDD: true }, "qe-requirements-validator");
// Generate tests from requirements await Task("Generate Tests", { source: 'requirements', types: ['unit', 'integration', 'e2e'], coverage: 'comprehensive' }, "qe-test-generator");
// Smart test selection for changes await Task("Select Regression Tests", { changedFiles: prFiles, algorithm: 'risk-based', targetReduction: 0.7 // 70% time savings }, "qe-regression-risk-analyzer");
Agent Coordination Hints
Memory Namespace
aqe/shift-left/ ├── requirements/* - Validated requirements ├── generated-tests/* - Auto-generated tests ├── coverage-targets/* - Coverage goals by component └── pipeline-results/* - CI/CD test history
Fleet Coordination
const shiftLeftFleet = await FleetManager.coordinate({ strategy: 'shift-left', agents: [ 'qe-requirements-validator', // Level 3-4 'qe-test-generator', // Level 2 'qe-regression-risk-analyzer' // Smart selection ], topology: 'sequential' });
Related Skills
-
tdd-london-chicago - TDD practices
-
holistic-testing-pact - Proactive testing
-
cicd-pipeline-qe-orchestrator - Pipeline integration
-
shift-right-testing - Production feedback
Remember
Earlier = Cheaper. Requirements defects cost 1x; production defects cost 100x. Test pyramid: 70% unit, 20% integration, 10% E2E. Every commit runs tests. TDD builds quality in.
With Agents: Agents validate requirements testability, generate tests from specs, and select optimal regression suites. Use agents to implement shift-left practices consistently.