Today we will address a delicate subject: the outsourcing of tests. There is already an article on the outsourcing of mobile tests in the tavern, do not hesitate to read it.
The article approaches this subject differently. Outsourced DevOps testing is always a possibility, it is still necessary why and when to do it, but also how to prepare it. Because outsourcing your tests without preparation is sabotaging this outsourcing.
Note: we will talk here about outsourcing the execution/analysis/maintenance of tests but not their design.
Why outsource your tests?
There are several reasons why you may want to outsource your tests, here is a non-exhaustive list:
- We want to have strong independence from tests. The independence of tests is an important point that is well explained in the ISTQB syllabus. The more independent a test is, the more biased it is. The counterpart is often a weaker knowledge of the application.
- We want to be able to test on a very large number of environments (or devices) and it is impossible to have the necessary environments and hardware. We are talking about adaptability. This problem is common with consumer mobile applications. In this case, outsourcing tests can be a solution just like beta tests.
- Test skills are not available. This point can often happen when it comes to testing automation.
- The production quality of my application is not there. This partly meets the previous point.
- We want to speed up the execution time of the tests. This can also be a valid reason in the event that the campaign requires a large number of man-days (e.g. 40 days/men) of work and the number of testers available (e.g. 2 testers) does not allow all tests to run quickly enough (1 week of campaign).
- Reduce costs. This is also a reason why we may want to outsource. This reduction in costs can be achieved by eliminating the need to purchase certain licenses.
What to do when you want to outsource your tests?
There is no miracle formula. Nevertheless, certain actions/good practices are necessary:
- Plan upstream (preferably as soon as the test plan is developed) for the outsourcing of the tests in order to properly prepare it. Outsourcing is not done lightly. This is an important decision that guides the way we work and must be prepared. This point limits the risk of lack of knowledge of the new team and lack of communication.
- Keep certain test activities (such as the design and execution of validation tests). This limits the risk of loss of team knowledge and dependence.
- Keep at least one referent on the tests in order to dialogue with the external client. This action greatly reduces the risk of loss of consciousness, dependence but also lack or poor communication.
- Have good documentation of the software as a whole as well as tests to outsource very well written and documented (not subject to interpretation). This is essential because testers will not know the software or the context. It will be impossible to count on the knowledge of the internal tester who knows the application perfectly! This part limits the risk of lack of knowledge of the external team.
- Allow time for a passage of knowledge between teams. Unfortunately, this time is too often underestimated but remains necessary. This limits the risk of lack of knowledge and delay problems due to increasing the competence of the external team.
- Engage with a trusted partner with whom it will be possible to establish real collaboration. This may seem obvious or futile but it is important to remember it. It is also one of the 4 points of the agile manifesto (collaboration more than contracts). It is also necessary to ensure that its potential partner has the necessary means to turn to software testing outsourcing services that we can hardly do internally. Choosing the right external partner allows you to limit the risks of knowledge (with a partner experienced in the test), communication (with good collaboration) but above all avoid exchanging only around the contract.
There are a very large number of reasons to outsource your tests. However, it must never be done lightly, and always prepare well for this outsourcing. In order to properly prepare for this outsourcing, we must identify why we want to outsource and what our needs are. This part should be done when the master test plan is established. This outsourcing must then be anticipated and prepared by offering simple, clear, and reliable documentation and tests. You must also be careful to always keep the knowledge of the tests within the team and choose your partner to outsource your tests, a partner who must be in an approach and collaboration but also in the ability to carry out these tests well (tools, environments, staff…)