Skip to main content
OAR logo

IT Industry · Jul 15, 2026

Flaky Tests Are a Trust Problem, Not a Tooling Problem

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.

Flakiness compounds

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.

The causes are almost always the same

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.

Treat flakiness as a bug, with an owner

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.

The suite is only as good as the trust in it

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