Identical is something you measure.
A rewritten system that passes its own new tests has shown only that it agrees with itself. LegacyPhoenix tests the new system against the original.
One recording, two systems, one comparison.
Text version of the diagram. Recorded inputs go to two systems: the original application and the new system. Each produces outputs, status codes, messages and data. Both sets go to a step called compare exactly. If there are differences: trace, fix, run again, and the loop returns to the new system. If there are no differences: the proof is accepted.
Tests come from the original application
Recorded behaviour: inputs, outputs and data states captured from the legacy system. Working today
The model: field definitions, branch conditions and data access show what to test and what to check. In development
Scenarios proposed by AI and reviewed by an expert before they count. In development
This is not a theory. In Sector7's current project work, orchestrated AI built more than 800 test cases for one customer system by reading its code and its manuals.
Standing in for the outside world
In developmentThe original has to run under test, away from production. Terminal users, network partners, middleware services, incoming files, the clock and the database's starting state are replaced by recorded stand-ins. One recording feeds both the old system and the new one.
What identical means
Builds.
The generated system compiles with no untranslated unit.
Unit.
Each unit gives the outputs and side effects of its original for the same inputs.
Transaction.
Recorded business transactions replay with identical outputs, status codes, messages and data.
Interface.
Screens, reports, files and messages on the wire are identical.
Operation.
Batch runs, concurrency, recovery and performance stay within agreed bounds.
Coverage is always stated
In developmentA result always comes with two numbers: how many scenarios match, and how much of the system those scenarios exercise. What has not been exercised is listed by name.
The loop
Run old and new from clean state. Compare exactly. Trace each difference to its cause. Fix it. Run everything again.