KI Klartext

Prompts wie Code testen: damit eine Änderung nicht heimlich alles verschlechtert

Warum du Prompts wie Code testest, nicht auf Textgleichheit, sondern auf Eigenschaften — damit ein Tweak oder Modellwechsel nicht heimlich anderes bricht.

Du änderst einen Prompt, um einen Fall zu reparieren, der dich gestört hat. Er ist jetzt behoben. Was du nicht siehst: Drei andere Fälle, die vorher liefen, sind durch dieselbe Änderung kaputtgegangen. Du merkst es nicht beim Testen des einen Falls, du merkst es Wochen später — von einem Kunden, nicht von dir.

Das ist der Normalzustand, solange Prompts wie Zettel behandelt werden, an denen man mal eben dreht. Dabei sind sie Code. Sie steuern Verhalten, sie haben Randfälle, sie brechen bei Änderungen. Und Code, der etwas wert ist, wird getestet. Diese Seite zeigt, wie man das auf Prompts überträgt — was dabei anders ist als bei normalem Code, und warum die naheliegende Methode nicht funktioniert.

einen fixen
einen Fall reparieren und dabei drei andere brechen — ohne es zu merken
Eigenschaften
du testest nicht den genauen Text, sondern was über ihn gelten muss
Modellwechsel
ein »besseres« Modell ist auf deinen Fällen oft eine stille Verschlechterung

Du testest nicht den Text, sondern Eigenschaften

Der erste Reflex ist, die Ausgabe mit einer erwarteten Ausgabe zu vergleichen. Das funktioniert bei Prompts nicht. Ein Modell formuliert denselben Inhalt jedes Mal anders, also schlägt ein Vergleich auf Textgleichheit ständig fehl, ohne dass etwas falsch wäre. Das ist der Fehler, an dem die meisten zuerst scheitern.

Stattdessen testest du Eigenschaften — was über die Ausgabe gelten muss, egal wie sie formuliert ist. Strukturelles: Ist es gültiges JSON, passt es zum Schema? Enthalten oder nicht: Kommt die geforderte Angabe vor, fehlt jedes verbotene Wort und jede personenbezogene Information? Grenzen: Länge, Format, erlaubte Werte. Und inhaltlich: Stimmt die Aussage — das beurteilt ein bewerteter Modell-Richter gegen eine Vorgabe, wie bei der Bewertung eines Archivs. Harte Eigenschaften prüfst du im Code, weiche über den Richter.

Jeder Produktionsfehler wird ein Test

Woher die Testfälle kommen, entscheidet, ob die Tests etwas taugen. Drei Quellen: repräsentative echte Eingaben, die Randfälle und Angriffsversuche, die gern übersehen werden — und vor allem jeder Fehler, der dir je in Produktion begegnet ist.

Das ist das eigentliche Regressions-Prinzip: Was einmal kaputt war, wird ein Testfall, damit es nie wieder unbemerkt kaputtgeht. Mit der Zeit wächst daraus ein Netz, das genau deine wunden Punkte abdeckt — nicht irgendeinen allgemeinen Maßstab, sondern die Fälle, die bei dir wirklich vorkommen.

Wie ich das angehe

1
Fälle sammeln

Echte Eingaben, plus jeder Fehler, der dir je begegnet ist, plus Randfälle und Angriffsversuche. Die Sammlung ist die Messlatte.

2
Je Fall festlegen, was gelten muss

Pro Fall notieren: welche Struktur, was muss enthalten sein, was darf nicht vorkommen, und stimmt der Inhalt. Das ist die Erwartung, gegen die geprüft wird.

3
Struktur im Code, Bedeutung per Richter

Die harten Eigenschaften prüft Code zuverlässig. Die weichen — ist die Antwort sinnvoll — beurteilt ein bewerteter Modell-Richter.

4
Bei jeder Änderung laufen lassen
Prompt, Modell, Parameter

Jeder Prompt-Tweak, jeder Modellwechsel, jede Parameteränderung löst den Testlauf aus. Nicht einmal am Anfang, sondern jedes Mal.

5
Die Änderung an der Bestehensquote messen

Sinkt die Quote gegenüber vorher, geht die Änderung nicht raus — egal wie gut sie sich anfühlt.

Das Modell ist nicht deterministisch

Ein Punkt, der normales Testen auf den Kopf stellt: Derselbe Prompt liefert nicht jedes Mal dieselbe Ausgabe. Ein einzelner Durchlauf ist deshalb kein Test — er kann zufällig durchgehen oder zufällig scheitern.

Die Antwort darauf ist, einen Fall mehrfach laufen zu lassen und nicht auf ein einzelnes Bestehen zu setzen, sondern auf eine Bestehensquote: Wie oft von zehn Versuchen hält die Eigenschaft? Du arbeitest mit Schwellen, nicht mit einem harten Ja oder Nein aus einem Schuss. Wer den Nicht-Determinismus ignoriert, baut Tests, die selbst zufällig sind.

Wo es in der Praxis kippt

Die Textgleichheits-Falle. Auf den genauen Wortlaut zu testen scheitert ständig grundlos. Eigenschaften prüfen, nicht Strings.

Der fehlbare Richter. Der Modell-Richter für die inhaltliche Prüfung irrt selbst. Wie bei der Archiv-Bewertung gehört er gegen menschliche Stichproben kalibriert, sonst wäscht er deine Annahmen sauber.

Der stille Modellwechsel. Ein neues, „besseres” Modell ist im Schnitt besser und auf deinen konkreten Fällen manchmal schlechter. Ohne Testlauf vor dem Wechsel merkst du die Regression erst beim Kunden.

Die Kosten des Laufens. Ein großer Testsatz bei jeder Änderung kostet Tokens und Zeit. Ein schneller Kern für jede Änderung, der volle Satz seltener — sonst testest du irgendwann gar nicht mehr.

Tests veralten. Ändert sich die Aufgabe, veralten die Fälle. Die Sammlung gehört gepflegt, sonst misst du gegen Gestern.

Was es kostet — und woran

Wie bei den strukturierten Ausgaben ist der Preis vor allem Disziplin, dazu etwas Rechenzeit fürs Laufen der Tests. Der Aufbau lohnt sich nicht ab dem ersten Prompt, aber sehr schnell ab dem Moment, in dem mehrere Leute oder mehrere Fälle an einem Prompt hängen. Spätestens vor jedem Modellwechsel zahlt er sich aus.

Der unsichtbare Gewinn ist der, den man nie sieht: die Verschlechterung, die nicht in Produktion gelangt ist, weil ein Test sie vorher gefangen hat. Wer ohne solche Tests an Prompts schraubt, spielt Schlag-die-Maus — und merkt die Treffer immer zuletzt.

Wie ein ehrlicher Einstieg aussieht

Sammle zehn bis zwanzig deiner wichtigsten echten Eingaben und jeden Fehler, der dir bisher untergekommen ist. Schreib zu jedem auf, was gelten muss. Lass sie einmal laufen, mach dann deine nächste Prompt-Änderung, und lass sie erneut laufen. Mit hoher Wahrscheinlichkeit siehst du beim ersten Mal eine Regression, die du sonst übersehen hättest. Genau dieser Moment überzeugt mehr als jedes Argument.

Worauf du achtest, wenn dir das jemand baut

  • Wird auf Eigenschaften geprüft, nicht auf Textgleichheit? Letzteres ist das Warnsignal, dass jemand LLMs wie normale Funktionen behandelt.
  • Werden echte Fehler zu Testfällen, oder bleibt es bei Schönwetter-Beispielen?
  • Läuft der Test auch bei einem Modellwechsel, nicht nur bei Prompt-Änderungen?
  • Wird der Nicht-Determinismus über eine Bestehensquote behandelt, statt über einen einzelnen Lauf?
  • Ist der Richter kalibriert, und ist der Testsatz gepflegt?
Zum Mitnehmen

Die inhaltliche Prüfung kannst du sofort mit einem Richter-Prompt anlegen. Dieser nimmt eine Ausgabe und deine Anforderungen und urteilt streng:

Du prüfst, ob die Ausgabe eines anderen KI-Schritts bestimmte Eigenschaften erfüllt.
Ich gebe dir: die EINGABE, die AUSGABE und eine Liste von ANFORDERUNGEN.

Prüfe jede Anforderung einzeln und urteile streng:
- Muss-enthalten: ist es vorhanden?
- Darf-nicht-enthalten (verbotene Wörter, erfundene Angaben, personenbezogene Daten): verletzt?
- Form / Länge / erlaubte Werte: eingehalten?
- Inhaltlich korrekt (gegen die Eingabe oder eine Referenz): ja / teilweise / nein?

Urteile nur anhand des Gegebenen, nicht aus eigenem Wissen.
Gib je Anforderung aus: erfüllt / verletzt + kurze Begründung. Am Ende: BESTANDEN, wenn ALLE
Muss-Anforderungen erfüllt und KEIN Verbot verletzt ist, sonst DURCHGEFALLEN.

Du schraubst an einem Prompt und weißt nie, ob du woanders etwas kaputt machst? Dann reden wir über die zehn Eingaben, die bei dir am wichtigsten sind — daraus wird ein erster Testsatz, der dir vor dem Ausrollen sagt, ob eine Änderung trägt oder heimlich schadet.