Description Language (WSDL). Having a general understanding of the WSDL file elements is important, particularly as many testing tools in the marketplace will utilize the WSDL file as a starting point. WSDL files describe a given service to consumers by specifying the message type, port, supported operations, data types, and all other attributes of how a service works. One of the main benefits of a published WSDL is that it indicates the structure of the XML messages that a web service can process. At its most fundamental level, the WSDL defines the contract between the producer and the consumer of a web service. This is very important information for a test professional to have during the planning process.
The second element is how services interoperate in your particular architecture, or what I refer to as the services control flow . Interoperability testing is a fundamental component of an SOA test strategy and will paint a clear picture of how services relate to and interact with each other. It also will help you understand the data flow involved. With a clear understanding of the control flow, you can plan individual test cases for all of the service components in your project, including third-party and external partner services.
The third element is the service-level characteristics of the web-service implementation that will help you determine the proper testing approach with the tools you have available. How the web services under test for your particular project have been implemented is crucial to your understanding of the testing task at hand and your subsequent creation of an effective testing strategy. This implementation includes the service-level characteristics and any run-time behavior that has been defined in your environment. This type of testing activity often falls under SOA-governance testing , which covers interoperability verification of services to ensure that internally and externally consumed services follow an approved design standard. As with other software development activities, there are several ways to build web services that utilize different programmatic mechanisms. Web services that have been developed in Java—for example, using the Java API for XML Web Services—have different characteristics than those developed in .NET. This could affect the way that a given testing tool interrogates a web service, so you need to be aware of the specific service-level characteristics.
Develop an End-to-end SOA Testing Strategy
As cliché as it may sound, "test early and often" is one of the most critical elements of an enterprise SOA testing strategy due to the way that SOA components are developed, maintained, and supported. This suggests a thorough, end-to-end approach to testing SOA, because testing involvement begins during the early architectural phases. Typically, a solution architecture team defines technical service characteristics at a macro level from a set of business requirements. Once the macro-level business characteristics are defined, the architecture team then creates the micro design, which includes specific web services to satisfy the business requirements. The next step is for the development team to implement that micro design by coding web services following an architectural specification—likely adhering to a defined reference architecture that provides guidelines for organization-wide web service development standards. There are various opportunities throughout the architecture and development phases to introduce quality checks, so testing early and often should be a recurring theme in any SOA testing strategy.
For the earlier architectural phases that include the macro design and the micro design, this is an opportunity for a tester to become familiar with the initial business requirements and how they map to the service-level characteristics. From there, understanding the next phase, web service design, is critical. This is where the