Chapter 1. Introduction to SOA Testing

With the increase in implementation of service-oriented architecture (SOA), architecture across applications leads to various technological and business advantages to the organizations implementing it.

But as it's said; There are two sides to every coin, with SOA architecture came advantages such as the following:

  • Reusability
  • Better scalability
  • Platform independency
  • Business agility
  • Enhanced security

But there are also disadvantages:

  • Increased response time
  • Service management effort is high
  • Implementation cost is high

In this chapter we will study the following topics:

  • Introduction to SOA
  • SoapUI architecture
  • Test levels in SOA testing
  • SOA testing approach
  • Introduction to functional, performance and security testing using SoapUI
  • Is SOA really advantageous?

Well, let's talk about a few of the advantages of SOA architecture:

  • Reusability: If we want to reuse the same piece of functionality exposed via a web service we should be absolutely sure that the functionality of the service is working as expected; security of the service is reliable and has no performance bottlenecks.
  • Business Agility: With more functional changes being easily adopted in a web service, we make the web service prone to functional bugs.
  • Enhanced Security: Web services are usually wrapped around systems that are being protected by several layers of security like SSL and usage of security tokens. Use of the business layer to protect the technical services to be directly exposed is usually handled by these layers. If the security of these layers is removed, the web service is highly vulnerable. Also the use of XML as a communication protocol opens the service to XML based attacks. So to mitigate risks we have SOA testing, and to help you test SOA architecture we have multiple testing tools on the market for example; SoapUI, SoapUI Pro, HP Service Test, ITKO LISA and SOA Parasoft.

But the most widely used and open source tool in the SOA testing arena is SoapUI. Following is a comparative analysis of the most famous tools in the Web service testing & test automation arena.

Comparative Analysis:

S.No

Factors

SoapUI

SaopUI PRO

ITKO LISA

SOA Parasoft

1

Cost

Open source

400 $/License

Highly Costly

Highly Costly

2

Multilayer testing

Yes

Yes

Yes

Yes

3

Scripting support

Yes

Yes

Yes

Yes

4

Protocol support

Yes

Yes

Yes

Yes

5

CI support

Yes

Yes

Yes

Yes

6

Ease of use

8/10

9/10

9/10

9/10

7

Learning curve

8/10

8/10

6/10

6/10

As we can see by the preceding comparison metrics, Ease of use, Learning curve, and Cost play a major role in selection of a tool for any project. So to learn ITKO LISA or SOA Parasoft, there is very limited, or no, material available on the Internet. To get resources trained you need to go to the owners of these tools and pay extra and then pay more if you need the training a second time.

This gives additional advantages to SoapUI and SoapUI Pro to be the first choice for Test Architects and Test Managers for their projects.

Now let's talk about the closely related brothers in this subset; SoapUI & SoapUI Pro are from the same family, Eviware, which is now SmartBear. However, SoapUI Pro has an enriched functionality and GUI which have additional functionalities to help reduce the time for testing, justifying its cost as compared to SoapUI open source.

Here is a quick comparison:

Criteria

SoapUI

SoapUI Pro

Reporting

Very limited, no rich reporting

Reports are available in different formats

XPath Builder

Not Available

Available

Data source

Not Available

Multiple options for data sources available

Data sink

Not Available

Available

XQuery Builder

Not Available

Available

The additional functionality that is available in SoapUI Pro can be achieved by SoapUI using Groovy script. To sum up everything that is given as UI functionality in SoapUI PRO is achievable with little effort in SoapUI which finally makes SoapUI open source the preferred choice for tool pickers.

SoapUI architecture

Before we move onto the architecture let's take a look the capabilities of SoapUI and how can we use it for the benefit of our projects.

SoapUI provides the following testing features to the test team:

  • Functional testing [manual]
  • Function test automation
  • Performance testing
  • Security testing
  • Web service interoperability testing

Apart from these, SoapUI is also capable of integration with the following:

  • LoadUI for advanced performance testing
  • Selenium for multilayer testing
  • Jenkins for continuous integration
  • HP QC for end-to-end test automation management and execution

Note

SoapUI has a comparatively simple architecture as compared to other tools in the SOA testing world.

The following image, shows the architecture of SoapUI at an overview level:

SoapUI architecture

Let's talk about the architecture in detail:

  • Test config files: Files which require power to test this includes test data, expected results, database connection variables and any other environmental or test specific details.
  • Third-party API: Third-party API helps create an optimized test automation framework example. JExcel API to help integrate with Microsoft Excel to create a data driven framework.
  • Selenium: Selenium JARs to be used for UI automation.
  • SoapUI Runner: This is used to run the SoapUI project and is a very useful utility for test automation as it allows you to run the test from the command line and acts as a trigger for test automation.
  • Groovy: This library is used to enable SoapUI to provide its users with groovy as a scripting language.
  • Properties: Test request properties to hold any dynamically generated data. We also have Test properties to configure SSL and other security configurations for test requests.
  • Test Report: SoapUI provides a Junit style report and user Jasper reporting utility for reporting of test results.
..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset