- Die Analyse von 470 Open-Source-PRs zeigt, dass von KI geschriebener Code im Durchschnitt 1,7-mal mehr Probleme enthält als von Menschen geschriebener Code
- Wichtige Mängel wie Logikfehler, schlechtere Lesbarkeit und Sicherheitslücken traten in KI-Code deutlich häufiger auf; insbesondere Probleme bei der Lesbarkeit nahmen um mehr als das Dreifache zu
- In KI-Code traten fehlende Fehlerbehandlung, Nebenläufigkeitsfehler und inkonsistente Benennung häufig auf, was den Review-Aufwand und das Betriebsrisiko erhöht
- Als Ursachen werden mangelndes Verständnis der Business-Logik, Fokus auf oberflächliche Korrektheit und Bevorzugung ineffizienter Muster genannt
- Der Bericht betont die Notwendigkeit, Mechanismen zur Qualitätssicherung für KI-Code zu stärken und KI-bewusste Code-Review-, Sicherheits- und Testverfahren einzuführen
Überblick über den Bericht „AI vs Human Code Generation Report“
- CodeRabbit führte die Studie durch, um die Qualitätsunterschiede zwischen von KI und von Menschen geschriebenem Code empirisch zu analysieren
- Untersucht wurden 470 Open-Source-GitHub-PRs, davon 320 mit KI-Co-Autorschaft und 150 ausschließlich von Menschen verfasst
- Alle Ergebnisse wurden auf die Anzahl der Issues pro 100 PRs normalisiert, und die Häufigkeit der Problemtypen wurde per statistischem Verhältnisvergleich gemessen
- Das Ergebnis: KI steigert die Produktivität, erhöht aber zugleich die Fehlerquote
- Pro von KI erstelltem PR wurden im Durchschnitt 10,83 Probleme gefunden, bei von Menschen erstellten PRs 6,45
- Insbesondere Fehler mit hoher Schwere wurden in KI-Code häufiger entdeckt
Grenzen der Studie
- Da sich nicht direkt verifizieren ließ, ob ein PR mit KI erstellt wurde, wurden PRs mit dem Signal AI co-authored-by als KI-erstellt klassifiziert
- PRs ohne dieses Signal wurden als von Menschen erstellt betrachtet, eine vollständige Trennung war jedoch nicht möglich
- Trotz dieser Einschränkung zeigten sich statistisch signifikante Unterschiede in den Problemmustern zwischen den beiden Gruppen
- Die vollständige Methodik ist am Ende des Berichts offengelegt
Die 10 wichtigsten Erkenntnisse
- Nicht alle Fehlertypen kommen ausschließlich bei KI vor, aber in den meisten Kategorien ist die Fehlerquote von KI-Code höher
- Menschen und KI machen dieselben Arten von Fehlern, doch bei KI treten sie häufiger und in größerem Umfang auf
-
1. 1,7-mal mehr Issues insgesamt
- Im Durchschnitt 10,83 Issues pro von KI erstelltem PR gegenüber 6,45 bei menschlich erstellten PRs
- PRs mit stark konzentrierten Issues (Outlier) kommen bei KI-Code deutlich häufiger vor und erhöhen den Review-Aufwand
-
2. Mehr schwerwiegende Fehler
- Schwerwiegende und kritische Probleme traten 1,4- bis 1,7-mal häufiger auf
-
3. 75 % mehr Probleme bei Logik und Korrektheit
- Dazu zählen Fehler in der Business-Logik, falsche Abhängigkeiten, Mängel im Kontrollfluss und Konfigurationsfehler
- Die Behebung ist teuer und kann zu Betriebsstörungen führen
-
4. Mehr als dreimal so viele Lesbarkeitsprobleme
- Benennungsregeln, Code-Struktur und Konsistenz des Ausdrucks waren deutlich schwächer
- Auch wenn der Code auf den ersten Blick ordentlich aussieht, werden lokale Muster häufig verletzt
-
5. Doppelt so häufig fehlende Fehlerbehandlung und Ausnahmewege
null-Checks, Guard-Bedingungen und Exception-Handling-Logik fehlen häufig
- Ein Typ von Problem, der direkt zu Serviceausfällen führen kann
-
6. Sicherheitsprobleme bis zu 2,74-mal häufiger
- Typische Beispiele sind unsachgemäße Passwortverarbeitung und Schwachstellen bei Objektreferenzen
- Es handelt sich nicht um einzigartige Schwachstellen, aber die meisten Sicherheitsmängel werden verstärkt
-
7. Weniger Performance-Probleme, aber auf KI konzentriert
- Übermäßige I/O-Aufrufe traten etwa 8-mal häufiger auf
- KI bevorzugt auf Klarheit ausgerichteten Code, was die Effizienz senkt
-
8. Rund doppelt so viele Nebenläufigkeits- und Abhängigkeitsfehler
- Reihenfolgefehler, falsche Abhängigkeitsflüsse und Fehlgebrauch von Nebenläufigkeitskontrolle traten häufig auf
-
9. 2,66-mal mehr Formatierungsprobleme
- Formale Fehler wie Einrückung, Leerzeichen und Stilinkonsistenzen kamen häufig vor
- Selbst mit automatischen Formatierern und Lintern nimmt das Rauschen in KI-Code zu
-
10. Doppelt so viele Inkonsistenzen bei Benennungen
- Unklare Namen, inkonsistente Terminologie und generische Bezeichner erhöhen die kognitive Belastung der Reviewer
Ursachen der Probleme
- KI hat zu wenig Verständnis für die Business-Logik
- Sie generiert Code auf Basis statistischer Muster und übersieht dabei Systemregeln
- Generierung mit Fokus auf oberflächliche Korrektheit
- Der Code wirkt auf den ersten Blick korrekt, enthält aber Fehler beim Schutz des Kontrollflusses oder in der Reihenfolge von Abhängigkeiten
- Konventionen des jeweiligen Repositorys werden nicht eingehalten
- Benennungs-, Struktur- und Formatregeln werden in verallgemeinerter Form verfälscht
- Abgeschwächte Sicherheitsmuster
- Ohne explizite Anweisungen reproduziert die KI veraltete oder anfällige Code-Muster
- Einfachheit wird gegenüber Effizienz bevorzugt
- Tendenz zu wiederholtem I/O und nicht optimierten Strukturen
Maßnahmen für Engineering-Teams
- Die Einführung von KI erfordert nicht nur mehr Geschwindigkeit, sondern auch eine Neugestaltung der Qualitätssicherungssysteme
-
1. Der KI ausreichend Kontext geben
- Business-Regeln, Konfigurationsmuster und Architekturgrenzen müssen explizit gemacht werden, um Fehler zu verringern
- In den Prompts repositoriespezifische Richtlinien und Schemas aufnehmen
-
2. Richtlinienbasierten Code-Stil erzwingen
- Mit CI-Formatierern, Lintern und Styleguides Lesbarkeitsprobleme vorbeugen
-
3. Schutzmechanismen für Korrektheit ergänzen
- Tests verpflichtend machen,
null-/Typ-Prüfungen, Standardisierung der Ausnahmebehandlung und klare Guard-Bedingungen
-
4. Sichere Defaults stärken
- Zentralisierung von Credentials, direkte Passwortnutzung verhindern, automatische SAST- und Sicherheits-Linter ausführen
-
5. Effiziente Muster fördern
- Batch-Verarbeitung für I/O, geeignete Datenstrukturen wählen und Performance-Hinweise geben
-
6. KI-bewusste PR-Checklisten einführen
- Beim Review folgende Punkte prüfen:
- Sind Fehlerpfade abgedeckt?
- Ist die Nebenläufigkeitskontrolle korrekt?
- Werden Konfigurationswerte validiert?
- Wie werden Passwörter verarbeitet?
-
7. Automatisierte Reviews für KI-Code einführen
- Um das Übersehen von Bugs durch wachsende Review-Müdigkeit zu verhindern, wird der Einsatz eines KI-Code-Review-Tools (CodeRabbit) vorgeschlagen
- Standardisierung der Review-Qualität und Reduzierung von Prüfzeit und kognitiver Belastung
Fazit
- KI-Coding-Tools sind starke Beschleuniger, aber Beschleunigung ohne Schutzmechanismen ist riskant
- KI-generierter Code weist mehr Schwankungen, eine höhere Fehlerquote und höhere Schweregrade auf
- KI sollte nicht als Ersatz, sondern als ergänzendes Werkzeug genutzt werden, während Qualitäts-, Sicherheits- und Testsysteme gestärkt werden müssen
- Wer Geschwindigkeit und Qualität zugleich sichern will, braucht bewusstes Engineering-Management
- Der Einsatz von KI-Code-Review-Tools kann konkret helfen, die Qualität aufrechtzuerhalten
Noch keine Kommentare.