There are functions that are better suited for outsourcing than others. Traits that define a good candidate for outsourcing are as follows:
1. Lack of ambiguity, clarity of specifications
2. Difficult to hire and retail skilled human resources
3. Easy to measure metrics
4. Low requirement for domain expertise
5. An activity that spans a time frame (is not short lived)
Among different activities in the QA function, automation passes well on the above tests.
1. Test automation typically is done for regression testing, which means that tests to be automated are defined well already, with minimal ambiguity. This results in well-defined projects with clear scope, deliverables and activities.
2. Depending on where you are, it could be moderately to extremely difficult to hire and retain automation resources, an outsourcer on the other hand can leverage economies of scale and also have a cost arbitrage in hiring, training and retention of resources. In countries like India and China, it is relatively simpler to hire computer science engineers and train them for automation. An outsourcing vendor specializing in automation is likely to have (or get one that has) significant out of the box goodies that enable faster ROI. Such a framework enables them to write tests faster, not spend time writing common utilities and reports.
3. Just like reduced ambiguity, with automation, there is easy measurement and metrics. The unit of work is a small deliverable (a test case), so you can easily measure number of tests automated in a day, per person, tell how much effort is being spent in maintenance and finally arrive at ROI decisions.
4. It is often said that QA testers have to have a lot more domain expertise than their development counterparts. Automation engineers are synonymous to developers. Once a functional test has been written automating it requires only technical skill.
5. Automation on long running projects span as long as the project does, which typically is many man years. Therefore the saving and value from automation is sustained over this period, this resulting in strong ROI.
As usual, it is not always as rosy as it seems. While automation is a strong candidate, here are some caveats that will help streamline the process:
1. Manual tests are not often the same as automation tests: You and more importantly your vendor needs to understand this well. Verbatim automation of manual tests often leads to less maintainable tests that are difficult to analyze and find bugs with. Before you start automating, the vendor may need to refactor the tests
2. Automation framework is a must: Enough has been said about frameworks so I will not repeat it, but please put effort in understanding what framework is being proposed and how it helps new test development and maintenance.
3. Technical skill level: Vendor’s thought leadership, credibility, partner ecosystem, skill sets, training processes, lead consultants, management and measurement processes are all very important characteristics that should be evaluated.
4. Performance driven contracts: Can you execute performance bound contracts with the vendor? The contract can be dependent on automation metrics and have penalties for things not in your control such as vendor staff turn over. For automation these work well due to lack of ambiguity and nature of the projects. Check out this presentation from prof. Kaner (www.kaner.com/pdfs/qaioutsourcing.pdf)