Contact us at +1.415.901.7500 or contact@itconvergence.com

SOA Testing: Approach and Methods

SOA Testing: Approach and Methods
In today’s market environment of constantly shifting business requirements, SOA (Service Oriented Architecture) has evolved to become the standard for developing enterprise applications.

Businesses, regardless of industry, are going through transformations and they need to be agile and ready to adapt changes. Some SOA strategies allow adoption of COTS products and applications (Commercial Off the Self Software), mapping and wrapping the existing assets to expose as services, migration to a new platform, new development etc. As a result, its almost a given that business flows  are more or less comprised of heterogeneous technologies and platforms, making integrations a daunting task.

Given this complexity, it is vital that integrations be thoroughly tested, which presents a challenge in its own right.

SOA Testing Techniques

Traditional testing techniques are inadequate    for ensuring quality of SOA based integrated applications. SOA needs very specific methods and techniques for testing. The below list provides an overview of methods and techniques you can use to ensure better quality of delivered application and product.

  • SOA based solutions can follow various design patterns: transactions oriented, data oriented and process oriented.

Each of these patterns in terms leads to different ways   in which a service should be tested.

SOA testing must follow various phases and levels listed below as per organization needs and maturity levels.

  1. Data level testing
  2. Service component level testing
  3. Service level testing
  4. Integration level testing
  5. Process level testing
  6. System level testing
  7. Security level testing
  8. Architecture level testing
  9. Governance level testing

Building a testing plan for SOA testing means considering all -phases and levels mentioned above as per your organization’s requirements and maturity level.  To accomplish this, there are certain steps you must follow.

  1. Understand your domain well from a functional testing  point of view
  2. Clarify and understand Architectural objectives
  3. Understand design , requirements changes and limitations
  4. Create high level test plans based on above
  5. Include performance  requirements into the plan
  6. Update plan for data level testing
  7. Include  functional testing into the plan
  8. Incorporate  for service level requirements into the plan
  9. Build component level testing into the plan
  10. Update plan for process and integration level testing
  11. Integrate  for system and architectural level testing into the plan
  12. Establish parameters for governance-level testing and incorporate them into the plan
  13. Update plan for security level testing

SOA solutions pose unique requirements when it comes to building test cases and their manageability because it involves integration of many heterogeneous systems. Therefore, it becomes critical to record your test cases and perform regression tests at a later point of time.

A Quick Look at Automated Component Level Testing for SOA

This is a high level overview of what you need to consider when  planning for SOA testing:

1. Automated Component Level testing using Composite Test Framework :

Oracle SOA suite provides a solution to simulate runtime data flows and interactions without calling partner links and actual services. These tests are very useful to perform unit level testing and flow level testing with composites.

The following are the high level steps showing how you can create test suite, test cases for a given composite and run them using the automated tool.

a. Create a Test Suite

b. Create a Test using following

c. Create initiate message

That’s all you need to do in order to write your first automated test case. Now deploy this composite to the SOA server using Oracle Enterprise Manager to run this test suite.  You can click on specific composites deployed on enterprise manager and find options there to run all or specific tests. Please refer to the oracle documentation on how to run test cases using Oracle Enterprise Manager.
2. Using SOAPUI for creating test suite and test cases :
SOAPUI (see http://www.soapui.org/ ) is a software tool that helps test web services. You can use SOAPUI  tool to create test suite and test cases for testing both SOAP and REST  style web services.
SOAP (Simple Object Access Protocol) defines a standard communication protocol specification for XML-based message exchange. SOAP uses different transport protocols, such as HTTP, JMS and SMTP. SOAP services are exposed using WSDL. The Web Services Description Language (WSDL) contains and describes the common set of rules to define the messages, bindings, operations and location of the Web service.
Rspresentational State Transfer (REST) is a key design principle that uses a stateless architecture in which the web services are viewed as resources and can be identified by their URLs. REST uses web architecture based on HTTP protocol. The HTTP methods such as GET and POST are the verbs that the developer can use to describe the necessary create, read, update, and delete (CRUD) operations to be performed.
You can also perform load and security testing with SOAP UI.  Please refer to SOAPUI documentation for details.
3. Using continuous integration tools to automate testing :
You can also call ant script from the continuous integration tools like Hudson or Jenkins to build, deploy and test the SOA composites.  These tools can call ant scripts to automate testing as shown in the example below:
ant -f ant-sca-test.xml -Dscatest.input=HelloWorld
There are advantages of using build and integration tools especially in SOA based projects because they can help to find problems early in the development cycle using the build, test and regression test approach.
Please refer to specific tools documentation for details.
In summary, testing SOA is a complex problem and unique in its own way. It also demands strong governance, processes and discipline.  However, proper planning, incorporating best practices into your approach and selecting the right tools for testing go a long way to making for a smooth testing cycle and, more importantly, improve quality of delivery.
Stick Around for More SOA
If integration is your thing, then you should plan to join us on November 20th for our webcast: 
Oracle Serice Bus: Build a Robust Integration Platform with Service VirtualizationClick here to register now.
IT Convergence offers a full range of SOA Solutions via our Oracle Fusion Middleware practice. To find out more about SOA and other Fusion Middleware solutions, click here.
For more information on SOA related topics, stayed tuned for upcoming blogs, check out previous posts here and/or simply click here to fill out our contact us form for a one-on-one SOA demo with one of our Fusion Middleware Experts.