Regression testing is the process of re-running functional and non-functional tests to ensure that previously developed and tested software still performs after a change. If not, that would be called a regression.
What are some techniques to run regression tests?
Retest all: This technique checks all the test cases on the current program to check its integrity. Though it is expensive as it needs to re-run all the cases, it ensures that there are no errors because of the modified code.
Regression test selection: Unlike Retest all, this technique runs a part of the test suite (owing to the cost of retest all) if the cost of selecting the part of the test suite is less than the Retest all technique.
Test case prioritization: Prioritize the test cases so as to increase a test suite's rate of fault detection. Test case prioritization techniques schedule test cases so that the test cases that are higher in priority are executed before the test cases that have a lower priority.
Hybrid: This technique is a hybrid of regression test selection and test case prioritization.
Also see Continuous Quality.