Software Testing Social Network

Free Software Testing Tutorial and Quality Assurance Portal

Error
  • Question does not exist!
  • Question does not exist!
  • Question does not exist!
  • Question does not exist!
  • Question does not exist!
Home Featured Articles Software Testing SOA and Web Services Testing Service Oriented Architecture (SOA) Basics for Testings

Service Oriented Architecture (SOA) Basics for Testings

Service Oriented Architecture – Defined

Service Oriented Architecture is a business-centric architectural approach used for supporting business systems, services and repetitive functions.

The design primarily depends/revolves around service, hence emphasis on ‘service-orientation’. In service-orientation architecture, loosely coupled services are used, where there is exchange relationship amongst the systems or organizations. It links various resources like applications and data. SOA can be implemented using any service-based technology, though there are web service specifications/standards like SOAP, which enable greater interoperability, besides eliminating vendor dependency.

Service Oriented Architecture – Advantages

SOA brings multiple advantages for users and developers-

Integration Advantage – SOA brings together various independent interfaces, applications and other resources, which leads to better business functionality.

Encapsulation – In SOA, various modules are encapsulated. In other words, each aspect of business is independently captured, which enables its reuse. 

Process Automation – SOA magnifies links between various systems. Understanding these links can help in process modeling, process automation and evolution.

 

SOA Testing – A Must know

In SOA-based environment, there are various services, which exchange messages and depending on its design, an application may return millions of messages. While providing test cases, in SOA environment tester must understand the interrelation of various services.

Web Service – Defined

Broadly, a web service is a collection of various protocols and standards that enables exchange of data between applications or systems. It is written in WSDL and can be accessed via standard network protocol, including HTTP. Web services can be used by various platforms to exchange data over the computer network.

Simple Object Access Protocol (SOAP) – Defined

Simple Object Access Protocol is XML-based communication protocol that enables various applications to exchange information over HTTP. It is both platform and programming language independent. SOAP follows W3C development standards.

Java Messaging Service (JMS) – Defined

Java messaging service provides a standard API (Application Programming Interface) for sending and receiving different levels of messages. Unlike many earlier middleware systems, JMS uses both P2P (Point To Point) and Pub/Sub protocols instead of just one.

Enterprise Service Bus (ESB) - Defined

Enterprise Service Bus, combines various tools and programs to enable sharing of information based on messages (mostly xml). These messages are created, published and received over TCP/IP by various applications/adapters/ daemons which understand the protocol.  Nowadays, ESB developers provide ESBs built on SOA principles to increase marketability of product. Business Process Execution Language (BPEL) is noteworthy example of ESB based on SOA principles.

Web Services Description Language (WSDL)

Broadly, Web Services Description Language is a document used to describe web services. In general, the document gives information related to services like service operations (methods) and service location (network endpoints, ports, etc).

WSDL documents follow W3C coding standards and uses XML (Extensible Markup Language) format/ style.

Service Component Architecture (SCA)

SCA provides an open platform for bringing together various IT services. It is not dependent on technology.

The Service Component Architecture defines a structural model for assembling of business solutions, which are collected from various individual services. It also provides functional control over other aspects of the solution like –

 Access Methods of various services collectively.

System Security

By bringing together various IT services it makes the middleware functions more accessible to the developers.

SOA Testing challenges

Testing SOA poses several technical and human challenges.  These are outlined below –

IT Service Variations – SOA testing requires various services like WSDL, SCDL, EJB, JMS, XML/MQ to be implemented at the same time.

Human skills and technical intelligence – SOA requires highly skilled testers who can understand and implement various testing standards, programming schemes and can codify cases manually.

Time Conflicts – SOA testing requires early testing to rectify programming loopholes. If the ‘dependent services’ are not available, it is rather impossible to test the process/services either.

Automatic Testing – Using automatic testing in SOA is not very successful as the process may require human intervention. At times, there is branch time out in that case automatic testing is not feasible.

Quality Assurance – Frequent testing may not verify if service is good under all cases, neither does it ensures if various service operations can work together.

Testing Environment – The testing ecosystem is complex with strong interdependency of various services, no clear problem definition and development of services by various vendors, which imposes both technical and human challenges.

Programming Models – Using Event Driven Programming for SOA has its challenges. In fire and forget model, there is no answer to service call one makes, while in publish and subscribe model, a single service call is reverted with multiple responses.


Comments (0)Add Comment

Write comment
You must be logged in to post a comment. Please register if you do not have an account yet.

busy