The Ultimate Guide to Smoke Testing vs Sanity Testing

There are differences between smoke testing and sanity testing:

This section will discuss Software Testing smoke and sanity testing; and the main differences.

Software testing will show that testing performed in the initial phase (Software Development Life Cycle) of the SDLC (Software Development Life Cycle), is cost- and time-saving.

Smoke Testing, Sanity Testing, and other types of testing are important to ensure that bugs and problems are discovered early in the development process.

We often get confused between the terms Sanity Testing vs Smoke Testing. First, they are very different in how they are performed and what each phase of the testing cycle looks like.

It is important to first understand the terms Build and Release before you can fully appreciate the smoke and sanity tests.

broken image

What is build?

Build is software that has a set of bugs or features and is used in manual testing. It is then installed on a test server to verify stability.

Also, the build is used for changing the code to the application format. Each new build will contain an improved version of the previous build.

What is release?

It is a very common term in software testing. Release refers to a finished product or project that is delivered to the customer.

It includes all activities starting with the Requirement, Designing and Development phases, through to the Testing phase, when it is finally handed over to the customer.

Also, a release can be described as an application that has been fully developed, while a build is merely a part of the application or software.

Smoke Testing:

Although it is not an exhaustive test, smoke testing is a set of tests that is used to confirm that the build's basic functions are functioning as expected. This should be the first test that is performed on any new build.

It is impossible to test all of the builds that are released by the development team to the QA for testing.

How will QA ensure that basic functions work well in light of all this?

Only after the smoke tests have been marked in the test suite as passed, will the build be approved by the QA team for further testing or regression. The build will be rejected if any of the smoke test fail. In that case, the development team must fix the problem and release a new build.

The Smoke test, which is surface-level testing that certifies the build has been submitted by the development team to QA is ready for testing, can be thought of as a certification. The development team also performs this testing before releasing the build for the QA team.

This type of testing is used for Acceptance Level Testing, System Testing, Integration Testing. This testing should not be considered a replacement for complete end-to-end testing. It can include both positive and negative tests, depending on how the build is implemented.

Smoke Testing Examples:

This is used for Acceptance, Integration, and System Testing.

As a QA professional, I accepted builds only after having performed a smoke test. Let's look at each of these tests from a different perspective and give you some examples.

#1) Acceptance Testing

A smoke test should be performed before a build is sent to QA.

The first and most important smoke test in this test is to verify that the implementation works as expected. You will need to check all implementations for this build.

Take the following examples as an example of implementations in the build to understand smoke tests for those:

To allow registered drivers to log into their accounts successfully, we implemented the login functionality.

Implemented dashboard functionality to show drivers the routes they are required to take today.

Implemented the functionality that would show an appropriate message to users if there are no routes for a particular day.

The smoke test is used to verify that the three main implementations work fine in the build. The QA should reject any build if one of these three is broken.

#2) Integration Testing

This testing occurs when individual modules have been tested and implemented. This testing is done at the Integration Testing level to ensure that all basic integration and end-to–end functionalities work as expected.

It could be the integration or combination of all modules, so the complexity of the smoke test will depend on the level of integration.

Here are some examples of integration implementations for this test:

Implemented integration of stop and route modules.

Integration of arrival status update implemented and it reflects on the stop screen.

Integration of the complete pick-up and delivery functionality modules.

The smoke test in this build will not only verify the three basic implementations, but also verify the integration of a few cases. It is very helpful to identify the integration issues and those that were not noticed by the development team.

#3) System Testing

The name suggests that smoke testing is performed at the system level. It includes the tests for the most critical and frequently used workflows. This testing is only done after the entire system has been tested and is complete.

The basic end-to–end features of the system are first tested in the smoke test before starting regression. The complete smoke test suite includes the end-to end test cases that end-users will use most often.

What is Sanity Testing?

This test is done to verify that the build has been updated correctly. In general, it is done on stable builds. It can also be called a variation of regression testing.

Sanity testing is intended to verify that planned features work as expected. To save time and money, the build can be rejected if it fails to pass the sanity testing.

Difference Between Smoke Testing and Sanity Testing

broken image

SMOKE TESTING

This type of testing was originally used in hardware testing, where a new piece or hardware is turned on for the first time. If it doesn't catch fire or smoke, it is considered a failure. This testing is used in the software industry to test all areas of an application.

Smoke tests can be scripted using either a set of written tests or an automated one.

The smoke tests are meant to touch only a small portion of the application. It is both shallow and broad.

These tests are done to verify that the most important functions of the program work, without focusing on the details.

This is a health checkup on the application's build before it is put to testing in-depth.

SANITY TESTING:

A sanity testing is a test that narrowly examines a specific area of functionality. Sanity Testing is typically narrow and deep.

This test is often unscripted.

This test can be used to verify that a portion of an application still works after minor changes.

This is called cursory testing. It is used when cursory tests are not sufficient to show that the application works according to specifications. This testing level is subset of regression testing.

This allows you to check if all features are present.