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.