Regression Testing:- Regression testing is done in order to ensure that after bug fixation or enhancements done in module has not affected the unchanged part of the code. Its a kind of verification to ensure that reported bug has been fixed and newly added functionalities doesn't affect the previous working version.
Regression is done when developer fixes the bug or adds new functionalities. Regression testing doesn't aims to a specific bug fixing but a specific area/module for full regression testing in which complete testing is done including test cases which passed earlier. Regression test cases are taken from functionality test cases which are are used to execute to ensure that main functionality works as required Retesting:-Retesting is done to test the reported bug whether it has been fixed or not. To test that bug has been fixed we use the test cases which failed in last execution.