What is it All About?

As a testing engineer, you've probably heard of such types of testing as smoke, sanity, re-test and regression testing. It is quite possible that many of these types are used by you on a daily basis.

In this article, I would like to clarify and explain the difference between these types of testing and try to figure out, draw boundaries (albeit conditional) where one type of testing ends and another begins.

For beginners in testing (and even experienced testers), separating these concepts can be difficult. And in fact, how to distinguish where sanity testing begins and smoke ends? How much do we need to limit the verification of a part of the functionality of the system or its components to call it "smoke" testing?

Is entering a login/password into the user login form on the site a smoke test, or is the very fact of its appearance on the site page already a passed test?

Strictly speaking, you will still be able to conduct testing, even though you won't be able to tell exactly what the difference is. You don't even have to think about the distinction of what kind of testing you are currently engaged in. But still, in order to grow above yourself in a professional sense, you need to know what you are doing, why, and how well you are doing it.

Details

Below are brief definitions of the types of testing that we are comparing today:

Both of these types of testing are aimed at avoiding the loss of time and effort in order to quickly identify software flaws and their criticality, as well as whether it deserves to go into a phase of more in-depth and thorough testing or not.

For a better understanding, a comparative table of these concepts and areas of application is presented below:

Smoke

Sanity

Regression

Re-Test

But Essentially?

I will give an example of the differentiation of concepts on my current project. Example: We have a web service with a user interface and a RESTful API. As testers, we know:

Then you can make a number of statements about what types of tests you need to use at what point in time:

At the same time, if this api also accepts post requests, then it is obvious that it is necessary to include these requests in another set of sanity tests. By analogy with the UI, we will check all the pages of the application.

Let's Summarize

I hope that after reading this article, you will have clarity in determining which type of testing you are using at what stage, and what is the difference between these types of testing.

As mentioned at the beginning, the boundary between these concepts is very conditional and remains at your discretion within the framework of the project.

Thank you for your time, that is all.

Ruslan Muradov.