> ## Documentation Index
> Fetch the complete documentation index at: https://www.bolna.ai/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Test a voice AI agent before calling real customers

> A practical test plan for Bolna Voice AI agents: browser tests, real phone calls, the awkward-case list, batch dry runs, and what to check in transcripts before launch.

Voice agents fail in ways text agents do not: a prompt that reads perfectly can produce an agent that talks over people, mishears digits, or refuses to hang up. Test on audio, not on paper.

## The four stages

<Steps>
  <Step title="Test in the browser">
    Fastest loop for prompt changes — no telephony, no cost per attempt. Use the [Web Call SDK](/docs/developer-resources/sdks/web-call) or the test call in the dashboard. Good for wording; useless for audio quality.
  </Step>

  <Step title="Call yourself on a real phone">
    Everything that matters — carrier audio, endpointing under real latency, background noise, DTMF — only appears on a real call. Do this on the same telephony provider you will use in production.
  </Step>

  <Step title="Run the awkward-case list">
    See below. These are the cases that generate support tickets in week one.
  </Step>

  <Step title="Dry-run a small batch">
    Send a [batch](/docs/outbound/batch-calling) of 20–50 calls to internal numbers or consenting testers. Batch behavior — scheduling, guardrails, retries, concurrency — is not exercised by single calls.
  </Step>
</Steps>

***

## The awkward-case list

| Case | What you are checking |
| - | - |
| Caller interrupts mid-sentence | Agent stops promptly — [The agent interrupts people](/docs/troubleshooting/agent-interrupts-users) |
| Caller goes silent for 15 seconds | Re-engagement message fires, call does not hang up too early |
| Caller dictates a 12-digit number | Transcription accuracy — [The agent mishears words](/docs/troubleshooting/agent-mishears-words) |
| Caller switches language mid-call | [Language switching](/docs/customizations/language-switching-behavior) behaves as configured |
| Caller asks for a human | [Transfer](/docs/tool-calling/transfer-calls) fires and connects |
| Voicemail answers | Voicemail detection ends the call cleanly |
| Caller asks something off-script | Agent declines gracefully instead of inventing an answer |
| Caller says "stop" or "hold on" | Agent pauses immediately |
| Background noise: TV, traffic, speakerphone | Noise cancellation, no false interruptions |

<Tip>
  Keep the list as a fixed script and re-run it after every prompt or model change. Regression, not first-run behavior, is what breaks live agents.
</Tip>

***

## What to read after each test call

Open the execution in [Call history](/docs/agent-setup/call-history) and check four things:

1. **Transcript** — did the transcriber hear correctly? Mistakes here explain most odd replies.
2. **Recording** — how did the pacing actually feel? Read time is not talk time.
3. **Latency metrics** — where did the time go, per turn — [Read latency metrics for a call](/docs/concepts/call-latencies).
4. **Extracted data** — did the fields your business depends on come out populated and correctly typed?

***

## Testing graph agents and workflows

Graph agents have their own [testing](/docs/graph-agent/testing), [validation](/docs/graph-agent/validation) and [debugging](/docs/graph-agent/debugging) tools — use them to verify every transition is reachable before making any calls. Validation catches structural faults; only real calls catch conversational ones.

***

## Next steps

<CardGroup cols={3}>
  <Card title="Production readiness checklist" icon="clipboard-check" href="/docs/production/readiness-checklist">
    Everything else before launch
  </Card>

  <Card title="Failures and retries at scale" icon="arrows-rotate" href="/docs/production/failures-and-retries-at-scale">
    What happens when calls fail
  </Card>

  <Card title="Plan concurrency" icon="scale-balanced" href="/docs/enterprise/concurrency-management">
    Before the first big campaign
  </Card>
</CardGroup>


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.