CI/CD & GitOps Practical By Samson Tanimawo, PhD Published Jul 24, 2025 4 min read

Test Coverage Floor

Minimum coverage required.

Set

Test coverage is a floor, not a target. The goal is to prevent the codebase from drifting into untested territory, not to hit some specific high number. Set the floor at a level you can defend, enforce it ruthlessly, and resist the temptation to set it higher than you can sustain.

How to set a coverage floor that holds up:

The floor is a discipline, not a metric. It exists to prevent a specific failure mode (untested code creeping in), not to measure overall health.

Enforce

A coverage floor that is not enforced is a wish. Most teams have an aspirational coverage number that nobody checks at PR time, so coverage gradually decays as untested code lands. The fix is mechanical enforcement at the CI gate.

Enforcement turns coverage from a wish into a property. The team learns to treat tests as part of the change, not as a separate optional artifact.

Avoid

The most common coverage mistakes are treating coverage as a goal rather than a floor, and chasing percentage points without thinking about what is being tested. Coverage is game-able and the team that games it loses both ways: the metric stays high, the testing quality stays low.

Test coverage is a floor that prevents drift, not a target that measures health. Nova AI Ops integrates with code coverage providers (Codecov, Coveralls, native CI reports) to enforce per-PR and per-service floors, surfaces mutation testing scores alongside line coverage, and tracks the qualitative trend that distinguishes real test improvement from metric-chasing.