Part of a series on |
Software development |
---|
Regression testing (rarely, non-regression testing[1]) is re-running functional and non-functional tests to ensure that previously developed and tested software still performs as expected after a change.[2] If not, that would be called a regression.
Changes that may require regression testing include bug fixes, software enhancements, configuration changes, and even substitution of electronic components (hardware).[3] As regression test suites tend to grow with each found defect, test automation is frequently involved. The evident exception is the GUIs regression testing, which normally must be executed manually. Sometimes a change impact analysis is performed to determine an appropriate subset of tests (non-regression analysis[4]).
Testing activities that focus on regression problems are called (non) regression testing. Usually "non" is omitted