Es gibt eine API, einen Call oder einen Event im bestehenden System, der durch ein neues ersetzt werden soll.
Man kennt die Funktionalität, aber versteht den bestehenden Code nicht - oder hat gar keinen Zugriff.
Also intercepted man die Kommunikation, die in die alte Applikation geht bzw. aus der alten Applikation kommt. Zum Beispiel durch einen Proxy oder ein ApiGateway, oder eine Fassade.
Und man ruft mit diesen Parametern das alte wie das neue System auf und vergleicht die Resultate logisch.
Wenn sie übereinstimmen - gut. Wenn sie nicht übereinstimmen prüft man, welches das erwünschte Verhalten war.
Wenn eine vorher festgelegte Zahl von Aufrufen mit korrekten Resultaten eingetreten ist - oder das alte System mehr fehlerhafte Daten als das neue zurückliefert - entfernt man den Proxy und setzt das neue System an die Stelle des alten.
Wenn man das alte System nicht anfassen mag, es aber ersetzen muss.