Outsourcing Testing Tasks

[article]
A Competitive Advantage
Summary:

IT's continuing push towards cost reduction has led to the burgeoning of the outsourcing industry. Implementing an outsourcing strategy is quickly becoming the competitive advantage for companies that need to test software and related components. Outsourcing firms offer other advantages and benefits that may have been previously overlooked, including cost savings. Jose Fajardo examines these benefits and other competitive advantages associated with outsourcing testing tasks for companies interested in transitioning to an outsourced testing strategy.

Trends in the IT industry for the past few years demonstrate that companies are seeking to reap the benefits of outsourcing IT application development. Countless examples exist of corporations outsourcing their software development needs, call centers, data centers, hardware purchases, system support, help desks, etc. Testing is another area of IT that is rapidly being outsourced.

Companies are outsourcing test case executions, test script automation, and test case development tasks to offshore based companies, independent contractors, niche QA companies, and system integrators. Outsourcing approaches vary widely. Some companies outsource manual testing needs, while other companies outsource testing tasks.

Regardless of the approach, outsourcing a company's testing needs can militate strongly in a company's favor by lowering costs while delivering reliable testing results. The following sections explore the benefits of outsourcing testing.

Plug-In for Temporary Assignments
Some companies experience demand for testing services that exceeds the capability of the existing testing team. Even when the company has a large testing team, it may not have the bandwidth or expertise to take on ad hoc testing tasks (i.e. a capacity test for measuring the response times for a new GUI, hardware component, or LAN). Employing an outsourcing firm to handle surges or increases in demand for ad-hoc testing tasks provides a practical solution for test teams that cannot support such efforts.

Automation
Many companies regard test tools, or test automation, as a foreign and esoteric subject. Even companies that have invested hundreds of thousands of dollars in test tools struggle because they don't have the properly trained in-house resources to implement these test tools. Sometimes the test tools are not even suitable for their intended environment (i.e. a test tool for a CRM web based system may not support a Mainframe environment). Another common problem with purchasing test tools is resistance to change that compels many companies to conduct their regression and functional tests by hand because the testing team is resistant to the tools.

In contrast to these problems with test tools, outsourcing firms own licenses to a variety of test tools from different vendors and have testers who are savvy in test automation. Outsourcing firms understand what can be automated and how it should be automated. Automation of business processes and test cases is critical to providing consistent and repeatable test results; many outsourcing firms are capable of providing this service.

Minimize Costs
Hiring full-time testers involves providing them with company benefits and training which is a costly and time-consuming venture. Furthermore, recruiting costs for qualified full-time testers are additional. Companies looking to cut costs should seriously look into outsourcing as a cheaper alternative. The cost of employing a tester from an outsourcing firm with specific testing experience in a given industry or with a particular test tool is far cheaper than the cost of hiring in-house testers.

Outsourcing firms lower testing costs by offering testers and testing solutions at a percentage of the cost of hiring full-time testers. Furthermore, outsourcing firms have libraries and repositories of automated tests that can be leveraged or recycled for other testing needs, which also lowers the costs of various test automation tasks.

Special Testing Requirements
Sometimes companies have testing needs that exceed the capabilities of the existing testing team members. A company should seek help from an outsourcing firm if it's facing testing requirements that its existing test team does not have the knowledge to provide test coverage or traceability for. Some areas that may require the service of an outsourcing firm include:

  1. Foreign language requirements
  2. Usability testing requirements for individuals with disabilities (i.e. Section 508)
  3. Compliance with industry specific requirements (i.e. FERC)
  4. Government acts (i.e. Sarbanes Oxley)
  5. Military standards, etc.

Many outsourcing firms specialize in testing requirements from various industries such as:

  1. Utility
  2. Airline
  3. Financial
  4. Chemical, etc.

Offshore-based companies also conduct testing on foreign languages consisting of characters and symbols. Some firms employ experts in government acts to ensure compliance with regulations from entities such as SEC, OSHA, EPA, and the IRS.

Reliable and Independent Results
Using application developers to develop and write code for an application test hinders producing objective results. Placing developers in a role where they are tasked with identifying their own defects creates a conflict of interest.

Even companies that have separated the testing team from the development team find that development managers often pressure the testing team to sign-off on an application test so that it can be released expeditiously. Problems compound afterwards if the testing team reports incidents visible to the end-user.

Organizations struggling with how to obtain independent and reliable results can seek help from an outsourcing firm. An outsourcing firm can supply objective test results and execution logs because there is no conflict of interest. Companies in notably regulated industries or government projects subject to rigorous and strict audits might find the independent services invaluable.

Another area that deserves consideration is the amount of confidence a test manager can place in the results his team identified. Inexperienced testers could inadvertently provide results from the execution phase during capacity testing and misclassify defects, which could cause the test manager to make inaccurate recommendations. Companies that are extremely dependent on accurate and reliable test results should seek services from an outsourcing firm; some firms even guarantee the reliability of their test results.

Help with Compressed Testing Schedules
Poorly staffed testing teams and testing efforts that begin late in the software development process are common problems. These situations compromise the successful completion of all testing tasks.

Understaffed testing teams are frequently rushed to complete various testing tasks (i.e. test case documentation, test data identification, test script execution, defect tracking) in a compressed period of time. Other companies attempt to implement an ad hoc testing team of SMEs and the development team in the latter stages of the software lifecycle in the hopes of completing various testing tasks in an unrealistic time frame.

Outsourcing firms can help a company meet tight deadlines by utilizing their large workforce. They have offshore testing teams with high head counts since they have to service so many clients. They often staff projects with local resources if testing efforts require direct interaction with SMEs, test managers, and end-users. Organizations with thinly-staffed testing teams can easily augment their testing resources temporarily or long-term with the services from an outsourcing firm.

Equipment, Facilities, Testing Tools, Environments
Some applications require extensive compatibility testing in different environments and back-end database systems. Other applications need to be tested in production-sized environments that closely resemble the final production environment. Putting together a sufficient test lab or procuring all the necessary facilities could prove expensive and difficult to maintain. An outsourcing firm can help to overcome the difficulty of gathering equipment and test tools to test a system under a wide range of scenarios with different hardware equipment, operating environments, and databases.

Outsourcing testing tasks can provide many benefits to companies seeking to lower testing costs, obtain independent testing results, obtain increased testing expertise, and augmenting their testing staff. Given the recent spate of software outsourcing agreements, many companies will resort to outsourcing testing tasks in order to obtain a competitive advantage. The transition to outsourcing is expected to continue and transform the software testing efforts of many corporations.

About the author

AgileConnection is a TechWell community.

Through conferences, training, consulting, and online resources, TechWell helps you develop and deliver great software every day.