World’s largest virtual agentic engineering & quality conference
How to test IVR menus and DTMF routing over real phone calls, scored on containment and accuracy. No code, no telephony scripts, with TestMu AI.

Zahwah Jameel
Author

Himanshu Sheth
Reviewer
Last Updated on: July 23, 2026
A single IVR test call on TestMu AI is scored across more than 30 phone metrics, so one run shows whether pressing 2 for billing reaches the billing branch, whether the menu recognizes a spoken choice through call-center noise, and whether the call resolves without a human. IVR testing is the practice of placing calls into your phone menu, walking every DTMF and voice path a caller can take, and confirming each branch routes where it should before a customer finds the one that does not.
Two things make that hard. Doing it by hand means dialing your own number and pressing digits until your patience runs out. Doing it with a traditional automation script means writing telephony code that snaps the moment someone reorders a menu. The sections below show how to test an IVR system without code, comparing the two approaches, mapping each IVR path to the metric that catches its failure, and walking the same paths over real calls with an AI testing agent.
A phone menu looks like a handful of options, but real coverage has to walk every branch and every way a call can fall apart. That means the main greeting and each submenu beneath it, both DTMF digits and spoken answers, the transfer a caller triggers by pressing 0, and the retry behavior when someone enters nothing at all.
Most teams reach for one of two options. This is how a scripted telephony harness and a no-code agent stack up on the work that eats your week.
| What you compare | Scripted DTMF harness | TestMu AI agent testing |
|---|---|---|
| Who can author a test | An engineer who writes telephony automation | Anyone who can describe the options a caller hears |
| When the menu is reordered | Digit assertions break and need re-pointing | You edit one plain-English line |
| DTMF button presses | Hardcoded send-digit calls | Real DTMF tones scored by a DTMF Detection metric |
| Spoken input, accents, noise | Not covered without extra tooling | 200+ voice profiles, 50+ accents, 15 noise presets |
| What a failure tells you | A stack trace at a line number | The transcript, the misrouted digit, and a verdict |
| Real production calls | Out of scope | Batch-analyzed with the same 30+ metrics |
The scripted route looks compact until a menu changes. This is what verifying a single billing-then-balance-then-agent path looks like in a typical telephony harness:
const call = await telephony.dial("+18005551234");
await call.waitForPrompt({ timeout: 10000 });
await call.sendDtmf("2"); // main menu: "For billing, press 2"
await call.waitForPrompt({ timeout: 10000 });
await call.sendDtmf("1"); // billing menu: "For your balance, press 1"
const transcript = await call.transcribe({ timeout: 15000 });
if (!transcript.toLowerCase().includes("account balance")) {
throw new Error("Wrong branch reached: " + transcript);
}
await call.sendDtmf("0"); // request a human agent
if (!(await call.waitForTransfer({ timeout: 20000 }))) {
throw new Error("Call never routed to an agent");
}
await call.hangup();Every line here is a hostage to the menu. Reorder billing from 2 to 3, reword the balance prompt, and the digit assertions point at the wrong branch. Multiply that across every submenu and retry path, and the script costs more to maintain than the manual testing it replaced. It also assumes someone on the team writes telephony automation, which most support and QA groups do not.
With TestMu AI IVR testing, you describe the same path the way you would brief a new teammate, and an AI testing agent places a real call to run it:
The agent dials your number over a live call, sends the real DTMF tones, and reads the speaker-identified transcript to confirm each press landed where you meant. When the menu changes, you edit one English line instead of re-pointing brittle digit checks.

Once the happy path passes, coverage is a matter of adding more paths and knowing which metric flags each one when it breaks. TestMu AI scores phone calls across more than 30 metrics. These are the six paths worth wiring first and the metric that catches each.
| IVR path | What can go wrong | Metric that scores it |
|---|---|---|
| Main menu DTMF routing | A digit lands on the wrong branch after a reorg | DTMF Detection |
| Deep submenu navigation | A shared option reroutes several paths at once | Intent Recognition Accuracy |
| Invalid input and retries | The menu drops the call instead of re-prompting | Instruction Following |
| Zero-out to a human | The transfer loops back to the greeting | Escalation Quality, Containment Rate |
| Spoken choice in noise | An accent or background noise breaks recognition | Speech-to-Text Accuracy, Accent Handling |
| Whole-call resolution | The caller hangs up without an answer | First Call Resolution, CSAT |
The spoken-input rows are where a menu starts blending into a conversation. Run the same choice with a non-native accent and call-center noise layered on, then compare speech-to-text accuracy across the quiet and noisy calls. When the menu eventually gives way to a talking assistant, the same scenarios carry over into voice agent testing, and the walkthrough on how to test a voice agent picks up where the menu leaves off.
Every test call runs through the same scoring pipeline. Button presses are checked with a dedicated DTMF Detection metric, routing is graded against Intent Recognition Accuracy, and the full call rolls up into Containment Rate, First Call Resolution, and an estimated CSAT. A run returns the call transcript, the exact digit path the agent walked, and a Green, Yellow, or Red verdict on production readiness, so a failing branch points straight at the menu step that broke it.
The same 30-plus metrics also apply to calls you did not place. Upload a batch of recorded production calls and the platform scores them the way it scores live tests, which turns last week's real traffic into quality and routing data without rerunning a single scenario.
A menu that routes cleanly on one call can still buckle when a hundred arrive at once, so IVR performance testing runs the same paths concurrently and watches whether routing, containment, and audio quality hold. TestMu AI runs 5 parallel calls per organization by default, and you can add concurrent call capacity as a top-up when you want to push real volume through the menu.
Point the load run at the paths that carry the most traffic, then read the same 30-plus metrics under pressure. Voice Quality flags audio that degrades as calls stack up, Containment Rate shows whether the menu still resolves callers instead of dumping them into a queue, and the transcript on any failing call names the step that broke. It is the same describe-a-path-in-English workflow, run wide instead of once.
IVR tests earn their keep when they run without anyone starting them. Schedule the suite daily, weekly, or on a custom cron expression so a Tuesday menu reorg cannot break routing unnoticed before Friday. Wire the testmu-a2a-cli into CI and the same scenarios run as a regression check on every deploy, emit JUnit XML, and return exit code 0 or 1 to gate the build. Route failures to Slack, email, or a webhook, each carrying the transcript and the DTMF path the test took.
IVR testing is one surface of the broader agent testing platform, so the same workflow extends to the chatbots and phone agents that gradually replace parts of the menu.
Here is how to test an IVR system in TestMu AI from first path to verdict, in about ten minutes and with no telephony code.
Your IVR carries too many calls to test one dial at a time and too many branches to trust to brittle digit scripts. Describe the paths, run them over real calls, and read the verdict.
Note: Test your IVR system without writing a line of code. Start with TestMu AI free.
Author
Zahwah Jameel is a community contributor with 5 years of experience in documentation, developer advocacy, and community engagement. She has led content strategies, built developer communities, authored API documentation, and created tutorials and demos for platforms including TestMu AI, JDoodle, MRHB.Network, and OnGraph Technologies. As founder of her own writing collective, she has delivered content for clients such as TestMu AI and Simplilearn. On LinkedIn, she is followed by 4,700+ QA engineers, developers, DevOps professionals, tech leaders, and AI innovators.
Reviewer
Himanshu Sheth is the Director of Marketing (Technical Content) at TestMu AI, with over 8 years of hands-on experience in Selenium, Cypress, and other test automation frameworks. He has authored more than 130 technical blogs for TestMu AI, covering software testing, automation strategy, and CI/CD. At TestMu AI, he leads the technical content efforts across blogs, YouTube, and social media, while closely collaborating with contributors to enhance content quality and product feedback loops. He has done his graduation with a B.E. in Computer Engineering from Mumbai University. Before TestMu AI, Himanshu led engineering teams in embedded software domains at companies like Samsung Research, Motorola, and NXP Semiconductors. He is a core member of DZone and has been a speaker at several unconferences focused on technical writing and software quality.
Did you find this page helpful?
More Related Blogs
TestMu AI forEnterprise
Get access to solutions built on Enterprise
grade security, privacy, & compliance