
KI-generierten Code richtig reviewen: Andere Maßstäbe, andere Risiken
KI-generierter Code besteht Syntax-Checks, kompiliert und sieht oft sauber aus. Genau die Eigenschaften, die ihn leicht akzeptierbar machen, sind dieselben, die seine häufigsten Fehlerquellen verbergen. Das Problem liegt nicht im offensichtlichen Fehler, sondern im plausibler Weise korrekten Code, der unter bestimmten Bedingungen falsch ist.
Wie KI-generierter Code scheitert
KI-Modelle optimieren für den Happy Path. Was dabei entsteht, ist Code, der in gängigen Szenarien funktioniert, aber in Randfällen versagt:
- Plausible, aber falsche Logik in Edge Cases: Berechnungen, Vergleiche und Zustandsmaschinen sehen korrekt aus, treffen aber falsche Annahmen über Eingaben außerhalb des Normalfalls.
- Sicherheitslücken in Authentifizierungs- und Autorisierungsmustern: KI-Modelle reproduzieren häufig veraltete oder vereinfachte Muster aus öffentlichem Trainingsdaten.
- Fehlendes Error Handling: Weil das Modell auf den Erfolgsfall trainiert ist, fehlen Behandlungsroutinen für Netzwerkfehler, Timeouts und inkonsistente Zustände.
- Subtile Datentypfehler: Fehler, die erst unter Produktionslast sichtbar werden, zum Beispiel Integer-Überläufe oder implizite Typkonvertierungen.
- Veraltete Muster aus Trainingsdaten: Deprecated APIs, veraltete Bibliotheksversionen oder Muster, die seit Jahren nicht mehr empfohlen werden.
Ein anderer Review-Fokus
Die zentrale Frage im Review von KI-generiertem Code lautet nicht: "Sieht das korrekt aus?", sondern: "Welche Annahmen macht dieser Code?"
// KI-generierte Funktion: wirkt korrekt, ist es aber nicht
async function getUserBalance(userId: string): Promise<number> {
const user = await db.users.findOne({ id: userId });
return user.account.balance; // Fehler: kein null-check, kein Fehlerhandling
}
// Korrekte Version
async function getUserBalance(userId: string): Promise<number> {
const user = await db.users.findOne({ id: userId });
if (!user || !user.account) {
throw new Error(`User or account not found: ${userId}`);
}
return user.account.balance;
}
Konkrete Anpassungen für den Review-Prozess:
- Error-Handling-Pfade immer prüfen: Jede Funktion, die etwas zurückgibt, kann auch scheitern. Ist das abgebildet?
- Domain-Fit verifizieren: KI generiert generische Lösungen. Passt der Code zum tatsächlichen fachlichen Kontext des Systems?
- Vertrauen umkehren: Je spezifischer die fachliche Anforderung, desto kritischer sollte der Review sein. Konfidenz im Output ist kein Qualitätssignal.
- Keine beschleunigten Approvals: KI-generierter Code braucht mindestens denselben Review-Aufwand wie Code von erfahrenen Entwicklern.
Warum das wichtig ist
Der Review-Standard für KI-generierten Code muss höher sein als für Senior-Developer-Output, nicht niedriger. Teams, die ihre Standards absenken, weil "die KI es geschrieben hat", akkumulieren versteckte technische Schulden schneller als durch jede andere Ursache. Die Geschwindigkeit, die KI-Tools versprechen, wird durch nachlässiges Review nicht eingelöst, sondern verpfändet. Ein strukturierter Umgang mit KI-generierten Beiträgen, einschließlich klarer Review-Checklisten und Verantwortlichkeiten, ist Teil eines AI Enablement-Programms, das Teams nachhaltig befähigt.