Background – software regression testing
Regression testing is carried out to ensure that a system or an Application Under Test (AUT) behaves as expected after enhancements or bug fixes. Testing activities occur after software changes and regression testing usually refers to testing activities completed during the software maintenance phase. The key objectives of regression testing include retesting the changed components or parts and then checking the affected parts and components. Regression testing is performed at different levels—unit, integration, functional, and system.
Regression testing is needed for various reasons, such as the following ones:
- Incremental code changes in a project or release
- Major releases or projects going live
- Emergency production fixes
- Configuration and environment changes