Blog to understand automation concepts in QTP, Selenium Webdriver and Manual Testing concepts

Similarities and Difference between SOAP and REST

In this article, we will try to understand what SOAP and Rest Services are discussing the similarities and differences in between the two. I have tried to consolidate the basic concept to understand what are SOAP and rest services.

Working for the Same Cause - SOAP and Rest both are used to access Web Services.

What do they stand for?

SOAP - Simple Object Access Protocol
REST - REpresentational State Transfer


What do they mean?

SOAP

  • SOAP is a standards-based Web services access protocol.
  • SOAP relies exclusively on XML to provide messaging services.
  • SOAP was developed by Microsoft.
  • SOAP is a standardized format and has defined various standards for messaging, security, metadata exchange specification and so on.
  • SOAP is highly extensible and also flexible enough to use only those standards which are required for the web services. E.g.: for a web service free to public, it is not required to define the security and authentication for web service.
  • SOAP Based Web Services are defined in WSDL(Web Services Description Language)
  • In case of invalid request, SOAP Response provides details of the error with error code, which helps user to identify the error in the request and correct the same.
  • SOAP client is tightly coupled to the server with rigid contract between client and server, Changes in either of client or server side needs to be communicated to counterparty for web services to work.

REST

  • REST uses URL instead of using XML to make request. Since REST uses URL, REST client is more like a browser.
  • REST uses GET, POST, PUT, and DELETE to perform tasks.
  • We can have the response in required format for e.g. in CSV, JSON, plain text, and XML format while using REST 
  • WADL is the REST equivalent of SOAP's Web Services Description Language (WSDL)
  • REST does not have large number of standards like SOAP.
  • REST is not a protocol but an architectural style.
  • A representation of a resource must be stateless, cacheable.
  • REST requires less bandwidth and resource than SOAP.

SOAP Advantage over REST

  •  REST services inherit security measures from the underlying transport whereas we can define our own security in SOAP. In terms of security, SOAP is assumed to be more safe compared to REST Works well in distributed enterprise environments
  • Is more standardized and has higher extensibility in form of WS* Standard.
  • Allows better error handling in the response from server.


REST Advantage over SOAP

  • REST is protocol independent.
  • While SOAP only supports XML, REST supports different format like text, JSON, XML.
  • REST requires less bandwidth and resource than SOAP.
  • Rest is more lightweight

Building base in WebServices – Questions and Answers

In last few articles, we discussed about the challenges inIntegration testing and have briefed the concept of web services.

In this article, we will explain how web services are used for integration testing. I will break this article in short questions and answers to easily understand the concepts:

  • What is Integration testing? – Validating Integration or connection between multiple components, modules or systems

  • What are the different architecture options available for Integration? – The common architecture options are using SOA, ESB or EAI architecture.

  • What are web services?  - A Web service is a URL-addressable resource returning information in response to client requests. Web services allow data exchange between applications in a platform independent manner. SOA are developed on web services using standard description (WSDL), discovery (UDDI) and messaging (SOAP).

  • How are Web Services useful for Integration testing? - Web Services are services used to have seamless and smooth integration of one software with software over intranet or intranet. Web Services uses SOAP Protocol to communicate between the software which is XML over http protocol.

  • What is WSDL? – Operations in a web services are described in XML format with the Web Service Description Language (WSDL). The WSDL consists of the URL for the web service, the methods in the web services, input parameter types and the return types of the web service methods.

  • What is UDDI?  - Web services can be published and located using the Universal Description, Discovery and Integration (UDDI) based registry of services.

  • What is SOAP? – SOAP stands for Standard Object Access Protocol. SOAP is used as messaging standard for communicating with the web service. Wrapped in a SOAP Envelope, Message can be delivered across network using different protocols.

  • What are top Challenges in testing web services?  - The major challenges in testing web services are:

o   Absence of a user Interface – Testing web services manually is a difficult task due to absence of user interface. To work with and testing web service, tester needs to have knowledge of specific tool .e.g.: Soap UI or jmeter and coding knowledge , e.g.: Groovy script
o   Actual Size of end User(s) for Internet Web Services – Performance testing should be done as early to validate proper response on soap request is received with varying load on web services. This again requires technical as well as tool knowledge and also identifying the expected load on web services is challenging.
o   Another challenge is maintaining different versions of Web Services as the old version of API are consumed. 

  • What are the different testing tools to test web services? Some of the  testing tools to test web services are :

o   Jmeter
o   SOAP UI
o   Examine

Six challenges in Software Integration testing:

Integration testing has been changing over the time with the development of web services and change from integrating large application to smaller sets of application. In this article, we will focus on the major challenges in the system integration testing.

1.     Perception for Integration testing


The perception that Integration testing is testing the integration points between two units or system and verifying if the systems are working properly. This can actually cause issues when the actual user s) uses the application. Integration between different systems should not be oversimplified and should follow by an exhaustive testing considering collection of Systems integrated together as an environment focusing on different sets of inputs and corresponding outputs from other system.

2.     Our Individual systems are perfect, but together teamwork is missing.


Let us consider a banking system. There are multiple layers  Individual systems) for Front Office, middle Office and back office. While delivering the system, there may be possibility for systems developed by different parties. The integration testing should be done in a manner that the integration testing suite should be minimal impacted by change in other third party systems. While Creating individual systems, we should keep in mind, possible integrations with other software systems with which the software will interact, so as to minimize efforts and seamless integration of software with other soft wares

3.     Are we following the standards


 Consider transfer of banking instruction across the globe in the form of Swift messages? Suppose different banks have different messaging format, it would have been very difficult to integrate between different bank and virtually impossible to create an interconnected network between systems. Similar to this, we can follow standards of messages in the form of web services with predefined set of request and response messages. Use of Web Services also helps in integrating systems developed by different teams

4.  Complexity in managing Systems Integration


Test includes factor like Application, Platforms, Environments, data and resource availability for different application.

5.  Most of the legacy systems were isolated system with lot of functionality


Integration of new systems with the legacy system or between two different legacy systems requires a lot of changes in both the systems.

6.   In earlier systems, there was relatively small number of large application as compared to new system which focuses on large number of small applications. 

This results in changing approach for Integration testing with time.