Regression Testing is done to find out the defects that arise due to code changes made in existing code like functional enhancements or configuration changes.
The main intent behind regression testing is to ensure that any code changes made for software enhancements or configuration changes has not introduced any new defects in the software.
Anytime the changes are made to the existing working code, a suite of test cases is executed to ensure that the new changes have not introduced any bugs in the software.
It is necessary to have a regression test suite and execute that suite after every new version of software is available.
Regression test suite is the ideal candidate for automation because it needs to be executed after every new version.