Smoke test VS Sanity test

The primary objective of any software project is to get a high-quality output while reducing the cost and the time required for completing the project.

To achieve that, the company defined a test strategy with different levels and types of tests and each software test type has its purpose and is performed in different builds. In this article, we will define two test types; the smoke test and the sanity test and the key differences between them.

First of all, let’s define what is a software build?

A build is a process of converting all source code that makes up an application and compelling into a standalone software artifact that can be run on a computer.

To make it easier In a programming context a build is a version of a program pre-released and it’s ready to be handed over to the QA team for testing. Each time developers fix anything in the code or add new functionality it goes in the same process.

There’s always a risk that the build doesn’t work correctly due to several issues like environmental issues, code issues and configuration issues.

Especially for the initial builds, it’s mandatory to confirm that the preliminary stage builds are stable.

So it’s subjected to basic testing before it’s sent to other levels of testing and this is called smoke testing.

Smoke testing  

It’s also known as build verification testing which is a test suite that covers the critical functionalities of a system to determine whether it works properly before planned testing begins.

The phrase smoke test comes from electronic hardware testing. You plug in a new board and turn on the power. If you see smoke coming from the board, turn off the power. You don’t have to do any more testing

Lessons Learned in Software Testing(Cem Kaner, James Bach, Brett Pettichord)


Let’s consider that you were given a simple chat application to test, the critical functionalities to test are:

login, sending messages, receiving messages …

So if there are any issues with these basic features it has no sense to go further with testing then the build is rejected.

Considered points:

  • not exhaustive testing
  • automation or manual testing 
  • performed by developers/testers
  • build verification testing

Sanity Test 

Performed after receiving a software build, (with minor changes in code, or functionality) and it’s carried out to check whether the functionalities are still holding the same way before any regression was implemented.


Considering the same chat application, in advanced stages, they decided to add the possibility of chat groups. Here the sanity test is performed to check that there’s no impact on the module sending and receiving messages.

Considered points:

  • a limited number of test cases
  • no documentation is required
  • performed by testers
  • a sub-set of regression testing

Key differences:

Smoke testSanity test
Performed to verify the critical functionalitiesPerformed to verify new functionalities/bugs
Done in initial levels Done when the build is stable
Executed by developers/testersExecuted by testers
A subset of acceptance testingA subset of regression testing
Documented testsNot documented tests

Success! You're on the list.

+ posts

Software QA engineer, blogger |ISTQB®|SMC™

One thought on “Smoke test VS Sanity test

Add yours

Leave a Reply

Up ↑

%d bloggers like this: