QlarifyLabs
← AI in Testing
Deciding what to testEmerging

Coverage gap review

Map each requirement and risk to the tests that actually assert on it, so the ones nothing really checks stand out.

How it works

Code coverage says which lines ran, not which behaviours or risks were checked. The model reads the test suite — test names, assertions, and the test plan if there is one — alongside the requirements and the risk list, and maps one to the other: which requirements have tests that actually assert on them, and which risks are only touched incidentally. Reading assertions rather than test names matters, since a test called "validates discount" may assert only that the page loaded. The result is a short list of gaps with the reasoning behind each, ready for a decision about which to fill.

Each requirement or risk, by what tests assertDiscount applies at checkoutasserted: asserts the discounted totalExpired code is rejectedasserted: asserts the rejectionRisk: rounding on refundsonly touched: refund test, no amount checkRisk: two codes at onceno test: a gapA short list of gapseach with its reasoning
Coverage is read from assertions, not test names. A risk a test only touches counts for as little as one no test touches.

When to use it

Before a release, as a check on whether testing matched the risk; when inheriting a test suite; after a large change, to see whether tests kept up; and when a production defect raises the question of what else the suite isn't checking.

Limitations

The mapping depends on the model understanding both the tests and the requirements, and either can be misread; a gap it reports may be covered by a test it didn't connect, and a test it counts as coverage may not check what matters. Manual and exploratory testing usually leaves no artefact the model can read, so gaps it reports may already have been explored. Large suites don't fit in context and get sampled.

Watch for

A requirement is marked covered by a test that only checks the discount field is shown, not that the amount is right. For requirements that matter, break the behaviour on purpose and confirm the test it cites actually fails.

Before you reach for it

Tag each test with the requirement or risk it checks when it’s written, so the map is kept up to date rather than reconstructed later.

What you still own

Verifying each reported gap, and deciding which gaps to close and which to accept.

Cite this

Qlarify Labs. (2026). Coverage gap review. Retrieved from https://labs.qlarify.fi/ai-in-testing/coverage-gap-review