“Testing Leads to Failure, and Failure Leads to Understanding” - Burt Rutan
The process of developing a competent software product, involves several phases and steps. The act of Software Testing happens to be one of the crucial parts of this entire mechanism. The objective of Software Testing is not only to ensure the quality of the end product, but also to reduce the time consumed and cost incurred in the completion of the project. There are different types of Software Testing and the question of what is Smoke Testing and Sanity Testing is quite a debatable topic within tech circles. The objective aimed at as well as the functionality and complexity of the software, help in determining the type of testing opted for.
In this blog, we shall consider the question of what is Sanity Testing; understand its benefits and utility; as well as consider the question of what is Sanity Testing in Software Testing in terms of its features and examples.
What is Sanity Testing?
Before we delve into the question of what is Sanity Testing, it is important to understand the concept of ‘Software Build’. A software project comprises of numerous source code files. Given so, the process of creating an executable program from the same can be a laborious and complicated task. However, it can be carried out with the help of ‘build’ software, whereby the process is referred to as ‘Software Build’.
In order to understand what is Sanity Testing in Software Testing, one should look at it as a variant of Regression Testing. Whenever, the testing team receives a new Software Build, after minor changes in its functionality or code; Sanity Testing is performed in order to ensure that the bugs have been fixed, all errors have been addressed and there is no addition of new defects.
Thus, in answering the question of what is Sanity Testing, one should look at it as a broad, quick and shallow Software Testing technique, which helps in determining the feasibility of further testing. It does not involve detailed testing and helps to validate the functionality of an application. Thus, quite often Sanity tests are undocumented and non-scripted and merely touch upon the important parts and bits. Hence, Sanity Testing is critical in ensuring that the new code changes do not affect the existing functionalities.
What is Smoke Testing and Sanity Testing?
The idea of Smoke Testing is seen to often accompany that of Sanity Testing, so much so that the two terms are often used interchangeably. However, it is important to answer the question of what is Smoke Testing and Sanity Testing, in order to make it clear that the two are not synonymous.
In the aftermath of a Software Build, Smoke Testing is performed in order to ensure the seamless working of the core functionalities of a software application. It is undertaken even before detailed Regression or Functional Testing begins. The primary objective is to determine the viability of further testing, by testifying that the critical functionalities are working fine. To the extent that both Smoke and Sanity Testing help in determining the reasonableness of further testing; they are often referred to as substitutes. However, it is important to understand what is Smoke and Sanity Testing in terms of their difference as the former helps in testing the existing core functionalities; while the latter tests the new and added functionalities like bug fixes.
Additionally, as you seek to understand what is Smoke Testing and Sanity Testing, you should remember that Smoke Testing is a variant of Acceptance Testing, whose goal is to verify stability; whereas Sanity Testing is a variant of Regression Testing, whose goal is to verify rationality.
Features of Sanity Testing
- Sanity Testing is conducted near the end of a test cycle after thorough Regression Testing has been completed.
- They are usually undocumented and non-scripted.
- They are undertaken by testers and can be regarded as filters which determine the feasibility of the passage of the builds onto the next level of testing.
- It adopts a narrow and deep approach to testing which focuses upon limited functionalities.
- They are usually not automated and are executed manually.
If you wish to read more on the debate between Manual Testing and Automation Testing, refer to our blog on “Manual vs. Automation Testing”
- Since Sanity Testing checks the functioning of an application after minor changes have been made to the code, they are referred to as cursory testing.
What is Sanity Testing with Example
By way of simple instances, you will surely be able to understand what is Sanity Testing in a better manner.
You have designed a simple web application. This application would surely have multiple modules for different functionalities. Now suppose, in case of the signup module, you have incorporated the Captcha API and you find out that there is some issue with the same. In order to fix the issue, you will try to introduce certain modifications to the code. However, after doing so, it does not make sense to test all the modules of the applications once again, just in order to confirm that the amended functionality is working as expected. In such a situation, conducting a Sanity Test can help in checking the signup module alone; thus saving cost and time.
You have designed another application comprising of multiple pages like the login page, user profile page, new user creation page and so on. On the new user creation page, you have a registration form which allows users to enter their information and click on the submit button. Now, you wish to add a Preview option by which users will be able to view their filled application, before submitting the same. After the necessary addition is made by the development team, it will be important to ensure that the new added functionality is working just as fine. However, once again, it will be futile to test all the modules of the application. Conducting Sanity Test can be useful in testing the newly added feature without disturbing those which have already been tested.
Benefits of Sanity Testing
In this section of the blog, we shall look at some of the advantages of conducting a Sanity Test.
- Sanity Testing is cost effective as compared to other types of testing.
- It is easily comprehensible and executable and yet efficient.
- It does not require prior documentation or scripting.
- Having a narrow and deep approach and being focused only on few functionalities; Sanity Testing helps save testing time and effort.
- It provides for the detection of bugs and defects in the early stages of software development itself.
- It helps to point out any compilation or deployment issues.
By the end of this blog, I am pretty sure that you must have developed a fair idea about what is Sanity Testing. The notions of Smoke and Sanity Testing and are often confused with each other and hence it is important to understand what is Smoke Testing and Sanity Testing in terms of their differences. In this piece, we learnt about the features and benefits of Sanity Testing as well as looked at what is Sanity Testing with Example. It is clear that Sanity Testing provides for quick assessment and is usually resorted to when a new functionality is added or a modification request is carried out.