- 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
- Tests verpflichtend machen,
-
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?
- Beim Review folgende Punkte prüfen:
-
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
- Um das Übersehen von Bugs durch wachsende Review-Müdigkeit zu verhindern, wird der Einsatz eines KI-Code-Review-Tools (CodeRabbit) vorgeschlagen
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
5 Kommentare
1,7-mal klingt weniger, als ich erwartet hätte ...?
Ich hatte beim Programmieren mit AI ganz ähnliche Eindrücke. Wenn man sich die geordneten Ursachen ansieht, liegt es meiner Meinung nach wahrscheinlich daran, dass beim Codieren Dinge wie Muster, Benennungsregeln, die Behandlung von Edge Cases, Guard-Bedingungen usw., die Menschen auf Basis ihres Grundwissens voraussetzen, nicht ausreichend als Kontext mitgegeben werden.
Deshalb habe ich eine Regeldatei erstellt, in der genau solche Dinge gesammelt sind, und gebe beim Codieren die Anweisung, diese Datei unbedingt zu lesen und einzuhalten. Wenn man dann nur die Regeldatei verbessert, werden die Ergebnisse deutlich besser.
Ich habe ein bisschen Angst davor, dass jetzt die Meinung aufkommt: „Es wurde doch massenhaft mehr produziert — sind 1,7-mal so viele Bugs da nicht praktisch geschenkt?“...
Da muss ich an das Meme denken: „Aber es war doch schnell?" lol
Hacker-News-Kommentare
Ich denke, „Vibe Coding“ gab es schon vor AI
nullist, sondern einfach überallnull-Checks drangeklebt habennull-Checks verschluckt, sodass Fehler still untergingennull-Check kann später subtile Datenfehler verursachen, deren Ursache extrem schwer nachzuverfolgen istDie Kritik an Vibe Coding ist berechtigt, aber tatsächlich war die Codequalität auch schon vor AI miserabel
Die Aussage „AI-Code erzeugt 1,7-mal mehr Probleme“ bezieht sich nur auf die Zahl gefundener Bugs
Vor Kurzem hat Copilot mir in .NET eine IComparable-Implementierung vorgeschlagen und mir damit ein paar Minuten gespart
xundyvertauscht hatteSo eine Situation gab es früher schon einmal
Ich fand es interessant, dass ein LLM-basiertes Unternehmen behauptet, „AI sei weniger schlecht als gedacht“
Ich nutze CodeRabbit oft, aber es gibt immer noch viele False Positives
„1,7-mal mehr“ und „um das 1,7-Fache gestiegen“ sind nicht dasselbe
Agentic AI Coding ist nur ein Werkzeug; wenn man es falsch einsetzt, kommen natürlich auch falsche Ergebnisse heraus
justhtmlempfohlenDie Formulierung in der Überschrift des Artikels, „AI-Code erzeugt 1,7-mal mehr Probleme“, ist ungenau