Pair Testing In Software Testing – A Benefit Or A Drawback?
There is a lot of controversy among software developers around ensemble programming. Many claim that pairing software developers on a common task is beneficial. Several developers joined together can better apply their knowledge which allegedly reduces the need for code review, provides faster knowledge transfer and reduces the number of errors in the code. On the other hand, there are others who claim that pair programming is just a time consuming nuance which provides no better results than individual work. My question is: what about pair testing? Is pair testing also detrimental to software development process or does it provide some benefits?
What is pair testing?
Pair testing in software testing is when two or more team members join together on a single computer to test a feature. The team members in pair testing could be developers, quality engineers, people from business side of the team or any combination of them. The idea behind this concept is to have another set of eyes on a feature to make sure it is ready for release.
Successful implementation
To implement it successfully, as a tester you will need to prepare before the session. Inform yourself about the feature you will test. Read the requirement thoroughly and ask business analysts all the questions to get a better picture about the feature. Write down a few test cases you need to go through.
Sometimes, you will test just a part of the feature and that is fine. Your preparation about the feature in general will give you high quality topics to discuss during testing. If you are doing pair testing with the developer who worked on the feature discuss with him where the testing will take place. Are the changes committed to the QA environment or they are still on developer’s machine only? Quite often pair testing is being done on local environment of the developer before any commit takes place.
The actual test can be conducted in several ways. The test initiator (let’s presume it is the developer in this situation) can lead the testing as a walkthrough with you sitting nearby. You can ask questions about the feature, look at code and go through the most critical parts of the code. You can even discuss the code complexity or unit testing coverage at this point. The second option is for you to take over the driver’s seat and do the testing on the developer’s machine. The developer just needs to briefly explains how everything works before you start.
The benefits of pair testing
When I first started learning test automation I was told that creating a test automation framework is time consuming at the beginning but it brings a lot of benefits later. QA engineers usually accept this because they see those benefits after some time of using the framework. The same applies to pair testing, although there are still people who don’t believe it.
In the above scenario, the developer gets an early feedback about the feature. He has the opportunity to resolve all the issues before committing the code. QA engineer has an opportunity to test the feature in early stages of development just like in Shift Left approach. We can determine that the code is too complex for testing or maintenance and initiate refactoring. Another benefit is that the developer can see our approach to testing which helps improve his own testing ability. We can find some additional edge cases which could be covered by unit tests.
The downsides of pair testing
Pair testing just like pair programming can take a good part of work day. It is important to limit the testing to an acceptable length. No one expects you to test in pair for the entire day. That would be tiresome and counterproductive. Without a good preparation it can take longer than expected, so it is important to prepare prior to the session. Remember that this testing session is conducted to find defects in the code. Sometimes it is difficult to track defects while doing testing, so you should write down short notes about things which need to be fixed.
Conclusion
Pair testing requires some adapting to it but in an agile testing environment it provides great benefits. All sides included in the process can elevate their knowledge about system under test. The shortcomings of this approach can easily be avoided with good planning. The benefits of pair testing should be visible immediately although it should provide even better results with maturity of the team.