Sanity testing is a simple test to check run through the system to ensure that the feature is deployed properly. The aim of sanity test is to probe for key known failure points from an activity such as migration, system upgrade or new enhancement deployment. The question is how should sanity test be conducted and what test coverage is sufficient.

Sanity Test Coverage
A good sanity test is a test that is quick and simple to determine if detailed testing is required. This test also provide confidence that the critical component of the application is working as expected. The sanity test is designed to cover a broad critical happy path of the application. E.g. if you are working on system upgrade, your sanity test needs to cover all the expected failure points due to upgrade rather than cherry picking of system modules or domains.
Automated Sanity Test
It is recommended to automate your sanity test if you are going to conduct sanity testing multiple times throughout the course of your system. For instance, system upgrade will require sanity testing at every upgrade. In addition, sanity test must be conducted within a day or two in order to decide if further testing can proceed. You will need to raise alarms when your sanity test takes more than two days. Thus, sanity test is usually automated for this reason
Sanity testing is a common activity for all major projects, upgrades or enhancements. The objective of sanity test is a fast and broad coverage of the functionality to be checked. Due to this reason, sanity test is becoming automated.