Sanity testing is carry out to check whether the bugs reported in previous build are fixed.
Regression testing is one of those ways, wherein all test cases are re-executed after an existing bug is fixed or a CR(change requirement) is deployed in production environment.
The main aim of Sanity testing to check the planned functionality is working as expected. Regression testing’s main aim is to acknowledge if there are any side effects due to the fix being brought in, on the relative modules or interfaces or on overall functionality of an application.
Sanity tests helps to avoid wasting time and cost involved in testing if the build is failed. Tester should reject the build upon build failure.
After completion of regression testing the Sanity testing is performed to check the defect fixes & changes done in the software application is not breaking the core functionality of the software. Typically this is done nearing end of SDLC i.e. while releasing the software. You can say that sanity testing is a subset of acceptance testing.
Since the digital discovery is being more and more mobile centric. It is important to test your mobile applications for automated acceptance testing. Also, to be aware regarding regression testing strategies of mobile web pages.