Tests mit KI schreiben: Unit-Tests schneller und gründlicher
Tests mit KI schreiben ist einer der dankbarsten Einsätze von Sprachmodellen in der Entwicklung: Die Arbeit ist oft mühsam, folgt klaren Mustern und lässt sich sofort überprüfen, denn ein Test läuft oder er läuft nicht. Gefährlich wird es nur, wenn Tests das Falsche prüfen und trotzdem grün sind.
Wofür KI beim Testen taugt
- Unit-Tests für bestehende Funktionen: Gerüst, Aufrufe, typische Eingaben.
- Randfälle finden: leere Listen, Nullwerte, Grenzwerte, Sonderzeichen, Zeitzonen, Schaltjahre.
- Testdaten erzeugen: realistische, aber erfundene Datensätze statt Kopien echter Kundendaten.
- Tests lesbar machen: sprechende Namen, Aufteilung zu großer Tests.
- Fehlende Abdeckung benennen: Welche Pfade einer Funktion sind ungetestet?
Ein Prompt, der funktioniert
Schreibe Unit-Tests mit <Test-Framework> für die folgende Funktion.
Halte dich an den Stil der Beispieltests unten.
Decke ab: Normalfall, Grenzwerte, ungültige Eingaben, Fehlerfälle.
Liste vor dem Code kurz auf, welche Fälle du testest und warum.
Erfinde keine Funktionen oder Module, die nicht im Code vorkommen.
<funktion> ... </funktion>
<beispieltests> ... </beispieltests>
Die Beispieltests sind entscheidend: Sie zeigen Framework, Benennung, Hilfsfunktionen und Aufbau. Ohne sie erzeugt das Modell Tests in einem Stil, der nicht zum Projekt passt. Weitere Vorlagen finden Sie unter Prompt-Vorlagen, Grundregeln unter Prompts für Code.
Die größte Falle: Tests, die den Fehler festschreiben
Lässt man die KI Tests für bestehenden Code schreiben, leitet sie das erwartete Verhalten oft aus dem Code selbst ab. Enthält der Code einen Fehler, prüft der Test genau diesen Fehler als richtig. Abhilfe:
- Das erwartete Verhalten aus der Anforderung beschreiben, nicht aus dem Code.
- Jeden erwarteten Wert selbst nachvollziehen.
- Gelegentlich einen Fehler absichtlich in den Code einbauen und prüfen, ob ein Test fehlschlägt.
Testgetrieben mit KI
Gut funktioniert auch der umgekehrte Weg: Sie beschreiben das gewünschte Verhalten, lassen zuerst Tests erzeugen, prüfen sie und lassen dann die Implementierung schreiben, bis alle Tests grün sind. Agenten mit Zugriff auf das Terminal können diese Schleife selbst durchlaufen: Code ändern, Tests ausführen, Fehler lesen, korrigieren. Welche Art von Assistent dafür geeignet ist, beschreibt KI-Code-Assistenten.
Testdaten ohne Datenschutzprobleme
Echte Kundendaten gehören weder in Tests noch in Prompts. Lassen Sie die KI stattdessen synthetische Datensätze erzeugen, die die Struktur echter Daten nachbilden: Namen, Adressen, IBAN-Formate mit erfundenen Werten, typische Fehleingaben. Wer doch mit echten Beispielen arbeitet, sollte sie vorher mit dem Werkzeug Anonymisieren bereinigen. Mehr zum Thema steht unter Synthetische Daten.
Achten Sie auch auf die Wartbarkeit: KI erzeugt gern viele ähnliche Tests mit kopiertem Aufbau. Parametrisierte Tests, bei denen dieselbe Prüfung mit einer Tabelle von Eingaben läuft, sind kürzer und leichter zu pflegen. Bitten Sie das Modell ausdrücklich darum.
Tests für KI-Funktionen selbst
Enthält Ihre Anwendung selbst Modellaufrufe, reichen klassische Unit-Tests nicht, weil Antworten schwanken. Dafür braucht es Testdatensätze mit Bewertungskriterien. Wie das geht, erklärt LLM-Anwendungen testen. Ergänzend kann KI auch im Review prüfen, ob zu neuem Code passende Tests fehlen; siehe Code-Review mit KI.
Erstellt mit Unterstützung von KI, geprüft und redaktionell verantwortet von Leon Blatz. Allgemeine Information, keine Rechts-, Steuer- oder Finanzberatung.