Software Testing - Peer Testing - Ways to improve the quality of a software product by 90%


Published on

Peer Testing is a software testing process that is done during the development of the software by a fellow developer on a daily basis for a short duration much before the software is handed off to the testing Team. This presentation explains the lessons we learnt , results achieved , what worked for us and did not work for us , how to make this work for a distributed team across different continents .

The results have been extremely positive with around 80% to 90% of reduction in the overall bugs reported.

The main benefit is the drastic improvement in the communication within the team , and the interest shown by a fellow developer in testing the code is reciprocated by his team mate which ends up in gelling the team together.

Have implemented this in multiple teams and also teams that are split across continents and this works like a charm.

Published in: Technology
  • If you liked this, you should advance to trying Pair Programming, Test Driven Development, and especially the Pairing Game. Here's one writeup of many on that:
    Are you sure you want to  Yes  No
    Your message goes here
  • Its very interesting that you are providing the concept of peer-testing along with facts plus Q/A. Way to go
    Are you sure you want to  Yes  No
    Your message goes here
  • Nice Post Magesh.
    Are you sure you want to  Yes  No
    Your message goes here
No Downloads
Total views
On SlideShare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide

Software Testing - Peer Testing - Ways to improve the quality of a software product by 90%

  1. 1. Peer Testing Presenter : Magesh Gangadharan Director of Software – Game Development
  2. 2. Peer Testing • What is Peer testing ? Peer testing is a simple process introduced within development life cycle / iteration where one developer tests another developer’s software module / story much before being handed off to Quality Assurance (QA). • Does Peer testing replace actual testing by Quality Assurance ? No Peer testing does not replace actual testing. It compliments the QA testing process and helps in finding bugs early in the product life cycle.
  3. 3. How did this process start in the first place? • We kick started a super aggressive program within our company where there was a need to hire a lot of contractors from outside to test. There was a lot of tribal knowledge about the products we make and hence a concern arose on quality . • We in the development team discussed internally and more of a trial basis decided to test each other’s product on a daily basis for a few minutes during development i.e. much before being handed off to QA for testing. • Yes this process purely started out of a need basis and a genuine willingness from the developers to improve the quality of the product going out as they took great pride in what they deliver.
  4. 4. Peer Testing Results Review • Results – What did we measure against and how? We decided NOT to consider the no of bugs identified during peer testing rather once we have finished peer testing and handed off to QA waited to see how many bugs they are able to find during their testing phase and measure the numbers against similar projects in the past where we have not peer tested before. • Results Overview As a result of peer testing what we found was bugs reduced somewhere consistently between 85% to 90 % across multiple projects where it was applied depending on how rigorously the process was adopted by the team. Lets say that previously in a project around 100 bugs were reported and now after peer testing the bugs found got reduced to somewhere between 15 to 20.
  5. 5. Benefits of Peer testing • The communication between the team improves tremendously when identified bugs are being discussed among the team. This creates an awareness among the developers on the nature of the bug and sometimes requirements are interpreted wrongly by a developer and that gets sorted out much earlier in the life cycle. A better quality product is delivered to Product Assurance. This is one big beneficiary you will see as a result of peer testing. • Developers are good testers as they clearly understand what the expected behavior of a module / story is. • When a team member finds bugs the developer who owns the module takes it well and is also provided with necessary information like core dumps / call stacks by the other developer. • When a bug is reported by QA sometimes additional information like core dumps / stack traces which are not provided in the pid. The developer asks for those details and the tester tries to reproduce the problem and then based on when he can reproduce it / not, provides the asked info. All of this takes time.
  6. 6. Benefits of Peer testing Contd. • What we have noticed is that once the developers are fully involved in peer testing , it becomes more of a sport between developers and they take it as fun. • Developers take pride in the Quality of their work and when bugs are reported by their fellow team mate they start to believe in the value of peer testing . • As there is zero to minimal documentation involved in co-located teams the developers are not troubled in writing bugs.
  7. 7. Who and How ? • • Who does peer testing ? All developers including leads participate in testing other developer’s code. • • Why should “Leads” perform peer testing? Leads need to set an example for the rest of the team and hence when the lead tests another developers code in the team others follow. • • How is peer testing implemented ? Pair of two developers who are working on two different themes/games are formed within a team and each developer within a pair tests the other person’s module /story. When a bug is found the developer who found the bug just walks to the other developers cube and let him know in person of the issue. • • • Do leads / managers need to plan for peer testing in their schedule ? Yes time need to be allocated in the schedule of each individual for peer testing. For every 2 week iteration of work in a developer’s schedule add 4 to 8 hours for peer testing. We are not expecting to re-forecast the testing time but we expect that less time will be spent in QA phase. • • • We are already behind schedule ? We don’t have time to do/ allocate for peer testing , what do we do ? If executed the bugs are going to be found early during the development phase or else they would be found during the QA testing phase. When its found late during QA testing the overall time spent on the product is more . The net result is that the product gets shipped early if Peer testing is done. If planned and executed well the quality improves.
  8. 8. When ? When does peer testing start ? • Peer testing should start as early as the deliverable is in a stable / runnable state . what has worked for us is that we allocate 3 weeks of time before handoff to QA just for Peer testing as sometimes we have seen that just by finishing a story the deliverable might not even be in a stable playable state for his team mate to test as there might be a lot of other dependencies pending. So we leave it to the developer to let know his team mate when the deliverable is ready for peer testing. How long in a day does a developer test other person’s module ? – This time is anywhere between 15 minutes to 30 minutes in a day is what is expected by a developer to test other person’s module. – One example is when the developer is compiling the code he can go to the dev lab / colleague’s cube and test the product. – When the developer wants to take a break from coding he goes to the dev lab and test his partner’s software.
  9. 9. Peer Testing Results- Discussion When and where are peer testing results discussed ? • When a bug is identified the developer reports it to his team mate right away. Daily stand ups are where each developer discusses peer testing activity so that the rest of the team becomes aware of the time spent by the developer in peer testing and the no of issues found . What happens if a lead / Manager doesn’t hear about any peer testing results from a particular team member for a while ? • The lead needs to ask the developer on his findings . Most probably the reasoning /excuse would be that the developer couldn’t find time for peer testing as he was busy with his current work. • The lead needs to insist on the importance of peer testing to that developer and can flatly dismiss the reasoning or if it’s a valid reasoning then if there is another developer within the team who is less occupied then the peer testing work for a particular module / story / for a week can be moved to that developer until the original developer who was assigned becomes free.
  10. 10. What to test ?and NOT to test? • The idea here is to have the developer test his colleague’s software on a daily basis for a few minutes. Anything that’s going to take a lot of time to just have the setup / test is not going to sustain the process of testing everyday example would be power recovery scenarios which takes a lot of time to test. The process has to sustain. • So the team needs to decide on what they would be testing and what NOT to test.
  11. 11. Where to “Peer Test” Where is peer testing done ? In target or in dev box ? Peer testing can be done both in target or in the dev box wherever it could be applicable. We prefer the test be done in target as it is a better system to test without interrupting the developer and also from a performance standpoint .
  12. 12. Documentation • Very little or No documentation is needed due to personal interaction and immediate action taken • The issues found in peer testing are NOT reported in any bug tracking tool and this is intentionally done to keep less documentation . Why no documentation ? The process of peer testing is suppose to be of less burden / fun to a developer and is more concentrated on the old school format of when a bug is found the tester walks to the developer in person and tells him about the issue. Adding details in a bug tracking tool can be time consuming and hence not entertained. Then what little documentation is involved ? – The tester maintains a simple issue list of bugs found during peer testing. – If we have two teams working in two different geographical different areas then developer A sends an email simply mentioning the different issues to developer B.
  13. 13. Challenges faced ? • Reluctance among developers to test. “ I am a developer and not a tester”. • Sustaining the process of testing everyday . The developer needs to believe that there is a lot of value in testing early. How do we handle the developer reluctance to test? Response : Everyone has to test and this is a norm going forward . This will be part of team’s best practices. When do you start to see difference among developers adoption of the process ? As bugs get reported by their peers and as well when they do find bugs in other’s module the behavior slowly starts to change and they start recognizing the value in the process.