We all have heard about Pair Programming and its advantages. Pair Programming is a practice where two programmers pair up to code a certain task. While one focuses on the “tactical aspects” of writing code, other focuses on the bigger picture – strategy, bottlenecks etc. Though it takes more time, this approach helps reduce defects and helps develop more diverse solution.
Personally, I love Pair Programming. Its my preferred way of coding and I am always up for it, if the other developers are ready. I like the exchange of ideas, white boarding, the aah moments when you suddenly realize the ingenious solution your partner was trying to explain all along. Every time I come out of Pair Programming session I emerge as a better programmer.
Lately, we have started Pair Testing and we are seeing similar benefits. Below are some reasons to try Pair Testing –
1. Exploratory testing on steroids
When you are Pair Testing, while one person is testing a certain scenario, the other person is constantly reviewing it and at the same time thinking about many other variables relating to the user story. This leads to more ideas (literally firing of neurons in their heads!) and ultimately results in testing of scenarios and edge cases that otherwise might have got unnoticed. And, while the other tester is trying to test new scenarios, the former would do the same. This will result in more defects found in the lower environment it self. Other than defects, it will also help you understand the system better – its strength and weaknesses. Next time, when defects are reported in production, its quite possible that you would be able to tell the root cause even without investigation! That’s why I like to call this exploratory testing on steroids!
2. Free flow of knowledge
We all like to take pride in our knowledge. But lets face it, there is always something new to learn. More so in the corporate set up where you find yourself working on new projects more often than you like. Even in the same project, different team members could have varying levels of knowledge on different modules. With Pair Testing, there is a free flow of knowledge that helps you learn new concepts, systems or modules very fast – faster than reading any documentation (if they exist!). Learning from the person who has been doing it for a while and implementing it at the same time is the best way of learning any thing in the world. For new joiners, I think this should be the de-facto approach to integrate them fully into the team. They can learn maximum about the system in shortest possible time by pairing up with fellow testers.
3. Mentor-Mentee relationship
If I have to choose my personal favorite, this would be the one. With the explosion of tools, frameworks and philosophies in the market, juniors need a good mentor now more than ever, who can help them wade through the initial years of their careers which could be easily wasted in focusing on wrong things. You might ask – but what this has to do with Pair Testing? Well, when you Pair you Share! (LOL, Am I being poetic here? Sorry about that). You share ideas, approaches and experiences directly or indirectly. It helps build a rapport among the team members. They know each other better and are comfortable with each other. And once they are comfortable, they can easily ask and provide guidance. Team meetings are great but never underestimate the power of one-on-one interactions and resulting development of relationships.
4. Discover new approaches and tools
There are many different ways of achieving the same goal and some are better than others. At times, my approach to a certain task have made me feel like I belonged to primitive age when I realized how efficiently my team members have been doing the same thing. Same goes with tools. When you pair up, you have full exposure to your partner’s approach. Let’s assume that you have always been querying three different database tables to validate a certain data load process and your partner just queried a materialized view (read single table) that loads data from these tables. The presence of data in the view means that data is also present in those tables. What a waste of time, isn’t it? On similar lines, you might find your partner using some chrome add-in or open source tool that basically automates the work you have been doing with considerable manual effort. Take SelectorsHub for example – it automates the creation of CSS and XPATH selectors which greatly accelerates the automation scripting process. Yet another example is of mind maps.Some testers like to maintain mind-maps of their system. It helps organize the knowledge and simulates thinking. Let’s assume, you never knew about this and your partner helped you introduce you to this fantastic tool. Now, you make mind maps even for your stock trading! You cant imagine your life without it.
These are my top reasons for Pair Testing. I am sure there are many more. Are you doing Pair Testing in your project? If not, would your try it now? Either way, share your experiences in the comments section. Let’s learn from each other’s experiences!