If you’re looking for a way of designing, developing, deploying and managing your enterprise systems in a way that closely aligns your business goals and existing technical solutions, then Service-Oriented Architecture (SOA) is more than likely the logical solution.
Your SOA strategy should be integral to your existing Enterprise architecture designed by the Board of Directors and Management to achieve the organisational and operational goals of your business.
SOA is not, however, without its challenges, given that it is usually implemented with fast-evolving Web services using tools that have yet to reach the requisite level of maturity and taking into consideration the fact that really comprehensive testing is crucial to its success.
In order to maximise the business benefits that can be derived from the complex integration of business services, Service Oriented Architecture (SOA) requires a clear business vision and a way of governing its use across the enterprise.
From a testing perspective, the very flexibility SOA offers brings challenges of its own. The complex landscape of web services, middleware services and existing legacy services can render traditional testing approaches ineffective. A SOA testing approach formed specifically for the SOA architecture it services – modular, standardised, and driving re-use wherever possible is fundamental.
SOA testing is a combination of: service testing, process verification, Test Data Management (TDM), accelerated SOAP automation. It also includes enabling practices such as continuous integration testing and service virtualisation. Testing teams need to test the systems at the service provider and the client end interfaces to ensure that the systems are completely error free. Tests also need to be grouped correctly into a regression suite with a workflow based data provisioning system.
Is In-house Testing a Viable Option?
If this all sounds highly technical, it’s because it is and herein lies one of the biggest challenges in SOA testing: to get it right in house your testing team would need to learn new technologies, processes and tools and understand complex supporting work streams required by SOAs unique architectural ecology. Your existing classical tools are unlikely to, for example, be able to test non-UI components, interpret messages that flow across an ESB or handle SOA protocols such as SOAP and WS-Security. The new SOA tools will be unfamiliar and the process is highly complex and requires expert handling. If software testing is not a core competency for your business then you are unlikely to have the time, technical resources and budget to carry out the required level of testing within your organisation, so it makes sense to look into outsourcing it in order to ensure it is carried out the highest possible standard. This of course raises the question, “who should I outsource to?”
The Pitfalls of Using a Single Provider for Development and Testing
At first glance it appears to make sense to allow the vendor who is carrying out the SOA development to also implement the testing, after all you’ve already explained your business structure to them and they obviously know the product well, you’ll save time drawing up a single contracts and it’s easier for management to deal with one provider.
However seeking to save time and effort with a single contractor creates a potential conflict of interest bringing unnecessary risk to the development process that could compromise the integrity of your SOA system. A vendor who is also developing your system is either already happy that the product is of sufficiently high quality or knows that it is perhaps not the most ideally suited for your purposes but is seeking to meet a sales quota. In either situation there is a possibility that they may not carry out the requisite depth and breadth of testing required to ensure your SOA system is running at the optimum level required to meet all of your goals.
In addition in a business where QA testing is not the core competency, testing is often passed to more junior members of staff who are working their way up to being developers and these contractors simply do not have anything approaching the same knowledge and expertise as a dedicated testing company. Another consideration is that testers who work for developers are under pressure from the development team to execute the testing as fast as possible and not delay delivery and payment, which can lead to incomplete tests being carried out and mistakes being made.
The Positives of Hiring Separate Testing Experts
In addition to these negative motivators, there are also some weighty positive reasons to instruct a separate business to carry out your SOA testing. Outsourcing offers higher quality work coupled with a faster time-to-market, and the value to cost ratio is lower than carrying out the testing in house or with a single vendor, meaning that your overall ROI should be higher.
When you hire a separate software testing company you know that you are acquiring the services of a totally impartial, trained expert who has chosen testing as a career path and who is under no pressure from the development team. By dividing the development and testing you can also outsource to smaller businesses, reducing your cost and also avoiding the employee churn that often occurs in larger companies; in short, you get a more personal and bespoke service for less money.
As Forrester states in their webinar, 'Selecting a Supplier for Outsourced Testing Services', “Choosing an outsourcing supplier for testing is complicated by a number of factors, including the willingness to adapt existing, internal processes and activities to an outsourced model and the possible need to manage outsourced development and testing relationships separately.”
Selection Criteria for the Right Testing Company
At Sogeti we think that some of the most important selection criteria you should be looking for in a partner include:
- SOA testing services that recognise testing from a business needs perspective
- A SOA test team that can work in synchronicity with your development teams to ‘parallel run’ both the service and the interface testing
- The ability to ‘virtualize’ the whole service early, so there are no nasty surprises - ironing out defects earlier and at lower cost
- The right onshore resources to stand by your side, combined with real-time performance dashboards to provide clear progress updates
- A proven track record that demonstrates their depth and breadth of experience in SOA testing, with domain experience in every major vertical – from banking to telecoms to fashion
- SOA and middleware factories that can flex up or down at need with a commercial model that can also be based on outcomes, not resources.
In a benchmarking study of testing services from 13 major vendors leading independent analyst Ovum has rated the combined testing practice of Capgemini and Sogeti number 1 worldwide. Ovum commented in particular on our “ample capacity”, test process expertise, customer intimacy and responsiveness. If you would like further information about SOA testing or any of our other testing services please visit our website or email your enquiry to email@example.com.