When we do smoke and sanity testing

Smoke and sanity testing are both types of software testing typically performed at different stages of the development process. Here’s when each type of testing is usually conducted:

Smoke Testing

  • After a new build: Smoke testing is often performed immediately after a new build is created or deployed.
  • Before accepting a build for further testing: It’s used to quickly determine if a build is stable enough for more extensive testing.
  • Daily builds: In continuous integration environments, smoke tests may be run on daily builds.
  • After major changes: When significant changes are made to the codebase, smoke tests help ensure basic functionality still works.
  • Before releasing to QA: Smoke tests are often run before handing off the software to the QA team for more thorough testing.

Sanity Testing

  • After receiving a new build: Sanity testing is often performed when a new build is received from development.
  • After bug fixes: When bugs are fixed, sanity testing helps ensure the fixes work and haven’t introduced new issues.
  • Before regression testing: Sanity tests may be run before starting a full regression test cycle.
  • During later stages of testing: Sanity testing is typically done in later stages of the testing process, after smoke testing but before more comprehensive testing.
  • Before release: A quick sanity check might be performed just before releasing the software to ensure critical functionality is working.

Key differences

  • Smoke testing is broader and less profound, while sanity testing is narrower but more in-depth.
  • Smoke testing is usually done earlier, while sanity testing often comes later.
  • Smoke testing checks if the build is stable enough for further testing, while sanity testing focuses on specific functionality, especially after changes.

Both types of testing are important for quickly identifying major issues and ensuring the software is ready for more comprehensive testing or release.