Test Leads and Test Managers very rarely make the decision to offshore. It is typically not a choice, but rather a mandate from company executives who look to offshoring for significant cost reduction. Among US leads and managers responsible for offshore teams, management and oversight of the offshore teams is now cited as their largest source of job stress.
Once the dictate is made to move your test effort offshore, what can you do to have it go as smoothly as possible? How can you minimize the headaches, late night phone calls, late or incorrectly executed tasks, and other hassles? What can you do to make offshoring work in the best way possible and reduce stress?
There are a number of things that you can do to maximize the productivity of your offshore testing team, get the most of the testing resources that are available in-house, and minimize your stress. In this article we will look at what can you control:
- Tools, infrastructure, and processes to foster good communication
- Training
- What to test offshore vs. what to test in-house
As teams become more distributed, the need for formalized tools and processes becomes even greater. For testing teams, it is critical to have centralized repositories that are accessible to all team members at any time. This can include systems for:
- Defect tracking
- Test plans
- Test cases
- Test results
- Requirements and/or specifications
This is most commonly accomplished by the use of web-based tools for document management, defect tracking, and test case management. Many teams are also finding blogs, wikis, project web pages, or internal portals essential for instant and easy communication.
One area that is often neglected for offshore teams is training. In order for your offshore testing teams to be effective, you must be sure that they have received adequate training in:
- How to use the product under test
- The business domain that the product serves
- Software Testing and quality assurance fundamentals
- Technical skills for setting up test environments, analyzing bugs, etc.
Ensuring that the team has adequate knowledge and training is often best achieved by sending one or more senior team members to work onsite with your offshore team. In addition to ensuring adequate training, this is the best way to establish rapport between your onshore and offshore teams. Communication via email, phone, IM, and video conference will never be as effective at establishing working relationships as face-to-face communication.
Training is typically not a one-time effort; with turnover rates high in most offshoring locations, project leads should be prepared to train new offshore team members on an ongoing basis.
Finally, with most testing teams consisting of a mix of onshore and offshore testers, an important consideration is what to test onshore vs. what to test offshore.
On the whole, offshore testers are more likely to have a programming or computer science background, and therefore can excel when given technical testing tasks. In particular, I’ve seen offshore teams succeed at:
- Technical testing, particularly Test Automation
- Low-level, API testing
- Requirements-based testing, especially technical requirements
- Functionality Testing
- Regression Testing using existing, documented test cases
- Performance/Load/Stress Testing
Onshore testing team members will generally have a stronger domain knowledge and more ‘tribal knowledge,’ gained through years of experience with your products. Onshore teams are best leveraged for:
- Business requirements testing
- User scenario/soap opera testing
- Usability Testing
- Exploratory/Ad Hoc Testing
- Any testing tasks that need fast turnaround or interaction with onshore developers
Through appropriate tools, processes, training, and task assignment, you can ensure that your global testing team is working in an optimal way, and even increase the capability of your team through a diversity of talents and backgrounds.