Search code examples
.netc#-4.0voice-recognitionivrvoicexml

Automated IVR Regression Testing


I have different requirement from a customer to write a automated test script for IVR Testing from .Net

I want to write this automated test scripts from C# that is in .NET Framework 4.0

I have few questions in implementing.

  • To write automated test script. I need to dial the particular IVR phone number from my computer application(.NET Exe file). How can I do this. There is a constraint for me that I can use any free tool\framework\source code but not the paid one.
  • Suppose If I am calling a particular number and getting a message like "Press 1 to Go and Pres to Shut down". How I will tranform this voice message to a object. Based on that my application code flow will work. I need this mutuallly how to pass input to IVR call flow and how to transform that from IVR message to a .NET readable object.

Other than this I have a confidence like I can achieve application call flow in easier way.

If you have any suggesions that is appreciated.


Solution

  • There are a couple of approaches for this type of testing dependent upon what you are trying to achieve with your testing. I am assuming VoiceXML is used since I see that tag listed.

    With VoiceXML you can write an application in C# that makes HTTP requests to your VoiceXML application just like the IVR would and get back the VoiceXML document to parse. You can check the VXML document for correctness and what you expected given the HTTP request. You can parse the document to see what other URL's the application branches to and then make those requests also. Using this technique you can pretty much go down all of the call flow paths.

    Another approach is to have another IVR call the application being tested. You can use CCXML for making the outbound call to the application and you would have VoiceXML take over once it answered. You program the VoiceXML to "listen" for the expected results and then you use recorded audio for either the DTMF or speech input for the VXML application. Voxeo has a free developer version of an IVR called Prophecy that supports CCXML/VoiceXML and could be used as this test driver. The free version comes with 2 ports. I am assuming we are talking about functional regression testing and not load testing. Load testing can be done with the same approach but requires many more ports.