Quality is delighting customers
Retesting: It is a type of testing in which one will perform testing on the same functionality again and again with multiple sets of data in order to come to a conclusion weather the functionality is working fine or not.
Regression Testing: Regression testing is a type of testing in which one will perform testing on the already tested functionality again and again usually its done in two main scenarios
Scenarios 1:When ever the defects are raised to the development department, after rectification next build is released to the testing department then the test engineer will test the defect functionality as well as the other related functionality once again.
Scenarios 2:Whenever some new features are added to the application next build build is released to the testing department then the test engineer will test the new functionality as well as the other related functionality once again.
Sanity Testing: The terminology changes according to different companies, as per my knowledge her is my definition
Sanity testing is also known as Build Acceptance testing (BAT) or Build Verification testing (BVT)
It its type of testing in which one will conduct the over all testing on the released build in order to confirm weather the build is proper or not for conducting detailed testing, below are the most possible things
1. Weather the build can be properly installed on to the environment or not
2. Weather one can navigate to all the pages of the application or not
3. Weather all the important functionality are available or not
4. Weather all the required connections are properly established or not
Some companies even call the above as "Smoke" testing
But some companies say, before releasing the build to testing department the developers will check weather the build is proper or not i.e called as "Smoke" testing.
Guys I am giving the above info as per my knowledge. Please correct me if I am wrong.