In a situation where a software product
is under development, regression
testing is essential in discovering (and fixing) new defect
s 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.