Skip to content
Chatbotscape
22 min read

Chatbot Regression Testing

How to Change a Prompt, a Knowledge Base or a Flow Without Breaking What Already Worked

Quick answer: A live chatbot changes every week: a help article is edited, a line is added to the system prompt, the vendor swaps the model underneath. Each change can fix the thing you touched and break three things you did not, and nobody notices until the fallback rate climbs or a customer posts the wrong refund policy. Regression testing is the habit that catches it: keep a frozen set of 30 to 50 questions with known-correct outcomes (a golden dataset), run it before the change and again after, and read the difference. The vendors now supply the harness. Read on 7 September 2026, Intercom runs up to 50 questions per group free of charge and returns the sources Fin used; its Simulations play an AI customer against a Procedure and return a pass or fail; Voiceflow has both a scripted test runner with per-check pass or fail and Evaluations that score every transcript against criteria you write; Botpress, Chatbase and Tidio give you a test console and leave the grading to you. This guide is the procedure around those tools: what counts as a change, how to build the set, which harness to use, how to read the diff, how to triage, and a cadence a one-person team can keep.

Step 1. Decide what counts as a change

The failure that makes regression testing necessary is that the edit and the breakage are in different places. For example, a knowledge-base article about shipping is rewritten, and the returns answer changes because the two articles shared a paragraph the retrieval step used to rank. A sentence is added to the guidance to make the bot more concise, and the multi-step password reset loses its third step. So the trigger list is written by what can move the answer, not by what you intended to change.

ChangeWhy it can regress something elseTest scope
Knowledge base: article added, edited, removed, re-indexedRetrieval ranks across all content; a new article can outrank the right one for an unrelated questionFull set
Prompt, guidance or personality editApplies to every answer, including the ones you were not thinking aboutFull set
Model change, including the vendor's own upgrade or deprecationDifferent model, different reading of the same prompt and content; Chatbase's Playground exists to compare exactly thisFull set, on both models if the tool allows
Flow or Procedure editBranching, conditions and handoff rules; Intercom recommends Simulations before every Procedure launchThe Procedure's rows plus the handoff rows
Integration or data connector changeA field renamed upstream returns nothing or the wrong thingThe rows that call it, in the one mode that hits live data (below)
Language or channel addedDetection order, translation and templates change what the bot receivesThe rows tagged for that language or channel
Nothing you did: a vendor release noteVendors ship on their own schedule; Intercom's two testing articles alone are dated 13 May and 31 July 2026A monthly full run regardless of changes

The rule that follows: content, prompt and model changes get the full set; flow and integration changes get the tagged subset plus the handoff rows; and the calendar gets a full run once a month whether or not anything changed, because the last row of the table is the one nobody schedules.

Step 2. Build the set you will run every time

The golden dataset entry has the anatomy; the short version is that a row is an input, an expected outcome stated as what must be true rather than what must be said, a must-not, tags for topic, language and channel, a source of truth with a date, an owner, and the last result. Build it once from four sources, in this order.

Start with past conversations, because they are what customers ask. Intercom generates "up to 50 questions based on your most recent customer conversations (30-90 days)" and, with AI Topics enabled, by topic; on any other platform, export the last month of transcripts and pull the distinct questions by hand. Add the escalations the bot did not handle, deduplicated by intent. Add the rows no transcript contains: the feature launching next week, the policy that changes on the first of the month, the compliance question. Intercom's article names this set ("compliance-critical scenarios and/or edge cases that don't appear in historical conversation data") and gives it the manual and CSV paths. Finish with a quarter of the set that should not be answered: the refusal, the clarifying question, the handoff, the prompt-injection attempt.

Then write the expected outcome for every row yourself. This is the hour nobody wants to spend and the only part no tool does. Our own reviews use 15 questions per platform for the first-week check; the Tidio review ran 15 against Lyro's Playground and got 11 grounded answers, 3 correct refusals and 1 answer that "conflated two unrelated FAQ items," and calls the result "a first-week snapshot, not a steady-state measurement." Fifteen finds the failure class; thirty to fifty, three to five per topic, is where a regression becomes visible by topic.

Step 3. Pick the harness, and know what it cannot see

Each platform gives you one or more of three things: a console to type into, a batch runner that answers many rows at once, and a judge that returns a verdict. The table is what each gives and, more usefully, what each withholds, read on 7 September 2026.

PlatformBatch inputAutomated verdictWhat it cannot seeCost
Intercom Batch testUp to 50 questions per group: CSV (single column), paste, past conversations or AI topic; run as a user, lead, audience or generic preview user; per brandNo; you rate Good / Acceptable / Poor with a reason, and export a CSV with sourcesFin Vision (images); live data connectors, which "use their configured test or sample payloads"; Tasks, Procedures and Workflows are "not executed," only shown as would-have-triggered"free to use"
Intercom SimulationsOne Procedure and its success criteria; AI plays the customer; saved and re-runnable, with Run allYes: Pass or Fail "with full reasoning"Anything that is not a Procedure; live external APIsIncluded with Procedures; 250 to 12,500 runs a month by conversation volume
Intercom PreviewsOne typed conversation at a timeNoNothing: the only mode that reaches live user data and integrationsNo limit; the conversation lands in the inbox, "excluded from reporting"
Botpress EmulatorTyped messages; ↑ and ↓ resend earlier onesNo; in-line logs and an inspect window per LLM decisionProduction conditions: the Academy lesson says to use the Share button or a real channel for that"Does not count towards usage quotas" per the Academy lesson; the vendor's FAQ, as cited in our review, says emulator conversations count, so check the usage panel after a run
Voiceflow TestsScripted conversations built from User turns, Agent turns and AI-played Simulation sections, started from a saved persona; Run all tests, or a selection, in parallel; Past runs keptYes: per-check pass or fail with reasoning; Response checks (Exact response or LLM as judge), Routing checks, Tool call checksOnly what a check was written for; "Tests never run automatically"Credits "when LLM-powered features are used, the same as in a real conversation"
Voiceflow EvaluationsRuns on every new transcript; batch-run on selected past transcriptsYes: Rating, Binary, Options or Text, against criteria you write; "Test on last transcript" firstAnything that is not yet a transcript; it grades what happened, so it is the production monitor, not the pre-publish gateCredits per evaluation by model and length
Chatbase Playground, Compare ModeThe same query to several instances with different models, temperatures or instructionsNo; side by sideAnything beyond the instances on screenMessage credits per instance; our review recorded compare mode "doubling per-query consumption"
Tidio Lyro PlaygroundTyped questions on a Live chat tab or an Email tab; Add answer from inside the test widgetNoNothing channel-wise: the Playground tests both Live chat and Email; only the Test Lyro shortcut is live-chat-onlyNot stated on Tidio's Playground or quota pages whether test questions count toward the 50-conversation free quota; check usage after a run

Two consequences. First, a "batch" on Botpress, Chatbase or Tidio is you, typing 40 rows, which is why Botpress's ↑ key to resend earlier messages is the most useful feature in its row; budget 45 to 60 minutes to run, up to 90 with manual grading, and keep the rows in a sheet you can paste from. Second, the sandboxes are sandboxes on purpose: nothing in the Intercom Batch test or a Simulation touches Shopify, Stripe or your CRM, so the integration rows in your set can only be truly run in Preview mode against a test user, and the Intercom comparison article says exactly that: "If you need to test with real API calls, use Preview and select a specific user with real data in their external system." Mark those rows in the set so nobody counts a sample-payload pass as a live pass.

Step 4. Baseline, change, re-run, diff

The run is the same four moves every time. Voiceflow publishes them as its own best practice for "any meaningful change to your agent": clone Main into a new environment, make the change there, add tests only for new behavior, click Run all tests so that "existing tests catch behaviour you didn't mean to change," iterate until green, then merge back to Main or route some traffic to the new environment first. That is the procedure below with the platform's names on it.

Baseline before the change. Run the full set (or the tagged subset from step 1) on the bot as it is. Record a result per row: pass, fail, or the reason code. If you skip this and only run after, you cannot tell a regression from a failure that was already there; on a set you have run before, the last run's results are the baseline and this step is free.

Make one change. Two changes in one run means a regression with two suspects. Where the platform batches changes for you (a vendor model upgrade lands with a content edit you made the same day), record both and expect to test twice.

Re-run the same set. Same rows, same test-as settings. Intercom's test groups keep the settings ("each test group retains the settings you used during testing—like simulating a specific user—so you can re-run tests with the same configuration anytime"); on a manual console, the same person should run both rounds if you can manage it, because a second grader is a second variable. The Batch test article's FAQ notes the distinction between resetting and re-running: re-running "will re-generate answers based on any content changes," which is the operation you want.

Diff by row, then by tag. Three outcomes per row: unchanged, regressed (pass to fail), improved (fail to pass). Count them by tag. A change that regresses two billing rows and improves four shipping rows is not "net positive," it is a shipping fix that broke billing, and the billing rows have to be fixed before the change ships. The threshold we use, an editorial rule rather than a vendor's: zero regressions on rows tagged compliance, pricing or handoff, and no more than one regression per ten rows elsewhere, and that one goes into triage before publish rather than after.

Write the numbers down where the next run can see them. A regression set without a results log is a checklist; the log is what makes it a regression set.

Step 5. Triage with a reason, not a rating

A fail is not a fix until you know which kind of fail it is. Intercom's Batch test has a taxonomy already, and it transfers to any platform: when you rate an answer Poor, you choose one of seven reasons, and the help article pairs each reason with indicators; the fixes column below is ours, drawn from the article's Improve this answer recommendations. Rewritten as a triage table for any bot:

Reason (Intercom's wording)What it looks likeWhere the fix usually goes
Didn't use the correct contentRight question, wrong or outdated source citedThe knowledge base: the right article is missing, unpublished or outranked; check whether your change re-ranked it
Used the content incorrectlySource is right; steps out of order, wrong plan's rule applied, two procedures mergedRestructure the source (numbered steps, one procedure per article) or add guidance on sequencing
Didn't clarify the customer's questionMulti-intent or vague input answered as if it were clearGuidance: ask before answering when plan, region or platform is missing
Tone wasn't rightToo cheerful for a billing dispute, too formal for a quick FAQPersonality or guidance, and check whether your prompt edit is the cause
Answer length is too long or shortWall of text for a yes/no; three words for a five-step resetGuidance by intent or channel
Didn't speak in the right languageWrong or mixed languageLanguage settings; the Batch test flags missing language or translation settings in yellow
OtherAutomation triggered or did not; audience mismatch; missing data connectorThe flow, the audience rule or the connector, not the content

Two rules from the source article are worth keeping verbatim in spirit. Ratings "don't train Fin directly," so the fix is always an edit to content, guidance or flow followed by a re-run, never a rating alone. And "Other" gets a written note, because a reason nobody recorded is a regression nobody can find next month.

Step 6. Cadence and ownership

The procedure above takes 45 to 90 minutes on a 40-row set depending on how much of the grading is manual. What keeps it happening is a schedule that does not depend on remembering.

TriggerWhat runsWho
Every content, prompt or model change, before publishFull set on the platform's batch tool or consoleWhoever made the change
Every Procedure or flow changeThe tagged subset plus handoff rows; on Intercom, Simulations, which the vendor recommends before every publishWhoever made the change
Monthly, first working dayFull set, no change required; catches vendor releasesThe bot owner
Continuously, in productionVoiceflow Evaluations on every transcript (its Tests never run on their own), or on any platform the weekly transcript read from the hallucination guide; a new failure becomes a new rowThe bot owner
QuarterlySet review: retire rows whose source of truth changed, add rows from the quarter's escalations, re-balance the refusal quarterThe bot owner

The last row is the one that keeps the set golden. A set that only grows accumulates rows nobody can grade; a set that is never refreshed tests last year's policy. The golden dataset entry has the five maintenance rules.

What our fifteen reviews record

None of our fifteen platform reviews uses the words regression, golden set or batch test (grep -liE 'regression', grep -liE 'golden (set|dataset|test)' and grep -liE 'batch test' each return 0 of 15), which is the reviews' scope, a first-week hands-on, not the vendors' feature set. Three describe the vendor's test console (Botpress, Chatbase, Tidio); grep -liE 'emulator|playground' returns 5 of 15 because it also matches Voiceflow once in passing and Chatfuel on an unrelated sense of the word. The Intercom review (last updated 28 May 2026) does not cover Batch test; that is on the list for its next refresh, and this guide is the place the feature is documented until then.

Where it breaks

The set is the knowledge base. Covered in step 2; the symptom is a set that never fails.

The judge is wrong. An LLM judge, whether Voiceflow's Evaluation or Intercom's Simulation, reads against criteria you wrote, and a vague criterion produces a confident wrong verdict. Voiceflow's own example is the fix: not "rate customer satisfaction" but "rate how satisfied the customer appears based on their tone, whether their questions were answered, and whether they expressed frustration or gratitude." Grade ten rows by hand, run the judge on the same ten, and rewrite the criterion until it agrees on eight. Intercom adds a second trap: success criteria that require an intermediate step (our example: requiring that Fin ask for an order number it already found) fail a Procedure that did the sensible thing; the comparison article's advice is to "focus success criteria on outcomes, not intermediate steps."

The sandbox passed and production failed. A data connector returned its sample payload in the batch run and the real API returned an error in front of a customer. The integration rows in the set are Preview-mode rows against a test user, and the log should say so.

Someone tested on the live bot. Preview conversations land in Intercom's inbox and are excluded from reporting; on platforms without that exclusion, a 40-row run inflates the day's containment and conversation counts. Use a test user, tag the conversations, and exclude them from the month's numbers.

Two changes shipped together. The vendor's model upgrade landed the same afternoon as your prompt edit and the diff has two suspects. Roll back the one you control, re-run, and you have your answer in one more run.

FAQ

How is regression testing different from the QA checklist before launch?

The launch checklist is run once, in an afternoon, before customers see the bot; ours is at chatbot QA testing protocol. Regression testing is the same frozen set of questions run before and after every later change, with the results kept, so that a change to one thing is caught when it breaks another. The first has no test set between runs; the second is nothing but the test set. The protocol page's after-launch note (re-run Tests 1-3 and 9 on the changed paths for a content update) is the minimum for a bot without a test set; once you have the set, step 1 of this guide replaces it.

How many test questions does a chatbot regression set need?

Thirty to fifty for a bot with five to ten topics, three to five per topic, with about a quarter of the rows that should refuse, hand off or ask a clarifying question. Intercom caps a Batch test group at 50; keep more groups if you need them. Fifteen, which is what our reviews use for a first-week check, finds a failure class but is too few to see a regression by topic.

Can chatbot testing be automated?

Partly, and more on some platforms than others as of 7 September 2026. Intercom's Batch test answers up to 50 questions at once but you grade them; its Simulations return an automated pass or fail, for Procedures only. Voiceflow's Tests run scripted conversations with Exact-response, LLM-as-judge, routing and tool-call checks and return a pass or fail per check; its Evaluations score transcripts against criteria you write. Botpress, Chatbase and Tidio give you a console to type into. On every platform the expected outcome per row is written by a person.

Does the vendor's test tool cost anything?

Read 7 September 2026: Intercom's Batch test is "free to use" and Simulations are included with Procedures with a monthly run limit of 250 to 12,500; Botpress's Emulator "does not count towards usage quotas" per the Academy lesson, though the vendor FAQ cited in our review says the opposite, so check your usage panel; Voiceflow's Tests consume credits "the same as in a real conversation" and its Evaluations per transcript by model and length; Chatbase's Playground consumes message credits per instance, doubled in Compare Mode per our review; Tidio does not state whether Playground questions count toward the 50-conversation free quota, so check usage after a run.

What should I do when the vendor upgrades the model underneath my bot?

Treat it as a change you did not make: run the full set. If the platform lets you compare models side by side (Chatbase's Compare Mode does), run the set on both before switching. Vendors ship changes without asking, which is why a monthly full run with no change of your own is in the cadence table.

Sources

  • Intercom Help, Batch test Fin AI Agent (article 10521711, written by Beth-Ann Sher, dated 13 May 2026), read 7 September 2026: the question sources (past conversations, AI topic, manual, CSV with "a single column containing up to 50 test questions"); "up to 50 questions based on your most recent customer conversations (30-90 days)"; the compliance-critical edge-case sentence; the Test-as options and brand selection; the seven Poor reasons with their indicators and the recommendations under "Improve this answer"; "These ratings don't train Fin directly"; the test-group settings sentence quoted in step 4; the reset-versus-re-run FAQ; the yellow language-settings messages; "the Fin AI Agent > Test page is free to use"; Fin Vision not supported; data connectors "use their configured test or sample payloads"; Tasks, Procedures and Workflows "are not executed."
  • Intercom Help, Simulations vs. Batch tests vs. Previews (article 14077180, written by Dawn, dated 31 July 2026), read 7 September 2026: the quick-reference table (testing mode, "Creates a real conversation?", "Hits live APIs?", saves and reruns, pass/fail, usage limits "250–12,500/month"); "Catching regressions after Procedure updates" under Simulations' best-for; "Running Simulations before every Procedure launch is strongly recommended"; "Preview conversations appear in the inbox but are excluded from reporting"; "If you need to test with real API calls, use Preview and select a specific user with real data in their external system"; "Focus success criteria on outcomes, not intermediate steps."
  • Botpress Academy, Guide to the Botpress Interface: Studio — Emulator (botpress.com/academy-lesson/studio-ui-emulator), read 7 September 2026: the ↑ and ↓ resend keys; the in-line logs; the inspect window for Autonomous Nodes; "it does not save conversations or count towards usage quotas. For production-like testing, use the Share button or deploy on the intended channel." Our Botpress review cites the vendor's FAQ as counting emulator conversations; the two vendor pages disagree, the Academy lesson is quoted here, and the review is flagged for its next refresh.
  • Voiceflow Documentation, Evaluations (voiceflow.com/docs/documentation/measure/evaluations), read 7 September 2026: the four metric types; the criteria example quoted in Where it breaks; "Test on last transcript"; "Batch run evaluation" on selected transcripts; the three default evaluations; per-evaluation credit cost by model and transcript length. Voiceflow Documentation, Tests (voiceflow.com/docs/documentation/measure/tests), read 7 September 2026 in a browser: the key-concepts table (Test, Turn as User / Agent / Simulation, Check, Persona, Past run); the six-step best practice ("Follow this workflow for any meaningful change to your agent": Clone Main, Make your change, Add tests if needed, Run your tests, Iterate, Ship the change) and the sentence "Existing tests catch behaviour you didn't mean to change"; the three check types (Response with Exact response or LLM as judge, Routing, Tool call); "Tests never run automatically. You always start them yourself"; Run all tests, parallel runs, Retry failed, Past runs; "Tests consume credits when LLM-powered features are used, the same as in a real conversation."
  • Chatbase, Introducing Compare Mode in the Playground (changelog, 12 August 2024), read 7 September 2026: "compare the performance of various models, temperatures, and instructions to determine which configuration best suits your specific use case before deploying your chatbot." Chatbotscape, Chatbase review (/reviews/chatbase-review): "compare-models doubling per-query consumption."
  • Tidio Help Center, Lyro - a quick setup (article 15607494952604, dated 22 July 2026), read 7 September 2026: the Playground step and the refine step. Tidio Help Center, Lyro - the conversational AI agent (article 9003475527196, updated 17 July 2026), read 7 September 2026: the Playground's Live chat and Email tabs ("test Lyro's live chat capabilities as well as its email responses"); the Test Lyro button, "only for live chat, however - there is no email testing option this way"; the Add answer button "directly inside the test widget." Chatbotscape, Tidio review (/reviews/tidio-review), the Scenario D knowledge-base section: the 15-question Playground run and the "first-week snapshot" sentence.
  • Chatbotscape review corpus (the fifteen platform reviews at /reviews), searched 7 September 2026; the search strings and counts are printed in the sources of /glossary/golden-dataset.
  • Ahrefs Keywords Explorer, US overview, queried 7 September 2026: the figures in this guide's keyword note.
  • Chatbotscape evaluation methodology. /methodology (continuously updated).

About this guide

Chatbotscape launched in 2026 as an independent review site for chatbot platforms. This guide is part of our SMB chatbot Academy and is written for the owner or support lead of a small business whose chatbot is live and keeps being changed. It reads five vendors' testing documentation as worked examples of the harness an operator relies on; it does not rank them, and the platforms named carry affiliate links disclosed above.

Methodology

The two Intercom help articles, the Botpress Academy lesson, the Voiceflow Tests and Evaluations pages, the Chatbase changelog entry and the two Tidio help-center articles were read in full on 7 September 2026, and every quotation carries its source. The corpus counts are our own and the commands are printed in the glossary sibling. The editorial judgments on this page: the trigger table in step 1, the 30-to-50-row size and the one-quarter refusal share, the zero-regression threshold on compliance, pricing and handoff rows and the one-in-ten elsewhere, the 45-to-90-minute run estimate (untimed, from the row count and the manual grading share), and the cadence table. Intercom's reason codes are reproduced as a taxonomy because they are the only vendor-published one we found; the fixes column is ours.

Last updated

8 September 2026.