What is :-
Regression testing ensures that quality of software is not disturbed because of the changes made..
Regression testing is used to ensure effectiveness of fixed bugs in the Application. Which means when a tester finds the bugs in the application and the Programmers have Fixed-It, at that time Regression testing comes in the act to retest the same module. Regression is a Quality control plan which ensures that newly modified code complies with Specified requirement.
Why to do :-
When you fix a Bug, it can create a new bug.
Every Module in Project are Related with each other. A Change in one module of application can affect other module. So, when a new modified Code is compiled with unmodified code it will create or not create any new issue. Whenever changes happen to software, we do regression testing to ensure that there will be no effect on the existing functionality of the application.
Note: Because of continuous Change in the application, it is very important to do the regression Testing.