<aside>
ℹ️ A framework for software engineering leaders to drive QA Shift-Left strategy.
Read more on Practical Engineering Management: practicalengineering.management/p/leading-qa-shift-left-transformation
</aside>
1. Requirements are Testing Scenarios 📜
- User stories are collaboratively created (Product + QA + Engineering) during refinement.
- A story is ready for implementation when it meets the INVEST criteria (Independent, Negotiable, Valuable, Estimable, Sized appropriately, Testable).
2. Tests-First Approach During Development 🧑💻
- Set up architecture that enables early testing (e.g. Clean Architecture).
- Unit Tests: Define and implement basic test scenarios before coding the feature.
- Once green, extend tests for negative cases; write/adjust implementation.
- Integration/UI Tests: Validate user flows end-to-end (in a test environment).
- Contract Tests: Create or update consumer-driven contract tests.
- Code Review: Ensure tests and code meet quality standards before merging.
3. CI/CD ⚙️
- Merging to main triggers automated builds and all tests (unit, integration, contract).
- Upon success, deploy to a test/staging environment.
- Run a small set of E2E tests (focus on critical “green paths”).
- If E2E passes, proceed with canary deployment.
4. Canary Deployment 🔬
- Deploy the new release to a small subset of production servers/users. Use feature flags, blue/green, beta channels, hidden links, or any other release throttling strategy.
- Synthetic monitoring and E2E checks run against the canary.
- If KPIs (performance, error rate) are good, promote to full production and retire the old version.