Testing Automation with SOA and MDA

Quality assurance and testing are important aspects in software development. Manual testing is a costly, labour intensive and error prone work. We have developed testing automation techniques for business services and unit testing of any existing program modules in different languages in a host system.

UML class models are used to describe the message interfaces of business services. XML structure can be generated from such a model. The test data can be filled into the XML structure and stored in a database or file. UML activity diagrams can be used to model test processes. A test process can contain multiple test cases. The output of one test case can be the input of the next test case. Our framework provides different tools for purposes such as data extraction and modification. Once the test process is modelled and test data built, and one can use our framework to carry out the testing process direct from our case tool. Regression tests can be carried out at any time. Testing can be fully automated.

The same technique can also be used to test existing programming modules in host systems. The concept is illustrated schematically in this figure. A test module is generated for an existing program. Our modelling toolset provides reverse engineering of the module interface data structure (COBOL copy book, Java class, PL1 data structure, etc.) to generate an interface class. XML structure for the test data can be generated. Test message in form of XML can be sent to the host system. The test mediator of our SOA framework would receive this message, parse it and then activate the generated test module. The test module would unmarshall the test message into the native data structure of the module to be tested. The module will be called with the input parameters. The output parameters will be marshalled into XML by the test module. The output XML will be returned to the Case tool which controls the whole test process. The unit testing architecture is illustrated schematically in this figure.