Skip to content

Mit KI aus einem Supportfall einen Regressionstest erstellen

Ein Supportticket beschreibt selten präzise genug, was ein automatisierter Test prüfen soll. Mit einem klar begrenzten KI-Workflow übersetzt du die Meldung zuerst in überprüfbares Verhalten und erst danach in Testcode. So entsteht ein Regressionstest, der vor der Fehlerbehebung aus dem richtigen Grund scheitert.

Moritz Klaßen

Moritz Klaßen

Entwickler & Gründer von Klassen AI

8 Min. Lesezeit

Die verbreitete Annahme lautet: Bei einem gemeldeten Fehler sollte die KI möglichst schnell den passenden Fix schreiben. Das überspringt den wichtigsten Schritt. Solange der Fehler nicht als kontrolliert fehlschlagender Test beschrieben ist, optimiert das Modell womöglich gegen eine Vermutung statt gegen das beobachtete Verhalten.

Ein sinnvoller Einsatz beginnt deshalb eine Stufe früher. Du nutzt die KI, um aus einem Supportfall einen Regressionstest zu entwickeln. Dieser Test bildet das erwartete Verhalten ab, scheitert vor der Korrektur und verhindert später, dass derselbe Fehler unbemerkt zurückkehrt.

Aus einer Fehlermeldung muss zuerst ein prüfbarer Fall werden

Supportmeldungen entstehen aus Sicht der betroffenen Person. Formulierungen wie „Die Auswahl ist plötzlich weg“ oder „Das Formular funktioniert manchmal nicht“ sind nachvollziehbar, liefern aber noch keine verlässliche Grundlage für Testcode.

Als Beispiel dient ein Anfrageformular für mehrere Leistungen. Nach einer Validierungsfehlermeldung wird das Formular erneut angezeigt. Die zuvor ausgewählte Leistung ist anschließend nicht mehr markiert. Ein zweiter Versand enthält deshalb möglicherweise eine andere oder gar keine Auswahl.

Bevor du Quellcode an ein KI-Modell übergibst, zerlegst du den Fall in fünf Bestandteile:

  • Ausgangszustand: Das Formular ist geöffnet und eine Leistung wurde ausgewählt.
  • Auslösende Aktion: Das Formular wird mit einem ungültigen Pflichtfeld abgeschickt.
  • Beobachtetes Verhalten: Die Anwendung zeigt einen Validierungsfehler und setzt die Leistungsauswahl zurück.
  • Erwartetes Verhalten: Die Anwendung zeigt den Fehler, behält aber die zuvor ausgewählte Leistung bei.
  • Erfolgskriterium: Nach der fehlgeschlagenen Validierung ist exakt dieselbe Auswahl weiterhin aktiv.

Diese Übersetzung ist keine Formalität. Sie verhindert, dass die KI selbst erraten muss, welches Verhalten fachlich korrekt ist. Das Modell kann Testcode erzeugen. Die Entscheidung über das gewünschte Produktverhalten bleibt bei dir.

Stelle ein kleines Kontextpaket zusammen

Für einen ausführbaren Test benötigt die KI mehr als das Supportticket, aber selten das gesamte Repository. Ein begrenztes Kontextpaket ist leichter zu prüfen und reduziert das Risiko, irrelevante oder vertrauliche Informationen weiterzugeben.

Das Paket sollte enthalten:

  • die präzisierte Fehlerbeschreibung mit Ausgangszustand, Aktion und Erwartung,
  • das verwendete Framework und Testwerkzeug,
  • die betroffene Route, Komponente oder Formular-Klasse,
  • relevante Validierungsregeln und Feldnamen,
  • einen vorhandenen, funktionierenden Test aus demselben Projekt als Stilvorlage,
  • benötigte Fixtures, Factories oder Testdaten, sofern sie bereits existieren.

Entferne Zugangsdaten, personenbezogene Inhalte, echte Kundendaten und interne Informationen, die für den Test keine Rolle spielen. Falls du unsicher bist, welche Ausschnitte in einen Prompt gehören, hilft die Anleitung zu Projektdaten in KI-Prompts bei der Abgrenzung.

Ein vorhandener Test ist besonders wertvoll. Er zeigt der KI, wie dein Projekt Benutzer anlegt, Formulare aufruft, Übersetzungen behandelt und Assertions formuliert. Ohne diese Vorlage produziert sie häufig plausiblen Testcode für ein Projekt, das deinem nur entfernt ähnelt. Literarisch ordentlich, technisch erfunden.

Lass zunächst einen Testplan statt Testcode erzeugen

Fordere im ersten Durchlauf keinen fertigen Code an. Bitte die KI stattdessen, den beschriebenen Fehler in einen Testplan zu übersetzen. So erkennst du falsche Annahmen, bevor sie zwischen Imports, Selektoren und Hilfsmethoden verschwinden.

Arbeitsauftrag an die KI: Beschreibe einen automatisierten Regressionstest für den geschilderten Supportfall. Nenne Vorbedingungen, Benutzeraktionen, erwartete Ergebnisse und die geeignete Testebene. Erfinde keine nicht genannten Feldnamen, Routen oder Hilfsmethoden. Markiere fehlende Informationen ausdrücklich.

Die Antwort sollte mindestens klären, welcher Zustand aufgebaut werden muss, welche Aktion den Fehler auslöst und welche konkrete Assertion den Fehler sichtbar macht. Eine Assertion ist die prüfbare Erwartung innerhalb eines Tests, beispielsweise dass ein bestimmtes Auswahlfeld nach der Validierung weiterhin aktiv ist.

Wenn die KI an dieser Stelle zusätzliche Produktregeln erfindet, korrigierst du den Testplan. Erst wenn die fachliche Beschreibung stimmt, lohnt sich die Erzeugung von Code.

Wähle die Testebene nach dem beobachteten Verhalten

Nicht jeder Supportfehler braucht einen vollständigen Browser-Test. Entscheidend ist, auf welcher Ebene sich das beobachtete Verhalten zuverlässig reproduzieren lässt.

  • Unit-Test: Geeignet, wenn eine einzelne Funktion oder Klasse eine klar abgegrenzte Regel falsch anwendet.
  • Integrations- oder Feature-Test: Sinnvoll, wenn Routing, Validierung, Sitzung und serverseitige Verarbeitung zusammenspielen.
  • Browser- oder End-to-End-Test: Erforderlich, wenn der Fehler von JavaScript, tatsächlicher Formularinteraktion oder dem Zustand der Benutzeroberfläche abhängt.

Im Beispiel kann ein serverseitiger Feature-Test genügen, falls das Framework Formulardaten nach einer Validierungsfehlerantwort in der Sitzung ablegt und diese Daten direkt geprüft werden können. Wird die Auswahl jedoch durch clientseitiges JavaScript wiederhergestellt, muss der Test die Benutzeroberfläche im Browser ausführen.

Wähle die schlankste Ebene, die den Fehler tatsächlich erfasst. Ein Unit-Test ist wertlos, wenn der Defekt erst beim Zusammenspiel mehrerer Komponenten entsteht. Ein Browser-Test ist unnötig teuer, wenn eine einzelne Validierungsregel die Ursache vollständig abbildet.

Erzeuge ausschließlich den fehlschlagenden Test

Nach der Freigabe des Testplans erhält die KI den zweiten Auftrag. Trenne ihn bewusst von der Fehlerbehebung.

Arbeitsauftrag an die KI: Erzeuge auf Grundlage des bestätigten Testplans einen einzelnen Regressionstest. Orientiere dich an der beigefügten Testdatei und verwende nur vorhandene Routen, Factories, Selektoren und Hilfsmethoden. Ändere keinen Produktivcode und schlage noch keine Fehlerbehebung vor. Kennzeichne Annahmen, die sich aus dem bereitgestellten Kontext nicht belegen lassen.

Die Einschränkung auf einen Test hält die Änderung überschaubar. Außerdem kannst du eindeutig prüfen, ob der Test den Supportfall abbildet. Liefert die KI nebenbei eine neue Abstraktionsschicht, drei Hilfsklassen und eine kosmetische Umbenennung, ist der Auftrag aus dem Ruder gelaufen.

Übernimm den erzeugten Code nicht ungeprüft. Kontrolliere insbesondere:

  • Existieren alle verwendeten Klassen, Methoden, Routen und Selektoren?
  • Verwendet der Test dieselben Konventionen wie die vorhandene Testsuite?
  • Erzeugt der Aufbau nur die Daten, die der Fall wirklich benötigt?
  • Prüft die Assertion das erwartete Verhalten oder lediglich eine technische Nebenwirkung?
  • Hängt der Test unnötig von Uhrzeit, Reihenfolge, Netzwerkzugriffen oder zufälligen Daten ab?

Prüfe, ob der Test aus dem richtigen Grund rot wird

Ein roter Test ist noch kein brauchbarer Regressionstest. Er kann auch wegen eines Tippfehlers, einer nicht vorhandenen Factory oder einer falsch eingerichteten Testumgebung scheitern.

Führe den neuen Test deshalb gegen den unveränderten fehlerhaften Stand aus und ordne das Ergebnis ein:

  • Der Test ist grün: Er bildet den gemeldeten Fehler nicht ab, die Annahme über den Fehler stimmt nicht oder der Fehler tritt unter den Testbedingungen nicht auf.
  • Der Test bricht beim Aufbau ab: Der erzeugte Code passt nicht zu deinem Projekt. Korrigiere zuerst Testdaten, Imports oder Hilfsmethoden.
  • Der Test scheitert an einer anderen Assertion: Der Ablauf erreicht den relevanten Zustand noch nicht zuverlässig.
  • Der Test scheitert an der erwarteten Assertion: Der Supportfall ist reproduziert und du hast eine belastbare Grundlage für die Korrektur.

Im Formularbeispiel sollte der Test nicht bloß feststellen, dass die Antwort einen Validierungsfehler enthält. Das war bereits bekannt. Er muss zusätzlich daran scheitern, dass die zuvor gewählte Leistung nach der Antwort nicht mehr ausgewählt ist.

Prüfe außerdem, ob der Test ohne den entscheidenden Auslöser grün bleibt. Wenn du im Beispiel gültige Formulardaten sendest, sollte die Assertion für die Wiederherstellung nach einem Validierungsfehler gar nicht relevant sein. Solche Kontrollläufe helfen, einen zufällig roten Test von einer gezielten Reproduktion zu unterscheiden.

Behebe den Fehler erst nach der Reproduktion

Nun kannst du die KI um mögliche Ursachen und eine minimale Korrektur bitten. Gib ihr dafür den fehlschlagenden Test, die genaue Fehlermeldung und den unmittelbar betroffenen Produktivcode. Der Auftrag sollte eine kleine Änderung verlangen, die den Test grün macht, ohne angrenzendes Verhalten umzubauen.

Behandle den Vorschlag als Hypothese. Prüfe, ob die Änderung fachlich zum gewünschten Verhalten passt und keine Schutzmechanismen umgeht. Die Checkliste für generierten Code hilft dir dabei, unter anderem Seiteneffekte, Fehlerbehandlung und Wartbarkeit zu kontrollieren.

Nach der Korrektur führst du zuerst den neuen Regressionstest aus. Danach folgen die angrenzenden Tests für das Formular, die Validierung oder die betroffene Komponente. Eine grüne Einzelprüfung belegt nur, dass dieser eine Fall funktioniert. Sie sagt noch nichts darüber aus, ob die Korrektur benachbarte Abläufe beschädigt.

Dokumentiere die Verbindung zum Supportfall

Der fertige Test sollte auch Monate später erkennen lassen, welches Verhalten er schützt. Ein präziser Testname ist hilfreicher als ein Kommentar mit der kompletten Geschichte des Tickets. Gut wäre beispielsweise eine Formulierung wie „behält die gewählte Leistung nach einem Validierungsfehler bei“.

Im Pull Request gehören Supportfall, reproduzierter Fehler, neue Assertion und gewählte Korrektur zusammen. Dadurch kann eine prüfende Person nachvollziehen, ob Test und Änderung dieselbe fachliche Frage beantworten. Für die weitere Übergabe findest du einen passenden Ablauf im Artikel über KI-generierten Code im Pull Request.

Bewahre Test und Korrektur nach Möglichkeit als klar erkennbare Änderungen auf. Sie dürfen im selben Pull Request liegen, sollten sich im Diff aber getrennt beurteilen lassen. Sonst ist schwer festzustellen, ob der Test auch ohne die Korrektur tatsächlich gescheitert wäre.

Erkenne Fälle, in denen der Ablauf nicht ausreicht

Der hier beschriebene Ablauf setzt voraus, dass du den gemeldeten Fehler reproduzierbar beschreiben kannst. Bei sporadischen Problemen fehlen häufig noch Protokolle, Zeitpunkte oder konkrete Eingaben. Dann wäre generierter Testcode lediglich eine ausführbare Vermutung.

Besondere Vorsicht ist in folgenden Situationen nötig:

  • Der erwartete Sollzustand ist fachlich noch nicht entschieden.
  • Der Fehler hängt von parallelen Anfragen oder zeitkritischen Abläufen ab, die der vorgeschlagene Test nicht realistisch simuliert.
  • Ein externer Dienst verursacht das Verhalten und lässt sich in der Testumgebung nicht kontrolliert ersetzen.
  • Der Fall betrifft eine mögliche Sicherheitslücke oder sensible Produktionsdaten und erfordert zunächst einen geregelten Incident-Prozess.

In solchen Fällen beginnt die Arbeit mit weiterer Beobachtung und Eingrenzung. Die KI kann mögliche Prüfpfade formulieren, aber fehlende Belege nicht ersetzen.

Ein guter KI-Test beginnt vor dem Code

Die nützlichste Rolle der KI im Supportfall ist nicht der schnelle Reparaturversuch. Sie hilft dir dabei, eine ungenaue Meldung in Vorbedingungen, Aktionen und überprüfbare Erwartungen zu übersetzen. Danach kann sie passenden Testcode auf Grundlage deiner tatsächlichen Projektkonventionen erzeugen.

Der entscheidende Kontrollpunkt bleibt der Lauf gegen den unveränderten Fehlerstand. Erst wenn der Test an der beabsichtigten Assertion scheitert, hast du den Supportfall technisch erfasst. Der anschließende Fix wird dadurch kleiner, besser prüfbar und dauerhaft durch einen Regressionstest abgesichert.

Häufige Fragen

Kurz beantwortet, damit du schneller einschätzen kannst, was für dein Projekt wichtig ist.

Kann eine KI aus einem Supportticket direkt einen Regressionstest erstellen?

Nur wenn das Ticket bereits klare Vorbedingungen, Schritte und ein erwartetes Ergebnis enthält. Bei ungenauen Meldungen solltest du mit der KI zuerst einen Testplan erstellen und offene Annahmen klären.

Muss ein neuer Regressionstest vor der Fehlerbehebung scheitern?

Ja. Der Test sollte gegen den unveränderten Stand an genau der Assertion scheitern, die das falsche Verhalten abbildet. Ein Fehler beim Testaufbau oder an einer unbeteiligten Stelle reicht nicht aus.

Welche Testebene eignet sich für einen Supportfehler?

Nutze die schlankste Testebene, die das beobachtete Verhalten zuverlässig erfasst. Für isolierte Regeln genügt oft ein Unit-Test, für das Zusammenspiel mehrerer Komponenten ein Integrationstest und für JavaScript- oder Darstellungsfehler ein Browser-Test.

Wie viele Projektdaten sollte ich der KI für den Test geben?

Übermittle nur den beschriebenen Fehler, relevante Codeausschnitte, verwendete Testwerkzeuge und eine passende Testdatei als Vorlage. Zugangsdaten, personenbezogene Informationen und echte Produktionsdaten gehören nicht in den Prompt.