The CTO’s Guide to Outsourcing Software Testing
Determining if outsourcing is best for your needs and how to find the right provider in a sea of options
When it comes to completing software projects on time with the fewest possible defects, managers are faced with the question of whether they should outsource software testing, deploy an in-house team, crowdsource, or forgo having testers altogether (not recommended!). Outsourcing software testing can provide several advantages, such as saving time on HR, training, and tool and equipment costs. But it can be a challenge to identify the best partner for outsourcing.
If you’re still on the fence about whether outsourcing software testing is the right decision for your business, then you’ve come to the right place! In this step-by-step guide, we’ll help you understand which type of outsourcing is the most adequate for your needs, the main pros and cons of each outsourcing modality, and what criteria you should keep in mind when choosing a provider.
The Importance of Software Testing
First of all, let’s define software testing. One definition of testing that we like at Abstracta is Cem Kaner’s, “a technical investigation of software in order to provide information about its quality to the different people involved in its construction.”
Typically, software testing is carried out by someone other than the developer who wrote the code. This person should specialize in testing software and think critically about the product. Software testers are vital in helping companies catch code errors or usability issues.
It’s crucial to understand that software testing is no longer an option. It’s an essential aspect of any development process. Although some may say that the individual test role has been eliminated as developers run unit tests in a continuous integration and continuous delivery (CI/CD) scheme, the truth is dedicated testers and quality engineers are crucial when developing a high quality software product.
Having solid quality engineering processes not only guarantees the quality of a software product, but it’s also ultimately what defines its potential success or failure. Without a sufficient level of quality, users will dwindle.
The 2019 World Quality Report by Capgemini and Sogeti revealed that the top objective for QA and software testing strategy is ensuring end-user satisfaction. Detecting software defects before going live and contributing to business growth and outcomes were also among the top objectives surveyed.
The scope of testing today is so broad that it’s actually necessary in each and every stage of the software development life cycle (SDLC). In fact, it’s not limited to the testing phase of the SDLC. Software testing can be applied to the entire customer journey, including continuous testing on vital aspects of the product and customer experience.
Therefore, while developers may run unit tests, you’ll still need to work with QA and software testing professionals that can handle other areas, such as automation, security testing, performance testing, and more complex test cases. The best development team is the one in which software testers and developers work together, combining their skills and knowledge in the pursuit of high-quality software.
From discovering early-stage errors to enhancing the user experience, agile testing practices should always be applied to ensure that all of the development and maintenance processes are running smoothly.
Check out this episode of the Quality Sense podcast: Involving Devs in the Quality Process
In-House vs Outsourced vs Crowdsourced Testing
Before deciding which approach to software testing from a human resources perspective is the most beneficial for your business, you certainly need to know the basic principles of each alternative. Here are the benefits and disadvantages that each one has to offer.
Having an in-house testing team will provide you with complete control over your testing processes. You’ll have the freedom to hire the talent that you want to be part of your company and train it to your specific needs.
However, creating an effective in-house team isn’t an easy task and will require you to invest a lot of key resources such as time and money to develop a strong internal infrastructure. Supporting your team with specialized training and acquiring and maintaining numerous testing tools and licenses are just some of the aspects that will depend completely on you should you choose to develop an in-house team.
Outsourcing services can help you accomplish specialized tasks that would otherwise be too difficult or expensive to complete in-house. These services offer a wide range of benefits, but there are different outsourcing modalities. Each one comes with its own challenges. In order to pick the right option, it’s key to understand what the differences are.
Among outsourcing options, you’ll find two types of providers: classic outsourcing and crowdsourcing. The former, whether onshore, nearshore, or offshore, can provide you with an exclusive team that’ll work from a set remote location and adjust to fit your particular needs at any time. Crowdsourcing provides you with a much larger network of testing experts, but they’ll be globally dispersed, consisting of one-off efforts, and working with different platforms and devices independent of each other.
Classic Outsourced Testing
If you want to keep track of your team’s performance, and maintain direct communication with managers and testers, then an outsourced testing provider is the way to go. Outsourcing your testing needs to a reliable vendor will result in a professional and structured testing process and allow you to use your saved internal resources on other aspects of the development process. Working with a single outsourced partner will also provide you with ways to keep sensitive information safe through either confidentiality contracts or non-disclosure agreements.
Crowdsourced testing, on the other hand, is still a relatively new trend in software testing. It involves hiring a dispersed set of testers who are often temporarily scaled up or down as needs arise. But crowdsourced software testing comes with a more complex set of challenges.
Although having so many people with different backgrounds and expertise testing your product can be a great source of fresh, new perspectives, the fact that testers are scattered all around the world can lead to complications in both management and communication processes. The variety of time zones, languages, and cultural differences can stand in the way of smooth operations. Regarding the security of your data, confidentiality cannot always be guaranteed. You never really know who is working on your project, which makes the creation of effective non-disclosure agreements difficult.
There’s also the potential for high turnover among testers if you’re hiring from a general marketplace or working with several different vendors. Without proper oversight, you may be working with a different set of people every time you scale up testers for a new release.
To summarize, outsourcing testing services will provide you with a properly tested and higher quality product. You can leverage the ability to quickly scale up with an already trained staff that can handle the increased volume of work and reduce your testing infrastructure cost. However, it’s important to note that each approach differs widely in terms of security and management. You’ll have to decide which one will best suit your needs.
Common Objections to Outsourcing Testing That Don’t Hold Up
Sometimes the idea of outsourcing software testing has bad associations in the minds of developers or managers. This can be because they’ve had a poor experience in the past that ruined the idea of a successful partnership in the future. But that doesn’t have to be the case. Here are some common myths about outsourcing debunked.
“We need to safeguard IP and maintain internal knowledge.”
Experienced outsourcing providers give high priority to signing NDAs to protect trade secrets as well as comply with the strictest security measures—just like an internal team member would at your company. When it comes to keeping internal knowledge, there are several ways that a software testing provider can help with this. If your company experiences high employee turnover, or frequent role transitions and promotions, the testing provider can remain constant. A good testing firm will have several internal safeguards for loss of knowledge, such as training multiple people who can work on behalf of another when they take leave or vacation. It’s up to the provider’s customer success manager to make sure that any transitions that take place on their side don’t cause disruptions in your company’s development process.
“We’ll lose control over the process.”
Sometimes there’s a misconception around the role of the outsourced party in relation to the client (i.e., your company). When you partner with a software testing company, you create a Service Level Agreement together in which you decide who is responsible for X, Y, and Z. You’ll always be the one to make the decisions that matter most to you.
A thoughtful tester will speak up when they find ways to eliminate inefficiencies or suggest feature improvements, but they’ll make sure to discuss them with you first before taking action.
For best results, simply work continuously with the outsourced team just as you would your internal teams.
“The outsourced team won’t understand our business.”
One of the most critical skills for a software tester is being able to ask the right questions about the product, the end user, the business, and the industry. It’s the only way they can properly create a test plan and understand what the most critical areas of risk are to mitigate. It may be surprising how quickly a new tester can gain an understanding of your unique context and, from there, design the best test plan for you. Remember that the outsourcing company’s success is your success.
Conversely, it can be especially advantageous to have an “outsider” test your product. After months or years of developing your amazing new app, you may stop perceiving it as someone who has “fresh” eyes. A software testing company may even rotate testers over time, which helps to gain that invaluable “fresh look” more often.
Lastly, there are many software testing providers that may have experience in your particular industry. It’s probable you’ll find a provider that is already familiar with your area of business, goals, challenges, limitations, etc.
“Outsourcing is only useful for large enterprises.”
While global enterprises are known to leverage outsourcing to cut costs, there’s no reason why small to medium-sized organizations can’t reap the same benefits. Let’s say you have only enough room in your budget to hire one tester. It could go much further when you outsource because you’ll gain access to a collective of testers with a wide range of expertise in test automation, performance testing, mobile testing, etc. On top of that, the services can be highly customizable for what you need at the moment. You can think of it like having access to a Swiss army knife of testers (instead of being limited to only one) while also reducing employee overhead.
As your customer base and product grow, it’ll be faster to add testers to your outsourced team rather than hire new employees. The testing company will already know your product. They can bring on more team members without you having to take the time to onboard them personally.
Outsourcing Destinations: Offshore vs Nearshore
So, let’s say you’ve reached the decision to outsource software testing. The next question is where should you outsource? Offshore and nearshore are distinctions in outsourcing used to describe the destination. Offshore means to another side of the world and often across several time zones. Nearshore means to a country nearby that shares a similar time zone. For example, if a company from the United States outsources to Indonesia, that would be considered offshore, while nearshore would be outsourcing to Mexico.
Pros and Cons of Each
Companies opt for offshoring when cost is the primary concern. The main advantage of offshoring is the cost saving. Rates for software testers are much lower in Asia and Eastern Europe than in the Americas or Western Europe.
While cost savings are beneficial, there can be some downsides that many teams don’t want to deal with. For example, language and communication barriers, cultural differences, a lack of transparency, or the time difference can be a major blocker for fluid communication. You also get what you pay for—you may end up hiring poorly trained testers who aren’t that invested in your product.
Choosing a nearshore partner can still lead to cost savings compared to building a QA team in-house. Compared to offshore testing, you’re more likely to have greater ease of communication, cultural understanding, and real-time collaboration when you choose nearshore locations like Central or South America. Nearshoring is often touted as a best-of-both-worlds solution because it offers all the benefits of outsourcing minus the headache of working with a team half a world away.
Hiring nearshore software testers will likely cost more than hiring offshore. But we think the tradeoffs are worth the extra cost.
Disclaimer: Are we biased here? You bet! ;P
Making a List of Criteria for Choosing the Right Company
Once you’ve decided to outsource (whether taking the offshore or nearshore route), it’s time to get some clarity about your requirements before you contact software testing companies. Consider all of the options outlined below as you research different companies.
What Kind of Engagement Are You Looking For?
Software testing service providers are useful for short, one-off projects, internal team augmentation, or as an entirely outsourced team for the right company. Your business needs will ultimately determine the duration and engagement level of your relationship with a software testing provider. You’ll want to find a provider whose delivery model fits with the best option for you.
Ask yourself: what kind of role do you want the testing provider to take on? Do you want them to consult you and advise you on your test strategy? Are you looking for more candidates to join the team to carry out your own strategy?
Make sure to have a good idea about:
- The duration of the relationship (short vs long term)
- What engagement model you’re looking for (staff augmentation vs managed testing)
- Which type of services you need (test execution, consultation, etc.)
What Are You Looking for in a Software Testing Provider?
Now that you have an idea about the relationship you want to have with the provider, it’s important to consider some of the basic qualities of your ideal software testing company.
Size of Firm
Small-to-medium-sized independent providers are firms who offer pure-play, boutique services. These can be advantageous if your business has a focused QA need because they primarily offer clear-cut software testing. They devote a large portion of their resources to deepening their testing knowledge above all else and will have a deep level of expertise. Their size means that high level executives are still very involved with client projects and day to day operations.
You can also choose from outsourcing behemoths. They can have anywhere from 500 to tens of thousands of employees. Not only do these large organizations offer QA and software testing, but they also offer software development, business process outsourcing, IT management, etc. Think Accenture and Sogeti.
You may already be set on either nearshore or offshore, but do you have a preference for a city or country? Do you want to work in the same time zone or does having the tester’s workday overlap with at least half of yours provide enough coverage? Each of these options carries its own quality and price benefits.
As mentioned previously, the location will greatly influence the rate. For example, a testing company that operates purely in the US will have much higher rates than a testing team with the same qualifications in South America, Europe, or Asia. Additionally, the skill level of the tester(s) you’re looking for will affect rates. If you want an expert in their field of testing, they’ll command higher rates, of course, than a junior or manual tester.
Do you know the values that you want a provider to have in common with you? If your team values transparency and trust on an organizational level, does the provider do so as well? You can learn more about the values of a testing company by checking their social media, website, or reviews. How do they treat their employees? What about their preferred communication style and collaborative efforts?
Is it important to you that the testers speak your language clearly and fluently? What about real-time correspondence? How much of a lag in communication would you feel comfortable with?
Evaluating Amongst Different Vendors
Today, the top software testing service providers only hold 5% of the global market share, which means the options are plentiful (and, understandably, overwhelming)! Once you’ve given the previous questions some consideration, and you’ve found a few companies that meet your basic criteria, it’s time to narrow down the list by investigating the following.
What Makes Each One Different?
Can you tell what makes each company stand out from the others? Does their offering speak to you and your needs? Some service providers position themselves as being the most affordable or quickest to get started. Others emphasize their breadth and depth of experience or their experience working with specific industries.
How often do you try a new restaurant without reading its Google or Yelp reviews first? If you’re that careful when it comes to who prepares your food, then you should be careful with who is testing your software! It’s always important to look for evidence of their ability to make their clients happy and, therefore, make you happy. It should be relatively easy to find testimonials and reviews on each company’s website.
Testing Specialties and Domain Expertise
Not all software is the same. The risks, technologies, and timelines that teams deal with vary greatly by business and industry. For example, software used for healthcare requires (amongst many things) an understanding of compliance issues and extensive security testing. Check to see if a software testing company has experience working for organizations that are similar to yours (or at least from the same sector) for added confidence in their capabilities.
Furthermore, maybe your aim is to hire a company to help you build a test automation framework. Do some digging to see if they have any case studies that show they have done it in the past. You can look on their website, or again, read the reviews on Clutch.
There are many areas of testing, so most testing companies will have different strengths. If a company professes to be 100% experienced in testing for all aspects of software quality, run!
Technology and Toolbelt
Don’t forget to check or ask each company directly if they have experience with the testing tools you prefer to use. If you’re unsure about which would be best, ask if they can do an assessment and give you a good recommendation. Consider your product and the kind of testing that needs to be performed. Do you need a whole automation framework or can simple tools to aid manual testing suffice?
It’s unrealistic for a testing company to have prior experiences working with each one of the thousands of testing tools on the market today. But keep in mind that it’s easy for a good tester to learn how to use a new tool. What’s more valuable is the mindset they adopt and their testing approach.
Extra Considerations for the Most Discerning Software Testing Services Buyer
So far, I’ve shared a whole laundry list of considerations and things to research about a prospective software testing service provider. But there are some other things to look for if you really want to have that “good feeling” about the company you hire:
- Projects that show they’re committed to the research and development of testing tools and contributions to the open-source community
- Team members and leaders who share their knowledge with the testing community via meetups, conference talks, blogs, podcasts, etc.
- Sophisticated and highly selective recruitment process with a low employee turnover rate (Pro tip: you can find this information using LinkedIn’s Sales Navigator)
- Ample employee training opportunities and career planning
- Multiple, strategic locations
- Flexibility on their part to travel to attend in-person onboardings, give trainings, host workshops, etc., so that you can connect with them face-to-face (once it’s safe to do so)
Of course, there could be several more items on this list, but I hope these points give you some extra food for thought. It’s crucial to find a provider where it’s evident that they don’t just talk the talk but walk the walk when it comes to maintaining a strong company culture. Oftentimes, this is overlooked. Culture and values can predict how well you’ll be able to work with an outsourced software testing provider. Also consider how well the testing company can adapt to your own culture and processes.
Outsourcing Best Practices
Establish a point of contact on both sides
It’s important to remember that even though you have outsourced software testing, part of your day will still be devoted to answering their emails and helping to solve problems. Something that makes a world of difference when working with an outsourced team is to appoint one person from your team and one from theirs who will be the main points of contact. These people will be in charge of making sure that everything goes smoothly and that everyone receives whatever they ask for in a timely manner, thus preventing project delays. In agreement with Karen N. Johnson in her presentation, “Managing an Offshore Team,” creating an environment where anyone feels comfortable to ask questions is essential for successful outsourcing. This way, the outsourced software testers will know exactly whom to address when working with you and vice versa.
Involve the testing team at the beginning of development, if not before
The sooner you involve the testing team, the quicker and easier they’ll be able to understand the product and what it is you’re trying to achieve in order to add value. It’s also a huge time and cost saver to start testing as soon as possible. Fixing bugs that are found earlier on costs significantly less compared to bugs found during UI tests or once in production (especially larger bugs).
Determine a strategy and project goals at the outset
Make sure to establish the testing strategy, process, test cases, timeline, etc., before starting work on your project. Without a solid plan, you may come to some dead ends and everyone will have different opinions on which direction to take next. Make sure all parties are aware of the plan. Give testers all of the information that they need to start testing, including the requirement specifications. It’s also important to set expectations at the beginning so that testers know what to aim for. How can they meet or exceed expectations if they don’t know what they are? Draw up a thorough service level agreement that covers volume of work, deadlines, downtime and availability, etc., so that there’s no room for doubt on either side.
Work to build trust
In order for the endeavor of outsourcing to work, both sides must trust one another. Trust means that there’s confidence in the fact that everyone shares the same goal, each team can count on each other, and that both sides are capable of effective cooperation.
To build trust with the outsourced team, it’s important to:
- Listen to their needs. If the outsourced team sees that you care about their concerns by listening to them, you build mutual respect. If you do what you say you’re going to do by keeping your promises, they will trust that you’re a reliable partner and will be more likely to follow through on their end.
- Be honest. Don’t give them a false reason for why you’re disappointed with a certain outcome to spare their feelings. Give them your honest feedback so that they can trust when you actually are pleased by their work.
- Get to know them as people. Your outsourced team members are humans as well. One way to build trust is to have empathy for them. Ask how they’re doing and get to know them a little bit more than just where they live and what they do. Have regular video chats to be better acquainted than you could over the phone. Simply seeing each other’s faces makes it a much more human interaction. They will appreciate you for seeing them as people first and foremost and secondly as testers.
- Get everyone on your team on board with the decision. Sometimes, your in-house tester morale may take a hit when you outsource part of your testing. Be transparent in your motivations and explain how it will only benefit them and the overall quality of your application. On the other hand, to maintain a high morale amongst the outsourced testers, invite them to your office or introduce them over Zoom to the entire team. Make them feel included as much as possible.
Treat outsourced testers as long-term partners
Sometimes when outsource hiring for a short project or contract, it’s easy to treat the outsourced team as a temporary addition to your business goals that doesn’t require much attention. But a good vendor should treat all clients equally. Make sure your outsourced software testers feel valued so that they want to do business with you again. Even if it’s a short-term project, treat them as if they were a long-term partner. You never know – you could need their services again unexpectedly in the future.
Given the various advantages of outsourcing software testing, many software engineering and quality engineering managers have turned to outsourcing as a helpful solution to their business needs.
Make sure to consider all the pros and cons to outsourcing software testing, such as nearshore vs offshore destinations. Make a list of criteria that satisfies your business goals when searching for the right testing company. There are several characteristics to look out for when evaluating your top selection of companies, such as the size of the firm, cultural compatibility, communication style, and rates. With enough careful review and assessments, you’re guaranteed to find the best software testing company that suits your needs.
And remember the best practices once you’ve finally onboarded a new external team. As with any internal team, your outsourced team requires proper management in order to provide the most value for your company. Hopefully, this article has made it easier for you to choose and work with a software testing service provider.
Fortunately, partnering with a software testing provider can help you bridge the gap between testing and development, giving developers feedback faster while also reducing costs and business risks. And that’s just the start!
Recommended for You
Read the Ultimate Guide to Continuous Testing
- Outsourcing Software Testing: What to Do and What to Avoid When Looking for a Testing Partnership
- 4 Reasons Why Agile Testing Is Key to Developing High-Quality Software Products
- Outsourcing Software Testing: What to Do and What to Avoid When Looking for a Testing Partnership
- Our Strength Lies in our Diversity
- Abstracta is recognized with the award “Talent has no Gender” for its work towards gender equality.