Testabdeckung bei KI-Code: warum die Prozentzahl trügt

Testabdeckung misst, welche Codezeilen bei einem Testlauf ausgeführt wurden — nicht, ob das Verhalten geprüft wurde. Bei KI-generierten Tests kommt ein Zirkelschluss hinzu: Das Modell leitet die erwarteten Werte aus dem Verhalten des Codes ab, den es prüfen soll. Enthält der Code einen Fehler, wird der Fehler zur Zusicherung. Der Test ist grün und schützt den Fehler.
Was sagt Testabdeckung aus — und was nicht?
Abdeckung ist eine Ausführungsstatistik. Sie beantwortet: Welche Zeilen, Verzweigungen oder Bedingungen wurden während des Testlaufs berührt? Sie beantwortet nicht: Wurde geprüft, ob dabei das Richtige herauskam.
Ein Test, der eine Funktion aufruft und keine einzige Zusicherung enthält, erzeugt volle Abdeckung für diese Funktion. Das ist kein konstruiertes Gegenbeispiel — es ist ein Muster, das entsteht, sobald eine Abdeckungsschwelle als Ziel gesetzt wird.
Warum sind KI-generierte Tests besonders trügerisch?
Weil sie aus dem Ist-Zustand abgeleitet werden statt aus einer Anforderung. Der übliche Ablauf lautet: Code existiert, Modell wird gebeten, Tests dafür zu schreiben, Modell liest den Code und erzeugt Zusicherungen, die dazu passen.
Das Ergebnis sieht aus wie eine Prüfung und ist eine Beschreibung. Rechnet der Code die Mehrwertsteuer falsch, erwartet der erzeugte Test den falschen Betrag. Er wird zuverlässig grün bleiben, auch wenn jemand später den Fehler korrigiert — dann schlägt er fehl und wird als kaputt betrachtet.
Diese Umkehrung erklärt einen Teil der Reibung, die Entwickler mit KI-Code berichten: In der Stack Overflow Developer Survey 2025 gaben 45 Prozent der Befragten an, erhebliche Zeit mit dem Debuggen von KI-generiertem Code zu verlieren. Ein Test, der den Fehler mitträgt, statt ihn zu melden, verlängert genau diese Suche.
Das ist die Umkehrung des eigentlichen Zwecks: Ein Test soll das gewünschte Verhalten festhalten, nicht das vorgefundene. Beim Absichern von Altcode ist das Festhalten des Ist-Zustands ausdrücklich gewollt — bei neuem Code ist es ein Fehler. Der Unterschied muss im Team bekannt sein, siehe Legacy Code mit KI modernisieren.
Welche Kennzahl sollte ich stattdessen verwenden?
Die Abdeckung der geänderten Zeilen, nicht die Gesamtabdeckung. Drei Gründe sprechen dafür.
- Sie ist steuerbar. Die Gesamtabdeckung eines gewachsenen Projekts bewegt sich kaum, egal was man tut — der Nenner ist zu groß. Die Abdeckung des Neuen reagiert sofort.
- Sie ist fair. Niemand wird für Altlasten verantwortlich gemacht, die er nicht verursacht hat.
- Sie wirkt kumulativ. Wenn jede Änderung gut abgedeckt ist, steigt der Gesamtwert von selbst — dort, wo tatsächlich gearbeitet wird.
Als Schwelle eignet sich: Die Abdeckung der geänderten Zeilen liegt nicht unter dem bestehenden Projektwert. Diese Regel braucht keine willkürliche Prozentzahl und verhindert Verschlechterung.
Wie prüfe ich, ob meine Tests überhaupt etwas taugen?
Mit Mutationstests — der einzigen verbreiteten Methode, die die Qualität der Tests selbst misst.
Das Verfahren ist einfach: Ein Werkzeug verändert den Produktivcode gezielt und minimal — dreht einen Vergleichsoperator um, ersetzt einen Rückgabewert, entfernt einen Aufruf — und lässt die Tests laufen. Bemerkt kein Test die Veränderung, hat die Testsuite an dieser Stelle eine Lücke, unabhängig davon, was die Abdeckung sagt.
Genau diese Prüfung entlarvt den Zirkelschluss oben: Ein Test, dessen Zusicherungen aus dem Code abgeleitet wurden, überlebt manche Mutation, weil er das Verhalten nicht wirklich festnagelt. Mutationstests sind rechenintensiv und gehören nicht in jeden Lauf — einmal pro Woche oder auf den kritischen Modulen reicht, um die Aussage zu bekommen.
Welche Tests braucht KI-generierter Code besonders?
Tests für die Fälle, die im Prompt nicht vorkamen — dort sitzen die belegten Lücken.
- Fehlerfälle. Fehlende Eingabe, falscher Typ, leere Liste, Zeitüberschreitung des fremden Dienstes. Falsch behandelte Ausnahmen sind seit 2025 eine eigene OWASP-Kategorie (A10).
- Berechtigungen. Ein Test, der prüft, dass ein fremder Nutzer nicht darf. Fehlerhafte Zugriffskontrolle steht in den OWASP Top 10:2025 auf Platz eins — und diese Prüfung fehlt in generiertem Code am häufigsten.
- Grenzen. Null, eins, das Maximum, eins darüber.
- Gleichzeitigkeit. Zwei Vorgänge auf demselben Datensatz. Im Prototyp nie aufgetreten, im Betrieb am ersten Tag.
Diese vier Gruppen kann eine KI übrigens gut schreiben, sobald man sie ausdrücklich danach fragt. Der Punkt ist, dass sie von selbst nicht danach fragt.
Häufige Fragen zur Testabdeckung
Welche Testabdeckung ist ausreichend?
Eine allgemeingültige Zahl gibt es nicht, und jede genannte Prozentzahl ist Konvention, keine Norm. Belastbar ist die relative Regel: Neuer Code liegt nicht unter dem bestehenden Projektwert.
Soll ich Tests von einer KI schreiben lassen?
Ja, aber mit umgekehrter Reihenfolge: Beschreiben Sie zuerst das gewünschte Verhalten in Prosa und lassen Sie daraus Tests erzeugen — nicht aus dem fertigen Code. So entsteht eine Prüfung statt einer Beschreibung.
Was ist der Unterschied zwischen Zeilen- und Verzweigungsabdeckung?
Zeilenabdeckung zählt ausgeführte Zeilen, Verzweigungsabdeckung zählt durchlaufene Verzweigungspfade. Eine Bedingung mit zwei Zweigen erreicht volle Zeilenabdeckung, wenn nur einer der beiden Pfade getestet wurde. Verzweigungsabdeckung ist die aussagekräftigere Zahl.
Lohnen sich End-to-End-Tests bei KI-Code?
Für die Hauptpfade ja, weil sie das Zusammenspiel prüfen — und genau dort liegen die Fehler bei generiertem Code häufiger als in einzelnen Funktionen. Als Breitenabdeckung sind sie zu langsam und zu störanfällig.
Ein grüner Testlauf ist erst dann ein Nachweis, wenn er nicht nur behauptet wird. Code Guardian verlangt zum Abschluss jeder Änderung die Ausgabe der Prüfung — und lässt eine Änderung ohne Tests gar nicht erst durch.
Quellen
- OWASP Top 10:2025, Kategorien A01 „Broken Access Control" und A10 „Mishandling of Exceptional Conditions".
- Stack Overflow Developer Survey 2025 (45 Prozent der Befragten verlieren erhebliche Zeit beim Debuggen von KI-Code).
Stand: 27. Juli 2026. Allgemeine fachliche Einordnung.
Beitrag teilen
Bleiben Sie auf dem Laufenden
Erhalten Sie die neuesten Artikel, Insights und Branchen-Updates direkt in Ihr Postfach.
Ähnliche Beiträge
Weitere Artikel, die Sie interessieren könnten.
Wer haftet für KI-generierten Code? Was sich 2026 ändert
Software ist ab Dezember 2026 ausdrücklich ein Produkt im Sinne der Produkthaftung. Was das für Entwickler, Agenturen und Auftraggeber bedeutet.
Definition of Done für KI-Code: Belege statt Zusagen
Wenn Code in Minuten entsteht, verschiebt sich der Engpass auf die Frage, wann etwas fertig ist. Eine Definition of Done, die diesem Tempo standhält.
Code Audit: Checkliste für die Prüfung fremder Software
Vor der Übernahme, vor dem Kauf, nach einem Vorfall: Was ein Code Audit prüft, in welcher Reihenfolge und woran man ein oberflächliches erkennt.
Bereit für Ihr KI-Kompetenz-Zertifikat?
Sichern Sie sich Ihr KI-Zertifikat – flexibel, online und mit dokumentiertem Teilnahmenachweis für den Aufbau von KI-Kompetenz (Art. 4 EU AI Act).