Characterization tests & parallel runs
Two mechanisms make a migration safe to ship.
Characterization tests (the safety net):
• Before any code changes, Modernize captures the legacy program's actual inputs and outputs as golden masters. A unit must reach ≥80% coverage to leave the Characterized stage — that's the gate that unblocks translation. You're pinning down "what does this program really do today," even for code nobody on staff fully understands.
Parallel runs (proving equivalence):
• The Parallel Runs tab runs the new implementation beside the old one (a strangler-fig harness) and compares results. Each session reports a pass-rate. You only cut over once equivalence holds — typically ≥99% across multiple sessions. This is how you prove a translated interest-accrual program matches the mainframe penny-for-penny before flipping traffic.
Together they remove the two reasons rewrites fail: you no longer guess what the code does, and you no longer hope the replacement matches — both are measured.
Ask Wally "what's the equivalence pass-rate on the billing batch?" to read the latest session results, or have it kick off characterization for a unit.