So far, we have undertaken the difficult voyage of web services, SOA-Architecture and have come out of it empowered with the knowledge of what this new buzz SOA is all about. In this series of blog we will delve deeper into SOA and understand how do, we go about testing SOA. We will also see what all tools both open source and commercial are available in the market to help us achieve it. We will also take each tool one by one and understand how to best utilize it to test SOA.
Lets first understand what all issues needs to be considered when we test any web service: [Ref 1]
- Web Services are intrinsically distributed and are platform and language agnostic.
- Web Services can be chained with dependencies on other 3rd party Web Services that can change without notice.
- Web Services ownership is shared across various stakeholders.
- Web Services client developers typically only have access to interfaces (WSDLs) and lack access to code.
- High level of reuse of web services.
As we know web services are based upon loosely coupled architecture. They are platform and language independent which increases the complexity of testing them. A web service usually calls another web service which might be a third party service. Oftenly 3rd party web service changes without prior information resulting in your web service failure. Also, if you are using a 3rd party web service all you have access to is a WSDL document of the web service and no code is available. A 3rd party web service can be used by a large number of users raising performance and security concerns which needs to be taken care of also.
Keeping all this in mind we need to also judge a test tool which takes the following issues into consideration:
- No User Interface to easily play a test
- High level of reuse of the services
- Testing at the service and end-to-end levels
- Interoperability, conformance, security penetration…
- Support of SOA standards and specific implementations WSDL, SOAP, UDDI, HTTP, WS-Security, …
A test tool to test any web service should support the various SOA standards like WSDL, SOAP, XML. Usually there is no UI available to test a web service. So the test tool should provide a user friendly interface to test the GUI less service. It should also assist in testing the interoperability, conformance issues which do arises in web service testing.
The commercial tools which are available in the market to test web services are:
- IBM : Rational SOA Tester
- HP: LR and QTP
- Crosschecknet
- Parasoft
The open source tools for SOA testing are as follows: [Ref 2]
- Eviware SoapUI 1.6
- PushToTest TestMaker
- WebInject
In the coming series we will take each tool one by one and understand how do, we test the web service using it.
References:
- http://www.crosschecknet.com/soa_testing_black_white_gray_box.php
- http://www.infoworld.com/article/07/05/11/19TCwebservicetest_1.html