promptgarten 🌱
🌍 EN
Guide●●●5 Min · +40 XP

Alte Codebasen mit KI verstehen und modernisieren

Legacy-Code ohne Tests lässt sich nicht einfach umschreiben – Characterization-Tests und kleine Schritte machen KI-gestützte Modernisierung sicher.

Was Legacy-Code besonders macht

Der Softwareentwickler Michael Feathers definierte Legacy-Code einmal knapp als "Code ohne Tests". Genau das macht ihn gefährlich für Veränderungen: Niemand – auch kein KI-Agent – kann prüfen, ob eine Änderung das Verhalten kaputt macht, wenn es keine Tests gibt, die dieses Verhalten festhalten.

Erster Schritt: Verhalten festhalten, nicht verbessern

Bevor irgendetwas umgebaut wird, brauchst du Characterization-Tests. Das sind Tests, die aufschreiben, was der Code JETZT tut – auch wenn das seltsam oder sogar fehlerhaft wirkt. Sie sind kein Qualitätsurteil, sondern eine Momentaufnahme, die spätere Änderungen absichert.

Zweiter Schritt: schrittweise migrieren

Ein komplettes Neuschreiben ist riskant: Bis die neue Version fertig ist, läuft nichts zuverlässig, und subtiles Altverhalten geht oft verloren. Bewährter ist die schrittweise Migration – ein als "Strangler Fig" bekanntes Muster: Neue Teile wachsen Stück für Stück um den alten Code herum, bis der alte irgendwann abgeschaltet werden kann.

Wofür KI-Agenten hier besonders nützlich sind

Ein Agent kann große, undokumentierte Module schnell zusammenfassen und mögliche Characterization-Tests vorschlagen – Arbeit, die bei fehlender Doku sonst viel Aufwand kostet. Wichtig bleibt: erst verstehen und absichern, dann erst verändern.

BEISPIEL

Prompt: 'Dieses 1.800-Zeilen-Modul hat keine Tests und keine Doku. Fasse zuerst zusammen, was es fachlich tut. Schreibe dann Characterization-Tests für die fünf wichtigsten Funktionen, die das AKTUELLE Verhalten festhalten – auch wenn es merkwürdig wirkt. Ändere noch keinen Code.'

🛠️ ÜBUNG — MACH DAS BEI DIR

Nimm ein ungetestetes, unübersichtliches Modul aus einem eigenen (oder einem Open-Source-)Projekt und sichere es mit Characterization-Tests ab, bevor du etwas änderst.

  1. Lass den Agenten zuerst zusammenfassen, was das Modul fachlich tut, ohne Code zu ändern.
  2. Identifiziere gemeinsam 3-5 typische Eingaben/Aufrufe und lass den Agenten Tests schreiben, die die aktuellen Ausgaben als erwarteten Wert festhalten.
  3. Erst danach: eine erste kleine, isolierte Änderung vornehmen und prüfen, ob die Characterization-Tests noch grün sind.

SELBST-CHECK

  • Decken die Tests die wichtigsten Pfade ab, nicht nur den einfachsten Fall?
  • Hast du bewusst das AKTUELLE Verhalten festgehalten, statt es beim Testen schon zu 'verbessern'?
  • Ist nach der ersten Änderung noch alles grün – oder zeigt ein roter Test genau, was sich verändert hat?

KURZ-QUIZ

Was ist ein Characterization-Test?

QUELLEN

VERWANDTE THEMEN

Testing mit Agenten: Tests schreiben lassen und als Gate nutzen ●●○Dokumentation mit KI pflegen ●○○Debugging mit KI-Agenten: systematisch statt raten ●●○Agent festgefahren? So kommst du raus ●●○