SOA Testing

The challenge of testing the SOA is the processes flow across application stacks and technologies. Unlike preceding generations of client-server and mainframe systems, SOA systems are not screen-centric but integration-centric. This poses a unique challenge for testing methodologies, which rely heavily on screen verification to validate the integrity of the entire process.


Web service will not always connect with the end user’s GUI application. There could be cascading of Web services. Or, one Web service may be calling another. There could be significant real-world business software dependencies between Web services, such as output of one Web service passed out into the other Web service, and so forth, without any GUI being involved. Testing this kind of business process orchestration cannot be done if you are using an indirect GUI-based testing approach, or some sort of unit-level of Web services end-point testing.


Security, compliance, and reliability testing of Web services is vital to successful SOA implementations, particularly those that are externally facing and business critical.


In any software development project, testing requires significant time, effort, and discipline. The following common steps should be followed to assure proper and efficient testing:

  • Define a test plan that outlines the testing process and exit criteria

  • Derive test cases from use cases or business requirements

  • Generate test data and/or scripts for each test case

  • Outline the expected results for each test case

  • Execute the test cases

  • Verify whether the results of the test cases match the expected results

  • Generate reports to measure the software's quality against the test cases

  • Fix/resolve remaining defects in the software

  • Continue executing/verifying/fixing until all test cases succeed and defects are resolved


Benefits of Testing SOA

  • Ensure the reliability, quality, security and interoperability of the Web service.

  • Penetration testing integrated with functional testing for complete coverage.

  • Uniform test suites can be rolled over from unit testing to functional testing to load testing to security testing.

  • Prevent errors, pinpoint weaknesses, and stress test long before deployment.

  • Verify data integrity and server/client functionality.

  • Identify server capabilities under stress and load.

  • Accelerate time to market.


The last and best option is a fully integrated testing solution that enables testers to test at each point and end-to-end. This would include these key capabilities:
1. Creating and sending a message to a provider application;
2. Receiving and verifying a message to a consumer application;
3. Either sending or receiving messages to or from files when the applications aren't available or to isolate the infrastructure, and
4. Testing end-to-end through the user interface of the provider and consumer applications and the messages in between.



Return to the Main Listing