lundi 19 octobre 2015

How to make applications that use third party assemblies "testable"?

This is a very broad question i'm afraid, so let me narrow this down a bit.
We produce Lync IVR applications that make use of the UCMA-libraries. For anyone unfamiliar with UCMA: it enables to create serverside, telephony applications like "press 1 for this, press 2 for that and otherwise well redirect your call" and stuff like that.

Now this UCMA library is really dependent on asynchronous calls and handles almost anything, so basicly when we write a small customer application, the bussiness logic is only 500 LOC. So you would say it would be easy to test. However it seems not.

The problem here is the specific order in which events and callbacks must be processed and partly because of the nature of UCMA, which does a pretty good job to hide all the SIP related stuff, but making it sometimes unreliable because of that hiding.

So what I was wondering is: What is the best way to make an application testable (preferebly automated) when it strongly relies on a library that is depending on I/O stuff (by that i mean that same functions can have different results depending on the network speed, availability etc. In other words: not 100% reliable). Or is black-box usertest the only way to go?

Aucun commentaire:

Enregistrer un commentaire