Friday, November 9, 2012

Patterns of Testing in GSD


You can download the original paper from : Patterns of Testing in GSD
You can download the presentation from : Patterns of Testing in GSD

 
   Global Software Development(GSD) is a widely used approach in software development. Nowadays every large company wants to have their sites in a low cost development areas like India and China. This provides them with the benefits such as low labor costs, access to a large workforce, and time zone effeectiveness. Compared to co-loacted software development projects, GSD projects face additional problems like the geographic, temporal, cultural and technological differences.

   The impact of GSD on testing is one fiels that has been researched very less. This paper is an attempt to get closer to the solution. Here the authors have discussed some of the important patterns of testing that are used in a GSD scenario.

Pattern 1: Light weight pre-acceptance test

Problem: How do you prove functioning of the system when you assign complete system test to the offshore test team but the final responsibility of the project lies with you..?

Forces:
  • The on-site PM may not be willing to invest a lot of money on the on-site team.
  • The trust issue is always there. The on site manager may not completely trust the off-site guys..

Solution:
  • Name one On-tester who knows in and out of the system.
  • After tested system is again re-checked by the on-tester.
  • The on-tester performs light weight pre-acceptance test.
  • The on-tester reports bugs to the off-testers.
  • The off-TM takes this input and writes more test cases.
  • Once the pre-acceptance test reaches the end, it can be given back.

Benefits:
  • Light weight, quick quality check of systems.
  • Early feedback of off-TM if off-test is efficient.

Risks
  • When the pre-acceptance test is made can be an issue..


Pattern 2: Extension of day

Problem: How do you set up the testing/bug-fixing process efficiently when you have a time difference between the teams..?

Forces:
  • Testing and bug-fixing are alternating tasks that depend on one another.
  • During bug-fixing questions might occur that might have to be answered by the tester.

Solution:
  • After development the system is handed over to the on-tester.
  • The off-tester executes the test and documents found bugs.
  • When off-developer starts his work the next day, he can have the test results and can work on fixing them.
  • At the end of the day, the off-developer updates the bug fix status.
  • And now, the on-tester can again start testing at the start of his day.

Benefits:
  • A longer day, reduction in duration of test/bug-fixing.

Risks:
  • The tester might not be available.
  • GSD specific characteristics
  • Time zone differences.


Pattern 3 : Tester’s sparring partner

Problem: How do you ensure test coverage when off-testers are very specialized..?

Forces:
  • The off testers can lack creativity.
  • They may view beyond ones own nose.
  • The TM needs to be able to rely on completeness of the test accomplished at the off-site.

Solution:
  • Organize a formal review process.
  • An expert is assigned to take up the role of a sparring partner.
  • This role can be done by someone who knows the specs exactly. Preferably a person who knows both sides of the coin.
  • The sparring partner acts as the mediator between the test team and the developer team.
  • Once the tester gives a list of bugs to the partner, he views the bugs, sees for the completeness and if necessary modify or add his own bugs out of the scope of the tester.
  • Ideally there should be one sparring partner per tester.

Benefits:
  • Reduces risk of low coverage.
  • More confident tester as expert for the system is available for questions.

Risks:
  • Cut back of the role of the sparring partner.
  • Communication between the sparring partner and the tester not efficient because of specialization.
  • GSD specific characteristics
  • Very strict differentiation of different careers such as tester or developer in India.

Using these patterns

The patterns can be linked to each other using some of the relations like 'requires', 'recommends', 'complements' or 'excludes' as shown in the diagram below.

Relations between various patterns

Advantages of knowing these patterns

  1. The gap in literature is reduced, where so far little has been reported on the challenges and solutions for testing in GSD.
  2. With the problem solution summary the user gets an overview.
  3. If the user knows the patterns, he can combine them and use them to set up a tailored solution.

No comments:

Post a Comment