Zum Inhalt springen

Fuse Software GmbH

(DE | EN)

← zurück

Migration ·

Ein Modul einer Windows-Altanwendung in vier Wochen ins Web gebracht

Dieser Artikel wurde automatisch übersetzt. Original auf Englisch lesen →

In vier Wochen haben wir ein Modul einer alten Windows-Anwendung ins Web gebracht. Der neue Code setzt 717 Geschäftsregeln um, die gesamte Testsuite umfasst 6.500 Tests. Um das Modul und den Code zu verstehen, den es nutzt, haben Agenten 1,02 Millionen Zeilen bestehenden Code analysiert.

Geprüft haben wir die neue Anwendung, indem wir dieselben Aktionen in der alten ausgeführt und die Ergebnisse verglichen haben. Welche Änderungen wir wollten, haben wir vorab vereinbart. Alles andere musste so funktionieren wie vorher.

Agenten bedienen die Windows-Anwendung

Die alte Anwendung lief in einer VM. Über MCPs haben wir Agenten Werkzeuge gegeben, mit denen sie Buttons klicken, Daten eingeben und Screenshots machen konnten.

So konnten sie die Anwendung selbst benutzen, um herauszufinden, wie sie sich verhält. Wir haben verschiedene Wege verglichen, Windows zu steuern, und wiederverwendbare Anleitungen für die Agenten geschrieben. Mit diesen Anleitungen wählten sie die schnelleren Methoden.

Derselbe Test in beiden Versionen

Das ist die Idee hinter Golden-Master-Tests: Die Ergebnisse der alten Anwendung prüfen die neue.

Für jeden Test müssen beide Versionen mit denselben Daten starten. Wir führen dieselbe Abfolge von Aktionen aus, vergleichen dann die Screenshots und prüfen die in der Datenbank gespeicherten Daten. Weicht auch nur ein Feld ab, schlägt der Test fehl.

Lehnt die alte Anwendung eine Transaktion ab, muss die neue sie auch ablehnen. Keine von beiden darf die Datenbank verändern. Dieselbe Fehlermeldung anzuzeigen ist nur ein Teil der Prüfung.

Gemeinsam Code schreiben, abwechselnd testen

Bis zu 10 Coding-Agenten arbeiteten gleichzeitig. Jeder nutzte einen eigenen Git-Worktree und damit eine eigene Arbeitskopie des Codes. So kamen sich ihre Dateiänderungen nicht in die Quere.

Alle teilten sich eine Windows-VM und eine Oracle-Datenbank. Wenn ein Agent einen Bildschirm oder die Testdaten veränderte, während ein anderer sie gerade nutzte, konnte das den Test verderben.

Die Agenten bauten sich ein eigenes System, um sich abzuwechseln. Ein Agent konnte die VM oder die Datenbank reservieren, solange er daran arbeitete. Andere Agenten mussten warten, bevor sie sie nutzen konnten. So konnten sie gleichzeitig Code schreiben und die gemeinsamen Werkzeuge abwechselnd nutzen.

Ein eigener Scheduler arbeitete außerdem eine Liste von Aufgaben ab, sodass die Agenten auch nachts und am Wochenende weiterarbeiten konnten.

Wenn die Agenten Fragen hatten, lieferten sie Screenshots und Kontext dazu. Wir entschieden, wie es weitergeht. Diese Fragen zu beantworten hat mehr von unserer Zeit gekostet als jeder andere Teil des Projekts.