SOA is an acronym for Service Oriented Architecture that provides a service which enables communication over the web via some communication protocol. SOA is a certain style of designing the web wherein a set of services provide certain functionalities.
'Services' can be thought of as loosely coupled functionalities having least dependency. A service can be thought of as an independent functionality such as filling online application for a bank account, viewing online bank statement etc. which are a complete individual functionalities independent of each other. Each service is self-sufficient and helps to fulfil various business needs.
SOA services are developed based on standard web languages like WSDL and XSD (XML Schema Definition).
An SOA lifecycle comprises of the following Steps:
SOA is designed as a complete structure that performs a wide range of operations. There's an interesting dimension to how SOA services are developed, is the technique of 'orchestration'. The technique is used by developers to establish an association among the various functionalities (services), using some tool, which lists the services along with their characteristics and the process for building an application with the help of these sources.
One can think of a SOA as an architecture for developing distributed application systems. What exactly do we mean by service in the context of an application?
Well a 'service' is precisely a logic that performs some operation or function that eventually delivers an outcome or result. Examples of such self-contained services are payment gateways, loan processing, weather reports etc. SOA services are generally available over the web using HTTP, that is, interaction among services are done using HTTP protocol. Each service is a complete functionality in itself.
Let us get a better insight into the architecture of SOA:
The architecture of SOA depicts the communication that takes place between the user and the system's backend components. The architectural breakdown is broadly classified at three levels - consumer, process and service.
We often term SOA services as 'micro services' that are the most sought after services in today's world. Such services are pocket friendly means along with an advantage of providing an agility to the momentum of a company's business prospects. We simply need to integrate such services with a website so that it becomes a complete model for generating revenue for an enterprise.
By now we have acquired a clear understanding of how an SOA works, now let us shift focus on testing such applications.
SOA services are test upon integrating the different services or modules together, here's a glimpse:
A unit or module is tested to verify the 'transformation logic'. So unit test transformation of SOA services can be done with XQuery or XSLT, post which the deviations in actual and expected results can be analysed using XMLUnit.
In the context of SOA testing, the aim of integration testing is to assess the impact of interaction between the application and the backend services. The idea to check whether such an interaction produces an error and find a solution to the same.
A 'mock service' can be used in this scenario. A mock service is simply a replica of the actual service to be used, for example payment gateway service. Hence run the test suites to measure the performance of SOA service's integration.
SOA test process follows a certain flow of tests, following a four step path to achieve the test objectives.
Automation can ease the task of testing any application under consideration, though choice of an appropriate one is imperative. Here's a list of some of the most common types of SOA testing tools:
SOA testing involves people, information and a process. Hence to summarise SOA testing, we would like to highlight some key points that shall guide the activities of the test engineers in a unified direction.
An SOA primarily deals with implementation of some business logic and the services act as a bridge between two or more entities, hence quality and consistent management of services eventually define the net worth of such a collaboration.