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.
- Data level testing
- Service component level testing
- Service level testing
- Integration level testing
- Process level testing
- System level testing
- Security level testing
- Architecture level testing
- 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.
- Understand your domain well from a functional testing point of view
- Clarify and understand Architectural objectives
- Understand design , requirements changes and limitations
- Create high level test plans based on above
- Include performance requirements into the plan
- Update plan for data level testing
- Include functional testing into the plan
- Incorporate for service level requirements into the plan
- Build component level testing into the plan
- Update plan for process and integration level testing
- Integrate for system and architectural level testing into the plan
- Establish parameters for governance-level testing and incorporate them into the plan
- 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