Werkstatt · · 2 Min. Lesezeit
Gegenprobe: Tests prüfen, statt ihnen zu glauben
Grüne Tests beruhigen. Aber würden sie den Fehler überhaupt bemerken? Warum ich nach jedem Schritt absichtlich Fehler einbaue und was das mit KI-gestützter Entwicklung zu tun hat.
TestsArbeitsweiseKI
Wer Software zusammen mit einer KI entwickelt, bekommt schnell viel Code und viele Tests. Am Ende eines Schritts steht dann eine Zeile wie „412 Tests bestanden“. Das fühlt sich gut an. Die ehrliche Frage ist aber eine andere: Hätten diese Tests den Fehler bemerkt, den ich gerade befürchte?
Das Problem mit grünen Tests
Ein Test, der nie fehlschlägt, beweist wenig. Vielleicht prüft er das Falsche. Vielleicht prüft er gar nichts, weil eine Bedingung immer wahr ist. Vielleicht testet er eine Kopie der Logik statt der echten. Bei Code, den ein Mensch Zeile für Zeile schreibt, fällt so etwas oft beim Schreiben auf. Bei Code, der in großen Stücken entsteht, eher nicht.
Die Gegenprobe
Deshalb gehört zu jedem Schritt eine Gegenprobe: Nachdem alle Tests grün sind, baue ich absichtlich Fehler ein, genau dort, wo es wehtun würde.
- Eine Rechteprüfung, die plötzlich jeden durchlässt.
- Ein Betrag, der in Euro statt in Cent gerechnet wird.
- Ein Filter, der eine Bedingung vergisst.
Dann laufen die Tests noch einmal. Jeder eingebaute Fehler muss rot werden. Erst dann zählt die Prüfung. Im Bericht zum Schritt steht anschließend schlicht: „7 Eingriffe, alle erkannt“, oder eben, welcher nicht erkannt wurde und was ich daraufhin ergänzt habe.
Warum das mit KI besonders wichtig ist
Ein Sprachmodell schreibt Tests, die plausibel aussehen. Plausibel heißt aber nicht wirksam. Die Gegenprobe ist ein einfacher, mechanischer Weg, dieser Plausibilität nicht blind zu vertrauen. Sie kostet ein paar Minuten je Schritt und hat mir mehr als einmal gezeigt, dass eine Prüfung zwar lief, aber am Thema vorbeiging.
Eine Prüfung, die nichts findet, zählt erst, wenn feststeht, dass sie etwas hätte finden können.
Wie man klein anfängt
Man braucht dafür kein Werkzeug. Es reicht, sich bei jeder wichtigen Änderung zu fragen: Was wäre der schlimmste Fehler an dieser Stelle? Diesen Fehler kurz von Hand einbauen, Tests laufen lassen, wieder entfernen. Wer es systematischer mag, findet unter dem Stichwort Mutation Testing Werkzeuge, die das automatisch tun.
Der Aufwand ist klein, der Gewinn groß: Aus „die Tests sind grün“ wird „die Tests hätten es gemerkt“.