Service-Oriented Architecture (SOA) is a set of principles and methodologies for designing and developing software in the form of interoperable services.

Service-oriented architecture is a business-centric IT architectural approach that supports integrating your business as linked, repeatable business tasks, or services.SOA applications are built by assembling standardized components (services) that are reused and combined to address changing business goals and priorities.
Testing of SOA application requires defined approach to ensure business benefits of software solutions are achieved.

It is different from traditional projects as SOA projects involve integration between various distributed systems. This distributed nature of SOA projects throws challenge for testing as the requirements for each individual system and the entire application as a whole needs to be understood properly and the coordination between the various testing teams needs to be managed. Traditional testing methodologies can be applied with agile nature keeping in view of the iterative nature of SOA projects.

Areas to address the need of testing SOA applications:

  1. Functionality testing 
  2. Backward compatibility
  3. Test services exposed by applications and IT components
  4. Interoperability and Compliance testing
  5. Security testing
  6. Performance testing

The key to SOA quality is also to involve business analysts, executives and architects as an integral part of regular quality audits, in addition to QA engineers to test above areas.