Regression testing is a selective retesting of a system or component to verify that modifications have not caused unintended effects and that the system or component still functions with its specified requirements. Furthermore, it is a testing required to determine that a change to the system components has not adversely affected reliability, performance or even functionality and has not introduced additional defects after the test.
Regression testing is a software testing that focuses on functional and unit testing. Moreover, regression testing is conducted to ensure that changes have not introduced new flaws to previously tested software. The purpose of the regression testing is to prevent the recurrence of issues due to the new change and is intended to ensure that the software functions as it did before the update or changes was incorporated. Furthermore, regression testing is designed to capture unanticipated consequences of software changes prior to deploying them into a production environment. It is usually performed after developers introduce some changes to a software system and works by comparing the test case results against baselines or benchmark results.
Software testing may involve fuzz testing, misuse testing, integration testing, systems testing and so forth types of testing besides to regression testing.