Beim Testen von Chatbots geht es um die Validierung von KI-gesteuerten Chat-Systemen, die über eine einfache Pass/Fail-Logik hinausgehen und die Genauigkeit der Antworten, die Korrektheit des Abrufs, die Kontrolle von Halluzinationen und die Beibehaltung des Kontexts über mehrere Gesprächsrunden hinweg umfassen. Da ein und dieselbe Eingabe viele gültige Ausgaben erzeugen kann, müssen Tester die gesamte Pipeline des RAG-Systems inspizieren, einschließlich der Chunks, Vektoreinbettungen, Prompts und Fallback-Logik und nicht nur die endgültige Antwort.
Das Wichtigste in Kürze
- Chatbot-Fehler sind im herkömmlichen Sinne unsichtbar, weil sie nicht nur im Code, sondern auch in den Prompts, der Abfragelogik und der Antwortgenerierung stecken, was einen völlig anderen Ansatz für das Debugging erfordert.
- Das bedeutet, dass es für dieselbe Eingabe mehrere gültige Ausgaben gibt, was das klassische Pass/Fail-Modell durchbricht und eine breitere Definition dessen erfordert, was als korrektes Testergebnis gilt.
- Die Verfolgbarkeit beim Testen von Chatbots muss Chunks, Abfrageergebnisse und Abfragen umfassen, nicht nur die endgültige Antwort, denn ohne dieses vollständige Protokoll ist eine Grundursachenanalyse einer falschen Antwort fast unmöglich.
- Das CHAT-Framework strukturiert das Testen von Chatbots nach vier Gesichtspunkten: Beibehaltung des Kontexts, Kontrolle der Halluzinationen, Genauigkeit und Relevanz sowie ein Test-Workflow, der das Verfolgen, Beheben und erneute Testen mit ähnlichen Abfragen umfasst.
- Stresstests für Chatbots bedeuten, die Antworten auf Rechtschreibfehler, mehrdeutige Begriffe und schlechte Formulierungen zu überprüfen, die frustrierte Nutzer/innen produzieren, und nicht die Messung der Systemleistung unter Last.
Warum das Testen eines Chatbots die traditionelle Testlogik bricht
Traditionelles Testen beruht auf einem sauberen Pairing: eine Eingabe, eine erwartete Ausgabe, bestanden oder nicht bestanden. Das Testen von Chatbots funktioniert so nicht. Auf dieselbe Frage kann es viele verschiedene Antworten geben, und mehrere davon können gleichzeitig gültig sein.
Der Nicht-Determinismus ist der Kern des Problems. Während der klassische Testentwurf von einem einzigen gültigen Fall ausgeht und alles andere als negatives Szenario behandelt, kann ein Chatbot eine ganze Reihe von akzeptablen Antworten zurückgeben. Manche Antworten sind ähnlich, manche sind anders formuliert, aber alle können richtig sein.
Damit verschiebt sich die Aufgabe des Testers. Du bestätigst nicht mehr nur eine richtige Antwort. Du entscheidest, ob eine Antwort richtig, relevant und zum Thema passend ist, oft bei Fragen, auf die du selbst noch nicht die richtige Antwort kennst.
Was sich hinter der Frage verbirgt
Das Verhalten eines Chatbots wird von Schichten geprägt, die im Chatfenster nie auftauchen. Hinter jeder Frage verbergen sich Chunks, Abfragen, Prompts und Abfragelogik, und jede dieser Ebenen kann getestet werden.
Die meisten Chatbots sind auf einem RAG-System (Retrieval-Augmented Generation) aufgebaut. Das heißt, die Antwort ist nur die Hälfte der Geschichte. Was das System abruft, bevor es eine Antwort generiert, ist genauso wichtig, und die Abfragelogik verdient ihre eigenen Tests, nicht nur der endgültige Text.
Dusanka Lecic begann diese Arbeit manuell, denn das Gebiet war ihr nicht vertraut. Sie zerlegte sie in kleine Teile und stellte zunächst eine einfache Frage: Was will ich von diesem Chatbot? Genauigkeit, Korrektheit, Relevanz und Antworten, die den Nutzer nicht dazu zwingen, sich zu wiederholen.
Chunking wurde zu einem frühen Schwerpunkt. Wie werden die Chunks erstellt, manuell oder automatisch, und sind sie gut genug? Semantische Grenzen, Top-K-Scores, Vektoreinbettungen und die Auswahl einer Vektordatenbank wurden von unbekannten Begriffen zu konkreten Dingen, die getestet werden sollten.
Erst die menschlichen Bedürfnisse, dann die technischen
Eine sinnvolle Teststrategie beginnt mit dem, was der Mensch eigentlich von der Konversation will, nicht mit der Architektur. Die grundlegendste Anforderung ist einfach: Der Nutzer sollte nicht frustriert werden und nicht wiederholen müssen, was er bereits gesagt hat.
Daran schließen sich die technischen Fragen an. Wie erstellt man Negativtestszenarien für ein System mit vielen gültigen Ausgaben? Wie testet man Vektoreinbettungen, und was gilt als gut genug? Diese Fragen machen erst Sinn, wenn du benannt hast, wie eine gute Antwort für einen Menschen aussieht.
Das CHAT-Framework für die Strukturierung von Chatbot-Tests
Dusanka hat ihre Tests anhand eines leichtgewichtigen Leitfadens organisiert, den sie CHAT nennt, wobei jeder Buchstabe einen Bereich markiert, der überdeckt werden muss. Er dient weniger als starrer Rahmen als vielmehr als Orientierung für das, was wichtig ist.
| Buchstabe | Fokus | Was es abdeckt |
|---|---|---|
| C | Context Retention | Erhaltung des Kontexts über mehrere Interaktionen hinweg, damit der Nutzer sich nicht wiederholt |
| H | Halluzinationskontrolle | Verhinderung von erfundenen Fakten und irreführenden Antworten |
| A | Genauigkeit und Relevanz | Korrektheit und Antworten, die tatsächlich auf die gestellte Frage eingehen |
| T | Testen von Arbeitsabläufen | Nachverfolgung, Korrektur und erneutes Testen mit denselben oder ähnlichen Abfragen |
Bei der Kontexterhaltung geht es um mehr als den Inhalt. In einer Konversation mit mehreren Runden muss sich der Bot an das erinnern, was zuvor gesagt wurde. Deshalb müssen Kontext und Inhalt gemeinsam getestet werden.
Der Test-Workflow schließt den Kreislauf. Du stellst fest, was passiert ist, behebst den Fehler und testest dann erneut mit Abfragen, die denen entsprechen, die das Problem zuerst aufgedeckt haben. Ein erneuter Test mit ähnlichen Abfragen bestätigt, dass der Fehler behoben wurde.
Was Stresstests für einen Chatbot bedeuten
Stresstests haben nichts mit Leistung oder Belastung zu tun. Für einen Chatbot bedeutet Stresstest, dass er mit den chaotischen Eingaben echter Nutzer gefüttert wird: Rechtschreibfehler, zweideutige Begriffe, Tippfehler und schlechte Formulierungen, vor allem solche, die in Frustmomenten auftauchen.
Es geht darum, herauszufinden, wie der Bot sich verhält, wenn die Frage schlecht formuliert ist. Echte Nutzer/innen tippen keine sauberen Eingabeaufforderungen, und ein Chatbot, der nur saubere Eingaben verarbeitet, ist nicht bereit für sie.
Warum Chatbot-Fehler unsichtbar sind
Ein Chatbot-Bug ist normalerweise kein Fehlerzustand im Code. Das macht es schwieriger, ihn zu finden als einen herkömmlichen Bug, bei dem du das Problem reproduzieren, debuggen, ein Ticket öffnen und einen Screenshot anhängen musst.
Bugs können sich an mehreren Stellen gleichzeitig verstecken. Die Fehlhandlung kann darin liegen, wie die Informationen aus der Datenbank abgerufen werden. Er kann in der Eingabeaufforderung selbst liegen, wenn eine schlecht strukturierte Eingabeaufforderung ein schlechtes Ergebnis liefert. Oder er kann bei der Generierung der Antwort auftreten.
Da die Fehlerwirkung in der Abfrage, in der Eingabeaufforderung oder in der Generierung liegen kann, kannst du nicht davon ausgehen, dass der Code fehlerhaft ist, und dort mit dem Debugging beginnen. Du musst zuerst herausfinden, welche Schicht das falsche Verhalten verursacht hat.
Wie Verfolgbarkeit unsichtbare Fehler behebbar macht
Die Protokollierung macht einen unsichtbaren Chatbot-Fehler zu etwas, das du beheben kannst. Es reicht nicht aus, die Anfrage und die Antwort zu protokollieren. Du protokollierst auch die Chunks, die abgerufen wurden, damit du sehen kannst, warum ein bestimmter Chunk zurückkam und wie der Abruf erfolgte.
Bugs sind, so würde ich sagen, unsichtbar. Warum unsichtbar? Weil sie sich nicht im Code befinden.
- Dusanka Lecic
Manche Bugs lassen sich leicht beheben, andere nicht. Wenn sich ein Fehler nicht einfach beheben lässt, musst du vielleicht das Modell neu trainieren, es aktualisieren oder deine Strategie für die Behandlung einer bestimmten Klasse von Situationen überarbeiten. Ohne detaillierte Spuren kannst du nur raten.
Nicht jede Fehlhandlung kann verhindert werden, und das ist auch gut so. Wenn du dich bemüht hast, eine Fehlhandlung zu vermeiden, und sie trotzdem auftritt, dann betrachte sie als Lektion und baue darauf auf. Eine Fallback-Logik hilft dem Bot, sich anständig zu verhalten, anstatt hart zu versagen.
Ein praktischer Fallback ist, den Bot zurückfragen zu lassen. Anstatt bei einer zweideutigen Frage zu raten, kann er den Nutzer fragen, ob er das eine oder das andere gemeint hat, und um weitere Erklärungen bitten. Das Feedback der Nutzer/innen und die protokollierten Fehlhandlungen fließen dann in das Training ein, um das Modell mit der Zeit zu verbessern.
Ein hybrider Ansatz schlägt die Wahl zwischen manueller und automatisierter
Kombiniere beim Testen von Chatbots die manuelle und die automatisierte Arbeit, anstatt dich für eine zu entscheiden. Beim manuellen Testen erfährst du, was bei den Fragen, Abfragen, Antworten und Abrufen passiert. Das ist gründlich, aber auch langsam.
Die Automatisierung macht den Rest überschaubar. Das ist wichtig, denn die manuelle Inspektion jeder einzelnen Ebene lässt sich nicht skalieren.
Die Dokumentation stößt auf die gleiche Schicht wie der Testentwurf. Bei vielen gültigen Szenarien und mehr positiven Testfällen als bei einer herkömmlichen Testsuite ist es sehr mühsam, alles von Hand zu schreiben, sodass die Automatisierung von Teilen der Dokumentation dafür sorgt, dass sie nicht zum Engpass wird. Abgesehen von dem Überschuss an gültigen Fällen ist die Dokumentationsarbeit nicht weit vom traditionellen Testen entfernt.
Die Tooling-Lücke ist real
Es gibt kein einziges Tool, das das Testen von Chatbots für dich erledigt. Bei der Arbeit mischen sich immer noch mehrere spezialisierte Tools mit einem großen Anteil an manuellem Testen, und die All-in-One-Lösung gibt es noch nicht.
Ein Tool, das sich als nützlich erwiesen hat, ist Ragas, zum Testen von RAG-Systemen. Es deckt einen Teil der Aufgabe ab, nicht die ganze. Wenn dieser Teil erledigt ist, musst du wieder manuell testen.
Diese Lücke gibt es nicht nur bei Chatbots. KI kann Teile der Arbeit übernehmen, aber die harte Infrastruktur, Subsysteme und ähnliche Schichten widersetzen sich der Automatisierung. Das kann sich ändern, und maßgeschneiderte Einzellösungen könnten mit der Zeit zu richtigen Produkten und Suiten heranreifen. Im Moment fehlen noch die Werkzeuge.
So fängst du an: Entwickle die Strategie, indem du das System erforschst
Der Einstieg in das Testen von Chatbots besteht darin, das System zu erforschen und es in testbare Bereiche zu gliedern. Es gibt kein fertiges Playbook, das du kopieren kannst, also stellst du dir dein eigenes aus Artikeln, Forschungsberichten, Konferenzbeiträgen und der gemeinsamen Arbeit deines Teams zusammen.
Du musst Konzepte verstehen, bevor du sie testen kannst. Vektordatenbanken, warum man eine Vektordatenbank braucht, Chunking und Überschneidungen, Top-k-Scores: All das muss man erst einmal lesen und verstehen. Am besten spielst du direkt mit einem Chatbot, trainierst ihn ein bisschen mit Fragen und beobachtest, was passiert. Durch den praktischen Kontakt machen die unbekannten Teile erst richtig Sinn.


