From E2E to Contract Tests: A Practical Migration Path.
Your E2E suite fails after the merge. Four tests, three unrelated-looking files, and not one error message mentions the actual cause. This is a walkthrough of a real migration that moves that feedback to before the PR is open — with the code, the pipelines, and the failures that proved...
Start here
Green or Gone: Why We Stop Trusting Tests
How slow and unstable tests turn pipelines into noise — and what it takes to build a suite people actually trust.
02Test Before You Merge
Keep the main branch stable and catch issues before they reach production.
03Shift Left or Fall Behind
Why delayed testing compounds against you — and how to stop it.
04Contract Testing: The Journey to Confidence
Validate service integrations without spinning up full environments.
Worth reading
Let Failures Speak
Design tests so every failure points directly to the fix — no re-running, no guessing.
From E2E to Contract Tests
A real migration from 20 Playwright tests to contract coverage — six pull requests, actual CI failures, and feedback that arrives before the merge.
Every Heroic Bug Fix Is a Process Failure
The bug isn't the problem. The process that let it reach production is.
View all articles →About Elena
I'm a QA Tech Lead focused on the systems behind software quality — how teams test, ship, debug and build confidence in distributed systems.
I've spent 15+ years working on automation, CI/CD, microservices and contract testing. I write QA Explained to explore the uncomfortable parts of software quality that usually get reduced to "just add another test."
One uncomfortable truth, in your inbox.
No cadence promises, no fluff. Just the next essay on quality engineering — when it's ready.