LegacyPhoenix is in development. Early conversations are open.

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 development

The 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

  1. Builds.

    The generated system compiles with no untranslated unit.

  2. Unit.

    Each unit gives the outputs and side effects of its original for the same inputs.

  3. Transaction.

    Recorded business transactions replay with identical outputs, status codes, messages and data.

  4. Interface.

    Screens, reports, files and messages on the wire are identical.

  5. Operation.

    Batch runs, concurrency, recovery and performance stay within agreed bounds.

Coverage is always stated

In development

A 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.