LAB15 — Detect a wrong comparison
Start CP07 in a fresh folder. Suggested time: 60 minutes. Write the requirement before reading the implementation: exactly 3000 ms remains current; age 3001 ms becomes stale.
Run .\scripts\test.cmd and save the actual baseline. Unmodified CP07's reference suite has 36 assertions. In a disposable mutation copy, change only Monitor::poll expiry comparison from > to >=. The source should compile, then the unchanged suite should reject the early-expiry behavior. Preserve the actual failure.
Restore >, rebuild, and rerun the same suite. Inspect the diff and replay fixtures/stale-recovery.csv to connect the boundary with readable output. Attempt the restored firmware build and retain its actual receipt.
Add one requirement-motivated test, such as negative infinity entering FAULT/nonfinite with no current temperature. State the expected result independently before coding. Leave production behavior unchanged if it already satisfies the case.
Submit baseline/mutated/restored records, the reviewed source diff, the added test's purpose/result, replay/build evidence, and an explicit list of unperformed physical checks. A mutation that fails only to compile does not prove a behavioral test can catch the defect. Chapter 15 contains the worked answer and evidence interpretation.