I was talking with Wayne Ariola, Parasoft’s vice president of strategy and corporate development, last week about the concept of SOA quality. Parasoft’s been using the term “SOA quality” as part of the latest rollout of its SOAtest product, which now is able to query UDDI registries so that WSDL verification tests can be performed at the time they’re published.
Quality is a key element in software development and it should go without saying that the more business that gets pumped through Web services, the more important it will be to have a good QA process in place for those services. Noting that “lack of central visibility” is normal in the classic software development lifecyle, Ariola listed what he thinks are key elements in that SOA quality process.
1. SOA necessitates centralization, a role played by the registry/repository. He argued that stovepipes become inevitable without it.
2. A health check needs to be performed to make sure the asset meets the requirements. Among the potential requirements, he highlighted defining the asset’s consistency and the boundaries for its reuse.
3. You need a convenient way to emulate the service. Taking down a component could cause unintended chaos once it’s being leveraged in multiple places. Testing and changes are best handled in the virtual arena in order to avoid that trap.
4. If a component or service is going to reused, the testing expectations need to be made readily available so that different orchestration scenarios can be vetted. In general the testing environment should be as open and accessible as possible.
5. Make sure you fully and accurately define your SLAs, future users of that service will need to understand the true behavior expectations behind it.
6. Be prepared to do some sort of compliance monitoring in order to make sure your services are being properly used.