In a situation where a software product is under development, regression testing is essential in discovering (and fixing) new defects introduced during coding, usually as a result of adding or fixing code.

Ideally, every change in the product, regardless of how minor, would be verified by thoroughly and rigorously re-testing the whole product to ensure no new bug has been inadvertently introduced and that the requirements specification is still met. Automated testing, with little or no human intervention, is usually the only economically feasible approach to take with regression 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, and that the modified system still meets its requirements. It is performed whenever the software or its environment have changed.

In other words, running the test scripts that succeeded before to see if they still do.

Usually contrasted with retesting, which is running the scripts whose failure pointed you toward the bugs in the first place.

Log in or register to write something here or to contact authors.