Behind the veil of Colorado's premier Interactive Agency

Reducing Regression Testing time Mike Girenko

February 18th, 2008

Regression Testing is a necessary part of any QA process. When a new functionality is implemented, there is a chance that it might break an existing functionality. The goal of Regression Testing is to find defects in an existing code.
The problem with Regression Testing is that it is the most time consuming type of testing. Ideally, a tester needs to exercise all the existing functionality in an application under test, which, based on a size of an application, can take from few hours to few days. In the real life, most of the times there is not enough time to do Regression Testing. There are several ways to reduce time spend on Regressing Testing:
1. Automate Regression Testing. Using automated tools (like QTP, Rational Robot, WATIR) reduces time spend on Regression Testing from hours to minutes. Assuming that automated scripts are comprehensive enough, all the existing functionality gets tested (although it is hard to accomplish). Automated scripts are very repetitive, which helps with finding inconsistencies in functionality. The disadvantages of Automated Testing are the time required to create and maintain automated scripts and also the nature of automated scripts-an automated script cannot “think” as a human and cannot analyze the testing activity, leaving possibility for missed defects
2. Reduce the number of Regression Testing Test Scripts by executing test cases covering only most common and highly visible functionality. It certainly helps with reducing time spend on Regression Testing, but it also means that not all the existing functionality gets tested 
3. Ask development team about changes to functionality. It may help to determine what functionally to test (if there was a change to functionality, it needs to be tested), and what not to test (if there was no changes to a functionality, then you might skip it). This approach helps with reducing Regression Testing time, but there is a risk that a tester might miss a defect in a module that was not tested.

Mike Girenko

Share and Enjoy: These icons link to social bookmarking sites where readers can share and discover new web pages.
  • Digg
  • Reddit
  • Slashdot
  • del.icio.us
  • StumbleUpon
  • Netvouz
  • ThisNext

Post a Comment