Getting Started with Outsourced Software Testing
What’s it like to start a relationship with a software testing partner? Lucia Lavagna shares how we set the stage for success.
At Abstracta, I work with a handful of our clients daily, making sure that their needs are met and that our engineers are working well with them, being aligned as far as processes, communication, objectives and so on. I also meet with companies who are looking into finding a partner for testing. Many times, they ask me about what a relationship between us would look like and how we’d manage testing.
So, here’s a peek into what we have found is a successful approach to getting started with managing a client’s testing, facilitating Agile development, and building long lasting relationships.
There are two different scenarios when we start working with a new client. The first of which is when the client may have some testers already but are looking to fill a specific need, for example, they need help with creating an automation framework or running functional or performance tests. We’ll start by getting everything set up and running, integrating with their team and processes without losing any momentum. As the relationship grows, we make sure to take care of their specific needs while also providing an opportunity to identify other areas for future improvement.
Then, the other scenario is in which the client is looking for more guidance on how to manage testing as a whole, how to prioritize what to test and how, what tools to utilize, good practices and methodologies, and what kind of roles they should bring onto the team. We love this kind of opportunity because we are passionate about spreading our knowledge to help organizations create high quality, reliable software, in the best way! It’s all we do, after all. Big proponents of agile development and testing, we aim to help companies as much as possible to “shift-left” testing.
So, how do we help these types of clients? First, we want to understand their business context, what resources they currently have, what they want to achieve, etc. After getting a good understanding of the client’s goals and context, we carry out an initial assessment, with the goal of further understanding the inner workings of their technical activities and processes.
The initial assessment is based on our testing maturity assessment which we’ve built upon our testing maturity model and methodology. The model is based on the experience we’ve obtained after 10 years of working for various startups to Fortune 500 companies like CA Technologies, Shutterfly, and Verifone. It takes into account the best practices championed by industry leaders, synthesizing them with our own, to create a methodology for determining the proper actions that will bring about the best benefits for teams in the shortest time possible. More specifically, it helps us have a notion of the level of maturity the team is at, and to determine what steps to follow in the pursuit of a continuous testing and continuous integration environment.
There are several software quality engineering areas, and activities that can be carried out, that will help any organization to reach an efficient agile testing and CI scheme.
Our analysis focuses on reviewing the current status of these key areas:
- The source code
- Environment and infrastructure
- Bugs and incident management
- Test management
- Functional testing
- Automated checks
- Performance testing
- Security testing
- Usability testing
After getting a sense of the client’s management of these areas, we then build an action plan to outline a testing strategy, with all of the necessary activities, in order of those with the highest priority to the least, and the types of tests to be carried out.
Here’s a graphic that shows this whole initial process:
According to the mutually agreed upon action plan, and the particular project, some of the aims of testing may include:
- Finding potential problems of the system and its use, which can include programming errors, misunderstanding of the business logic, requirements (according to specification documents) or user expectations, problems with the configuration or environment set-up (in any environment where testing is involved, such as testing, staging, and production), etc.
- Starting testing activities as early as possible, reducing the probability of finding errors during systems integration, making them easier and less costly to solve
- Detecting usability problems according to modern heuristics and verify that the user interface is easy to use
- Verifying response times and resource consumption according to the requirements and user expectations
- Controlling security aspects of an application, looking for potential vulnerabilities before they get exploited
These objectives help to shift to a continuous feedback culture, where the information about all quality aspects that matter is accessible in time and with confidence for any team member. For us, this is where the magic happens; when DevOps, Agile, CI/CD and testing come together!
The next step we take is to assign a delivery manager to be the main point of contact with the client and centralize communications. The delivery manager will then assign a team based on the defined plan and to put the strategy into place. The types of tests to be carried out and technical complexity are taken into consideration to assign the most adequate resources to ensure a successful delivery. If priorities change or new needs arise, the delivery manager will adjust the assigned team accordingly.
One of the best advantages companies experience when outsourcing all or part of their testing is the ability to scale up and down the outsourced test team, according to their needs. For example, we help ecommerce companies to ramp up their load testing efforts in due time before Black Friday. Not only is there flexibility with the ease of adding or subtracting team members, but we can look to the knowledge and various skill sets among all of the testers at Abstracta.
Make it a Success
If you are just starting to look for a testing provider, and want to make sure you make the right choice, we recommend having more than one discussion with the companies you are evaluating to make sure they share your vision, culture, preferred management style, and so on! While we believe it’s important to deliver software quickly without rushing it out the door, it’s also important to find the right company for you to help make that happen and be in it for the long run. Sometimes companies make mistakes that jeopardize the success of their partnership, as well as believe some common misconceptions about outsourcing that prevent them from taking full advantage of it.
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!
Have any questions about working with outsourced testing teams? Leave a comment below!