ALL-DATA0008 · data_change_test_gap_percentage
Measure impacted downstream assets lacking retained test evidence.
This is a deterministic rule for all languages. Read its implementation.
Definition
Section titled “Definition”Build the impacted set of every breaking change, which is the changed asset together with every asset downstream of it, then divide the impacted pairs the change’s own test evidence does not name by every impacted pair. The result is the share of the blast radius nobody checked, so it answers the question a raw impact count leaves open, which is whether anyone looked.
Test evidence is what the change itself retains rather than what a suite happens to cover, because a passing suite that never touches the changed column proves nothing about the change.
Evidence
Section titled “Evidence”Each finding names one impacted asset that no retained test evidence covers. The value is the percentage of impacted pairs with no test evidence, and it is zero when nothing breaking exists to be impacted.
Exceptions
Section titled “Exceptions”A nonbreaking change contributes nothing to either side, so a snapshot holding only additive changes measures zero rather than a full gap. A snapshot with no breaking change at all measures zero for the same reason, since a share of an empty set has no meaning. The changed asset counts as impacted by its own change, so covering only its consumers still leaves a gap, which is deliberate because the changed asset is the one thing that certainly moved.
Examples
Section titled “Examples”A breaking change to orders, whose lineage records dashboard and invoice, has three
impacted pairs. Test evidence naming orders and dashboard leaves one uncovered, so the
value is about 33.3. Evidence naming all three returns 0, and evidence naming none returns
100. A change marked nonbreaking returns 0 whatever its lineage holds.
References
Section titled “References”- Cites “The Google Testing Blog”, change impact and test selection