What is Sanity Testing?

Sanity testing is testing a software application subjected to bug fixes or minor enhancements to verify that the modifications work as expected. If sanity testing is successful, further testing is performed. If it fails, the application is sent back to the developers for debugging.

Like smoke testing, sanity testing avoids wasting time and effort by quickly determining whether an application is sound enough to merit rigorous QA testing.

Sanity testing is often confused with smoke testing.

An Example

Let's understand sanity testing through an example.

Suppose you develop an online food ordering application, and you want to offer a 15% discount on Christmas (25th December) for your members having a premium membership.

The sanity testing will verify the following:

  • Premium members get the discount on the 25th.
  • Members, who add the premium membership to their food orders on the 25th, also get the deal.
  • Non-premium members do not get the discount on the 25th.
  • No member receives that rebate before and after the 25th.
  • Other discount coupons continue to work.
  • Premium members, who opt for other deals, do not get the Christmas deduction.

Sanity testing does not verify other areas of the application like restaurant reviews or delivery tracking. That is done by smoke testing and regression testing, which happen before and after sanity checking.

If the sanity checking fails, the application is sent back to the developer for troubleshooting. However, if the verification succeeds, the application is sent for regression and system testing.