Regression testing, also referred to as verification testing, is the selective retesting of a software system that has been modified to ensure that any bugs have been fixed and that no other previously working functions have failed as a result of the reparations and that newly added features have not created problems with previous versions of the software.
Regression Testing and Patches
Regression testing is initiated after a programmer has attempted to fix a recognized problem or has added source code to a program that may have inadvertently introduced errors. It is a quality control measure to ensure that the newly modified code still complies with its specified requirements and that unmodified code has not been affected by the maintenance activity.
This type of software retesting is a common approach taken by developers after patches or bug fixes have been developed. In this scenario, regression testing will ensure the changes do not adversely affect the software or system or create problems elsewhere in the application.
While there are no clear regression testing procedures for all software and scenarios, common strategies include the following:
- Test big fixes immediately
- Watch for newly introduced side-effects
- Regression test each bug
- Focus on functionality
- Develop a library of tests to run with each new version of the program
- Trace, track and log everything