IT Industry · Jul 15, 2026
Flaky Tests Are a Trust Problem, Not a Tooling Problem
By OAR Team · 4 min read
IT Industry · Jul 15, 2026
By OAR Team · 4 min read
Every team with a large enough test suite eventually has the same conversation: “just re-run it, that one’s flaky.” The first time someone says it, it’s a shrug. Six months later it’s the default response to any red build, and nobody can say with confidence which failures are real.
That’s the actual cost of flaky tests. Not the CI minutes wasted on retries, not the extra few minutes before a PR merges — the erosion of a signal the whole team depends on. A test suite only works if a failure means something. Once it doesn’t, engineers stop reading the output and start clicking re-run, and the suite quietly stops being a safety net.
A single flaky test is a minor annoyance. A test suite where 2% of tests flake sounds tolerable until you count how many independent tests run per build. At a few hundred tests, a 2% flake rate means most builds have at least one false failure. At that point, a red build carries almost no information — it’s as likely to mean “infrastructure hiccup” as “you broke something.”
Teams respond in predictable ways, and none of them fix the underlying issue. They add retry logic that reruns failed tests automatically, which hides flakiness instead of surfacing it. They quarantine flaky tests into a suite nobody watches, which is a polite way of deleting coverage. Or they just start merging past red builds, which defeats the point of having CI at all.
Flaky tests rarely come from one exotic bug. They come from a short list of repeat offenders: tests that depend on execution order or shared state, timing assumptions that hold on a fast machine and fail on a loaded CI runner, network or filesystem calls that should have been mocked, and non-deterministic inputs like current time or random IDs that weren’t seeded.
None of these require new tooling to fix. They require someone to actually read the failure, reproduce it locally, and address the root cause instead of adding a retry. The reason this doesn’t happen is usually organizational, not technical — fixing a flaky test rarely shows up on anyone’s roadmap, and the person who wrote it has often moved to a different project by the time it starts misbehaving.
The teams that keep their test suites trustworthy treat a newly flaky test the same way they’d treat a production incident: it gets filed, assigned, and tracked until it’s fixed or deliberately removed. Some go further and quarantine flaky tests automatically, but with a hard rule — quarantined tests get a deadline and an owner, not a permanent home in a suite nobody looks at.
The other lever is visibility. If flake rate isn’t measured, it isn’t managed. Tracking which tests fail intermittently over time turns “that one’s flaky” from an anecdote into a list, and lists get worked down in a way that vague team lore doesn’t.
A test suite’s value isn’t the number of tests in it — it’s whether a red build reliably means something broke. That property is easy to lose and expensive to rebuild, because once engineers learn to distrust CI, changing that habit takes far longer than the flakiness took to accumulate. Keeping the suite boring and predictable is a maintenance cost worth paying deliberately, before the alternative becomes normal.
Filed under: IT Industry
IT Industry
Shipping a v2 endpoint is easy. The hard part is that every external caller now expects v1 to keep working, forever, on someone else's schedule.
IT Industry
Cloud bills keep surprising finance teams because the decisions that drive them are made by engineers, one merged PR at a time.
IT Industry
Writing the ALTER TABLE statement is the easy part — the real difficulty is getting every service and deploy in sync before and after it runs.