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.
Häufig gestellte Fragen
Kann man einen Chatbot mit nur einer erwarteten Antwort pro Testfall bewerten?
Nein. Dieselbe Frage kann viele verschiedene Antworten hervorbringen, und mehrere davon können gleichzeitig gültig sein. Der klassische Testentwurf geht von einem gültigen Fall aus und behandelt alles andere als negativ, was hier nicht zutrifft. Die Aufgabe des Testers besteht nun darin, zu beurteilen, ob eine Antwort korrekt, relevant und themenbezogen ist – oft ohne die richtige Antwort im Voraus zu kennen.
Welche Teile eines Chat-Systems müssen neben der sichtbaren Antwort noch getestet werden?
Chunks, Abfragen, Aufforderungen und die Abruflogik liegen alle hinter dem Chat-Fenster und können jeweils getestet werden. Die meisten Chatbots basieren auf „Retrieval-Augmented Generation“, daher ist das, was das System abruft, bevor es eine Antwort schreibt, genauso wichtig wie der Text selbst. Die Qualität der Chunk-Aufteilung, semantische Grenzen, Top-K-Werte, Vektor-Embeddings und die Wahl der Vektordatenbank sind konkrete Testziele.
Was bedeutet Kontextbeibehaltung im Zusammenhang mit der Chatbot-Qualität?
Kontextbeibehaltung bedeutet, dass der Bot das, was zuvor gesagt wurde, über eine mehrstufige Unterhaltung hinweg beibehält, sodass der Nutzer bereits gegebene Informationen nie wiederholen muss. Das ist nicht nur eine Frage des Inhalts. Kontext und Inhalt müssen gemeinsam getestet werden, denn eine Antwort kann sachlich richtig und trotzdem nutzlos sein, wenn der Bot den Gesprächsverlauf vergessen hat, zu dem sie gehört.
Bedeutet ein Stresstest für einen Chatbot, seine Leistung unter Last zu prüfen?
Nein. Bei einem Chatbot bedeutet ein Stresstest, ihn mit den chaotischen Eingaben zu füttern, die echte Nutzer produzieren: Rechtschreibfehler, Tippfehler, mehrdeutige Begriffe und schlecht formulierte Fragen – vor allem solche, die auftreten, wenn jemand frustriert ist. Das Ziel ist es, zu sehen, wie sich der Bot schlägt, wenn eine Frage schlecht formuliert ist. Ein Bot, der nur mit ordentlichen Eingaben zurechtkommt, ist nicht bereit für echte Nutzer.
Wo liegen Chatbot-Fehlerzustände normalerweise, wenn nicht im Code?
Sie können beim Abrufen, bei der Eingabeaufforderung oder bei der Generierung der Antwort liegen. Die Fehlhandlung könnte darin liegen, wie Informationen aus der Datenbank abgerufen werden, oder in einer schlecht strukturierten Eingabeaufforderung, die zu einem schlechten Ergebnis führt. Deshalb darfst du nicht einfach davon ausgehen, dass der Code schuld ist, und dort mit dem Debugging anfangen. Finde zuerst die fehlerhafte Ebene.
Was muss protokolliert werden, um eine falsche Chatbot-Antwort mit Verfolgbarkeit zu machen?
Das Protokollieren von Abfrage und Antwort reicht nicht aus. Du musst auch die abgerufenen Chunks protokollieren, damit du sehen kannst, warum ein bestimmter Chunk zurückgegeben wurde und wie der Abruf ablief. Ohne diesen detaillierten Ablaufverlauf wird die Grundursachenanalyse zu reiner Spekulation. Manche Korrekturen sind einfach, andere erfordern das erneute Trainieren des Modells, dessen Aktualisierung oder die Überarbeitung der Strategie für eine ganze Klasse von Situationen.
Gibt es ein einziges Tool, das das Testen von Chatbots von Anfang bis Ende abdeckt?
Eine solche All-in-One-Lösung gibt es nicht. Die Arbeit besteht aus einer Mischung aus mehreren spezialisierten Tools und einem hohen Anteil an manuellen Tests. Ragas hat sich beim Testen von RAG-Systemen als nützlich erwiesen, deckt aber nur einen Teil der Aufgabe ab – und danach bist du wieder auf manuelle Arbeit angewiesen. Maßgeschneiderte Lösungen könnten sich mit der Zeit zu vollwertigen Produkten entwickeln.
Wie sollte ein Chatbot auf eine Frage reagieren, die er nicht interpretieren kann?
Eine praktische Ausweichlösung besteht darin, den Bot zurückfragen zu lassen: Anstatt bei einer mehrdeutigen Frage zu raten, fragt er, ob der Nutzer das eine oder das andere gemeint hat, und bittet um weitere Erläuterungen. Dank dieser Ausweichlogik kann das System sanft zurückstufen, anstatt komplett auszufallen. Nicht jede Fehlhandlung lässt sich verhindern, und Nutzer-Feedback sowie protokollierte Fehlhandlungen fließen in das erneute Training ein.


