These are the difference between “we ran a lot of tests” and “we can show the tests would have caught it.”
| Check | What it rules out | Method |
|---|---|---|
| Mutation testing | That the harness would fail to notice a broken rewriter | Nine deliberate faults seeded into the engine: no injection at all, outermost scope only, first scope only, skip CTE bodies, skip set-operation branches, negate the predicate, replace it with 1=1, OR it with 1=1, wrong value. Denominator counts faults that actually changed a result; semantically equivalent mutants are excluded rather than scored as misses. |
| Native RLS cross-check | That our independently built answer key is itself wrong | A dedicated PostgreSQL role with no BYPASSRLS, FORCE ROW LEVEL SECURITY enabled, compared against the authorized-only schema. |
| Combinatorial coverage | That raw volume is hiding shallow coverage | t-way coverage across four factors: engine, rule type, query shape, database. Combinations that cannot exist are excluded by a feasibility filter — some databases have no column able to support a BETWEEN rule, and counting those against coverage would understate it as dishonestly as ignoring real gaps overstates it. |