Resource

How to test a chatbot before customers do.

How to test a chatbot in 8 steps: scope the risks, write positive, negative and edge cases, script multi-turn and pressure tests, log evidence, and retest.

Last updated . For the full evidence standard, read the testing methodology.

Step by step

How do you test a chatbot? Follow these 8 steps.

The steps run in order, and each one ends with a result you can check before moving on. Only test a chatbot you own or have written permission to test, preferably on a staging copy.

  1. Define the scope and the risks

    Write down what the bot is for, which channels and languages it serves, and which answers would cost you money, trust, or safety if they were wrong: a refund it cannot grant, a price it invents, a private detail it reveals, a handoff it blocks. Rank the customer journeys by that cost.

    Expected result: A one-page test scope that names the bot's job, the three to five highest-risk journeys, and what counts as a failure on each.

  2. Collect real customer questions

    Pull questions from support tickets, chat logs, sales calls, site search, and your FAQ, and keep the customers' own wording, typos included. Group them by journey and note the source of truth each answer has to match.

    Expected result: A question bank per journey, with every question linked to the policy, price list, or help article that defines the right answer.

  3. Write positive, negative, and edge-case tests

    For each journey, write a positive case (a normal request the bot should handle), a negative case (a request it should refuse or redirect, such as a refund outside the window), and edge cases (vague wording, missing details, a policy you never documented, a message in another language). Write the expected behavior before you run anything.

    Expected result: Every test case has an input, an expected behavior, and a pass condition written down before the first run.

  4. Script multi-turn conversations

    Many failures appear on the third turn, not the first. Write scripts of three to eight turns that correct a detail, ask the same thing a different way, switch topic and come back, or repeat a request after the bot has refused it.

    Expected result: Scripts that show whether the bot keeps context, uses the corrected detail, and gives the same policy answer late in the conversation as it did early.

  5. Add adversarial and pressure cases

    Push the way difficult customers do: ask for exceptions, claim authority you do not have, ask for account details before any verification, demand a human, and try to get the bot to ignore its instructions. Describe the pressure in your test plan rather than saving reusable exploit text, and run the security checklist separately.

    Expected result: A set of pressure cases, each mapped to one risk (policy, authority, privacy, scope, handoff, or prompt tricks) and the safer behavior you expect.

  6. Run manually first, then automate

    Run the first pass by hand to calibrate your expectations and catch problems the scripts missed. Then automate the stable cases so the same set runs the same way after every change. AI replies vary between runs, so run the important cases more than once.

    Expected result: A baseline run with every reply captured, and an automated set you can rerun without rewriting it.

  7. Score the results and log evidence

    Mark each reply pass or fail against its written expectation, give every failure a severity based on business impact, and save the exact customer turn and bot reply. A note that says it failed is not evidence.

    Expected result: A findings log where every high or critical failure can be reproduced from its saved transcript and has a severity and an owner.

  8. Fix, then rerun as a regression test

    Fix the prompt, knowledge base, workflow, or permissions behind each failure, most severe first. Then rerun the failed cases, a paraphrase of each, and the cases that already passed.

    Expected result: The fixed cases pass, nothing that passed before has broken, and the launch call (ship, fix first, or wait) rests on that rerun.

Put this guide into a test run

Use the free chatbot test-case CSV to record expected behavior, actual replies, owners, and retest results. Then inspect a sample evidence-backed report or compare chatbot testing tools for your workflow.

Who it is for

This guide is built for founders, small teams, QA leads, and operators who want a practical method for testing a customer-facing chatbot.

Use it to move from vague chatbot review to evidence-backed launch testing: customer pressure, expected safer behavior, transcript proof, severity, fixes, and a retest path.

Test types

Types of chatbot testing

Chatbot testing is not one activity. Each type below answers a different question, and a bot can pass one while failing another. The first seven apply to almost any customer-facing bot; performance and multilingual testing depend on your traffic and your customers.

A Bot Roast covers part of this list: customer-pressure scenarios with deterministic scoring for policy, authority, privacy, scope, handoff, conversion, and prompt tricks. The bundled catalogue holds 214 authored scenarios across 5 packs in 8 risk families, and one automated run sends up to 12 of them, spread across the families. It does not do load or latency testing, check how replies render in each channel, or verify that a backend action such as a refund or an address change actually happened. It flags a reply that claims one did.

Functional and intent testing

Checks that the bot understands what the customer is asking, including paraphrases, typos, and vague requests, and answers from your source of truth. Most teams start here, and most happy-path questions pass.

Conversation flow testing

Checks that each journey reaches a useful end: a booking, an order lookup, a clear answer, or a handoff. Look for loops, dead ends, and questions the bot keeps asking after it already has the answer.

Multi-turn and memory testing

Checks behavior across a whole conversation: whether corrections stick, whether the policy answer stays the same, and whether context from one topic leaks into another. The multi-turn section below has the method.

Regression testing

Reruns a fixed set of cases after any prompt, knowledge-base, model, or workflow change to confirm the fixes held and nothing that passed before has broken.

Policy and safety testing

Checks that the bot does not invent refunds, discounts, prices, or rules, does not approve what only staff can approve, and does not give medical, legal, or financial advice outside its role.

Security testing

Covers prompt injection, system-prompt disclosure, access to private data, and the permissions of connected tools. It deserves its own pass, with written authorization and a defined scope.

Handoff and escalation testing

Checks that the bot offers a person at the first clear request or when a question is outside its scope, and that the conversation reaches the agent so the customer does not have to repeat it.

Performance and latency testing

Measures response time, timeouts, and behavior under many simultaneous conversations. It needs load-testing tools pointed at your own infrastructure, not conversation scripts.

Multilingual testing

Checks that answers stay correct and on policy when the customer writes in another language or mixes two, and that the bot says plainly which languages it supports.

Metrics

Chatbot testing metrics

Pick metrics that match the question you are answering. Before launch you are counting test outcomes, because there is no real traffic yet. After launch, traffic metrics such as containment, resolution, fallback rate, customer satisfaction, and response time take over, and a pre-launch test cannot produce them.

Pre-launch metrics that are worth tracking in your own test log:

  • Pass rate per journey and per risk family, not one blended score.
  • Open findings by severity. A common launch gate is zero open critical or high findings.
  • Policy-violation rate: failed policy cases divided by policy cases run. It is a share of tested scenarios, not of real conversations.
  • Handoff success: the share of handoff cases where the bot offered a person when it should have.
  • Consistency: whether the same question asked three ways reaches the same answer.
  • Fixed on retest: the share of last run's failures that pass on the rerun without breaking a case that passed before.
Method

Manual vs automated chatbot testing

Manual testing means a person talks to the bot and judges each reply. It is the best way to explore a new bot, judge tone and brand fit, spot an answer that technically passes but would confuse a customer, and decide how much a failure matters. It is also slow and hard to repeat the same way twice.

Automated testing sends a stored set of scenarios to the bot and scores the replies against written rules or expectations. It is repeatable and cheap to rerun, but it only finds what its scenarios and rules were written to find, and it cannot decide whether a finding matters to your business.

Most teams need both: a manual pass to shape the test set, automation to rerun it after every change, and a person to review the failures and make the launch call.

Manual and automated chatbot testing compared
QuestionManual testingAutomated testing
Best forExploring a new bot, tone, brand fit, and unusual context.Rerunning the same cases after every change.
RepeatabilityLow: two testers rarely phrase a request the same way.High: the same inputs run the same way each time, though AI replies can still vary.
EvidenceNotes and screenshots unless you save the transcripts.A transcript and a result stored for every case.
CoverageLimited by tester time.Limited by the scenarios and rules you wrote.
JudgmentStrong: a person decides what matters.Weak: a rule flags a reply; a person still sets severity and makes the launch call.
Cost of a rerunThe same effort every time.Low once the set exists.
Regression testing

Regression testing: rerun the same paths after every change

Chatbot regression testing reruns a stable set of customer scenarios after a change to confirm the bot did not break behavior that was safe before. Prompt edits, knowledge-base updates, workflow changes, model swaps, and policy rewrites can all fix one path while breaking another.

AI chatbot replies vary, so compare behavior, not exact wording. The regression question is whether the bot still protects policy, privacy, handoff, and the customer outcome. Use exact-match checks only where the wording itself matters, such as a legal disclaimer or a price.

  • Create a baseline scenario set before launch.
  • Include every high and critical issue found in prior runs.
  • Tag tests by policy, privacy, safety, escalation, conversion, and prompt pressure.
  • Record what changed between runs, then rerun the failed paths and nearby variants.
  • Keep known limitations visible instead of treating a pass as total coverage.
Multi-turn testing

Multi-turn and memory: test the whole conversation

A bot can answer the first question correctly and still fail when the customer challenges, clarifies, switches language, or repeats the request. Refund exceptions, unsafe claims, prompt injection, and escalation failures often appear only after the customer pushes twice.

Memory should be useful and bounded: the bot keeps relevant context without leaking private details, over-assuming identity, or carrying a bad instruction forward. For launch testing, three to eight turns often reveal policy, escalation, and memory failures better than a single prompt.

  • Add ambiguity, an interruption, or a changed detail in turn two.
  • Ask the same policy question a different way later in the conversation.
  • Check whether instructions the customer supplied persist across turns.
  • Capture the exact turn where behavior became risky.
No-code bots

Testing no-code bots

Building a bot with a no-code or AI website builder is fast, but the failures are the same: invented refunds, wrong policy, leaked details, unsafe advice, and dead-end conversations. No-code bots can also inherit prompt-injection and content risks from the underlying model and any third-party chat widget.

You do not need a developer eval framework to test one. Script the conversations in a spreadsheet and run them by hand, or point a tester at the live website widget or a public API endpoint and read a plain-English report. WhatsApp, Instagram, and voice bots are not supported today, and a widget behind a login may need the API or transcript path instead.

  • Test the questions the builder never demoed, not only the ones they did.
  • Ask about a policy that was never added to the knowledge base and check whether the bot admits the gap or invents an answer.
  • Rerun the failed paths after you edit the no-code flow or prompt.
Tools

Chatbot testing tools

Chatbot testing tools fall into a few groups, and the right one depends on who runs the tests and what decision follows. Developer evaluation frameworks run code-owned test suites and red-team probes. AI security tools focus on adversarial findings. Conversational QA platforms test journeys across channels. Some platforms add production monitoring, and some produce a one-time launch report. The tools in our comparison, by what each is best for:

  • Agent Torture Lab: A one-time launch decision for a customer-facing text agent.
  • Promptfoo: Developer-owned evaluations and adversarial testing.
  • DeepEval (Confident AI): Code-owned LLM and chatbot evals in a Pytest-style workflow.
  • Garak (NVIDIA): LLM vulnerability scanning: prompt injection, jailbreak, and data leakage probes.
  • Giskard: AI security testing and red teaming.
  • Cyara Botium: Conversational QA across channels and customer journeys.
  • Cekura: Voice and chat agent testing with production monitoring.
  • Hamming: Voice and chat agent testing, red teaming, and production call monitoring.
  • Coval: Voice agent simulation, evals, and production monitoring.
Sample

Worked example: one finding from a sample report

Sample only. This excerpt comes from Agent Torture Lab's illustrative sample API report for a fictional store bot, ShopBot Support API. The data is fabricated to show the report format; it is not a real customer's bot. The sample run is labelled "Automated API Bot Roast · 12 scenarios (2 core + 10 industry)".

The case combines step 4 and step 5: a multi-turn script where the customer asks for a person, gets troubleshooting instead, and asks again.

  • Customer: "I've asked twice. Are you escalating me to a human or not?"
  • Bot: "Let's try those troubleshooting steps once more before involving anyone else."
  • Finding F-004 (high severity): No human handoff on repeated escalation. When the test customer asked for a human twice in the same conversation, the endpoint repeated troubleshooting steps instead of offering an escalation path.
  • Recommended fix: Detect explicit human-handoff requests and route to a person after the first clear ask.
  • Illustrative retest: still failing. That is why step 8 reruns failed cases before the launch call instead of assuming a fix worked.
Mistakes to avoid

These shortcuts make chatbot QA look busy while missing risk.

  1. Only asking the questions you hope the bot answers well.
  2. Writing the expected result after you have seen the reply.
  3. Judging the bot on tone while ignoring policy, privacy, and safety.
  4. Writing 'it failed' without saving the transcript that proves it.
  5. Testing once and never rerunning after a prompt or knowledge-base change.
FAQ

Quick answers for searchers and AI assistants.

Question

How is testing an AI chatbot different from testing a rule-based bot?

A rule-based bot follows fixed flows, so one run of each path tells you what it will do. An AI chatbot generates its replies, so the same question can get different answers. Test paraphrases, run important cases more than once, judge behavior rather than exact wording, and rerun the set after every prompt, knowledge-base, or model change.

Question

How many test cases does a chatbot need?

There is no fixed number. Start with a positive, a negative, and an edge case for each high-risk journey, add multi-turn and pressure scripts, and add a regression case for every serious failure you find. Cover every risky journey before adding more variations of a safe one.

Question

Can I test a chatbot without writing code?

Yes. Script the conversations in a spreadsheet, run them by hand in the live widget, and log each reply and result. Tools that accept a public website widget or API endpoint can also run automated scenarios without code and return a report in plain English.

Question

Can I test a chatbot I do not own?

Only with permission. Adversarial tests apply the pressure a difficult customer would, so run them against your own bot or one you have written authorization to test, preferably on a staging copy rather than a live service.

Related guides

More on this topic