Sunday, July 01, 2007

SOA Best Practice: Integrate early

For a traditional homogeneous application it is sufficient to test the application with unit tests and system tests. The application is tested in isolations on several aspects like security, availability and functional correctness. A SOA landscape is heterogamous in which applications cooperate through services to support a specific business process. Testing applications in isolation will not be sufficient for SOA landscapes, so another test procedure will be needed.

Testing all the services in a SOA landscape in isolation will not ensure that the services will work correctly in composition. Compositional problems can be caused by incorrect assumptions between services. Integration tests can be used to filter out these incorrect assumptions. I recommend adapting integration tests in a early phase in the development cycle to prevent situations in which the cause detection is time consuming and the problem solving even more.

The use of mock-up services will help you to build the integrations tests. I also advice to add the integration tests in the build proces, so that possible problems are detected in an early stage.