Sunday, August 16, 2009

Regression Testing and Re-testing


“Retesting of a previously tested program following modification to ensure that faults have not been introduced or uncovered as a result of the changes made.”
… BS7925-1


“Regression Testing is the process of testing the changes to computer programs to make sure that the older programs still work with the new changes.”



“When making improvements on software, retesting previously tested functions to make sure adding new features has not introduced new problems.”



Regression testing is an expensive but necessary activity performed on modified software to provide confidence that changes are correct and do not adversely affects other system components. Four things can happen when a developer attempts to fix a bug. Three of these things are bad, and one is good:






New Bug
No New Bug

Successful Change

Bad
Good
Unsuccessful Change

Bad
Bad



Because of the high probability that one of the bad outcomes will result from a change to the system, it is necessary to do regression testing. A regression test selection technique chooses, from an existing test set, the tests that are deemed necessary to validate modified software.



There are three main groups of test selection approaches in use:
  • Minimization approaches seek to satisfy structural coverage criteria by identifying a minimal set of tests that must be rerun.
  • Coverage approaches are also based on coverage criteria, but do not require minimization of the test set. Instead, they seek to select all tests that exercise changed or affected program components.
  • Safe attempt instead to select every test that will cause the modified program to produce different output than original program.



1. Factors favour Automation of Regression Testing
  • Ensure consistency
  • Speed up testing to accelerate releases
  • Allow testing to happen more frequently
  • Reduce costs of testing by reducing manual labor
  • Improve the reliability of testing
  • Define the testing process and reduce dependence on the few who know it



2. Tools used in Regression testing
  • WinRunner from Mercury
  • e-tester from Empirix
  • WebFT from Radview
  • Silktest from Radview
  • Rational Robot from Rational
  • QA Run from Compuware



If you have any quarries/feed back send me on - rampeddireddy2006@gmail.com, ram@examsinfo.in.

Thank you
Ram

1 comment:

  1. Thanks for the post on this mostly used topic. In my opinion:

    Regression Testing is the execution of all or a select set of test cases which have passed on the previous build or release of the application under test in order to validate that the original features and functions are still working as they were previously. These tests normally will not have already been executed against the current build or release as normally only the new features and functions are tested prior to regression testing.

    Retesting is the execution of one or a set of test cases which previously failed due to a suspected defect in the software which now is documented as being remedied.

    Source: What is the difference between Regression Testing vs Retest?

    ReplyDelete