Coverage is measured against the code you wrote. The risk you never thought of has no code — so it cannot lower the number, and 95% stays 95%.
Same percentage, same green chart in the same report. Break the code deliberately and only one of them notices.
95% coverage. Calls every function, checks that nothing throws an error.
95% coverage. Twelve of its tests check a specific business rule — including that one person cannot be paid twice in one run.
One counts which lines ran. One asks which real problems a test would have caught.
Coverage counts which lines ran, not what was checked while they ran. A test that calls a function and asserts nothing at all is fully counted — the line executed, so the tool records it, and the percentage goes up without a single claim being made about the result.
The deeper problem is what the number is measured against. Coverage is a fraction of the code you wrote, so a rule nobody thought of contributes no lines, misses no lines, and leaves the percentage untouched. That is why 95% and a duplicate payroll run sit together comfortably.
Tap a test, then tap whether it would survive the code being wrong. Then see exactly what each one would catch.
Pick a situation. Every one of these had a coverage number somebody was proud of.
Ninety-five per cent. Every line of the payment function ran during testing. Nobody had ever written down that the same person must not be paid twice.
Five questions. Nothing is scored.
Five terms, not two. Tap one.
Test coverage only shows that code was run, not that important risks were checked. A test that runs a function without checking its output boosts coverage, but does not catch mistakes that matter.
A high-quality test for a payment system would try to pay a negative amount or duplicate a transaction, catching errors that could cost money. Quality means the test checks what could actually go wrong, not only that the code runs.
No. A coverage report only tells you which code was run by tests. It cannot tell you if the tests actually check for the problems that matter. High coverage is not the same as being safe.
Coverage is easy to measure and report. It gives a clear target and looks like progress. But without checking what the tests actually do, high coverage can give a false sense of safety.
Say that coverage is like checking every room for lights, but quality is making sure the lights actually turn on. Both matter, but only quality tells you if things work when needed.
You risk missing important bugs, because you might write tests that run code without checking for real errors. High coverage can hide gaps in your testing and lead to surprises in production.
Most tools focus on coverage, not quality. Some advanced tools highlight risky areas or suggest missing tests, but human review is still needed to judge whether tests check what matters.
A coverage report can only tell you about code that exists. The rule nobody wrote has no lines to miss.
Copyright © Pawan Nayar · LLOS.ai · 2026 — Test coverage vs Test quality: how much code ran, versus which risks were checked.Original pedagogy, voice, and design — all rights reserved.