Selenium Certification Training
- 20k Enrolled Learners
- Live Class
Every business runs on software and all the software needs to be tested before it is released to users. Software testing is vital to release efficient, effective and reliable software at a rapid pace. There are different types of software testing and each of these types has a different purpose and provides a unique value to the software development process. In this article, we will be discussing the two most frequently misunderstood types: smoke testing and sanity testing.
Let’s take a look at topics covered in this article:
Software Testing is a crucial phase of the software development cycle. There are many different types of software testing. Each of these testing types has its own purpose. The type of software testing that you choose depends on your testing objective, the complexity, and functionality of your software, and your testing team. The image below lists out some of the most common types of software testing used today.
This article will help you figure out what smoke testing and sanity testing are and how different they are from each other. Let’s get started.
Not sure what software build is? A software build is a process by which source code is converted to a stand-alone form that can be run on any system. It is often referred to as a code build. Coming back to smoke testing, it is executed before any functional or any regression tests are executed in detail on the software build. The main objective here is to reject a badly broken application so that the QA team does not waste time installing and testing the software application. Instead of performing exhaustive testing, we make sure that critical functionalities are working fine.
Smoke tests can be performed manually or they can be automated. To execute smoke tests, you don’t need to write new test cases, instead, you can just pick the necessary test cases that are already defined by programmers. The primary focus here is to test the core application workflow. So, just pick those test cases that define the main functionalities of your software. Let’s try to figure this out with a real-time example.
Let’s say, you are working on an e-commerce site. You have a few initial builds that are ready to be released for testing. First thing you need to do is to check if the core functionalities are working or not. So, you try to access the site and add an item to your cart to place an order. Well, that’s the major workflow of any e-commerce site, right? If this primary workflow works, you can say that the build that you have subjected to testing has passed the smoke test. You can then move on to next rounds of testing.
Now that you are clear with what smoke testing is, let’s get to the next topic of this article, that is sanity testing.
Sanity Testing is a type of software testing which is conducted after receiving a software build, with minor changes in the code, or functionality. The aim is to make sure that the bugs have been fixed and to confirm that there are no further issues introduced due to the new changes.
Unlike smoke testing, the objective goal of sanity test is not to verify the core functionalities, instead, it is to verify the correctness and rationality of the software. It is usually done near the end of a test cycle, to ascertain if bugs have been fixed and if minor changes to the code are well tolerated. Also, to determine whether the most recent fixes have affected any component functionality. Sanity tests are often unscripted and can be performed manually, or with the help of automated tools.
Similar to smoke testing, you don’t need to write new test cases unless a new feature is introduced. The main objective here is, to ensure that false results or bugs are not present in component processes. Also, to check whether the build is sane enough to move to further stages of software testing cycle.
Let’s consider the same example that we used for smoke testing. So, you are working on an e-commerce site. A new feature related to user registration is released. Your main goal is to check if the new feature is working correctly or not. Once you are sure that it’s working as it is supposed to, then you move on to the next level of testing. If the sanity test fails, it is not reasonable to attempt more rigorous testing. In the sanity tests, you exercise the smallest subset of application functions needed to determine whether the application logic is functional and correct.
You might have noticed that there is some overlap between smoke testing and sanity testing, especially when it comes to the fact that neither is really designed to be a thorough process. However, there are also obvious and important differences between these two testing types. Let’s check them out.
Smoke testing and sanity testing describe very different practices. But people still get them confused, since the distinction is somewhat subtle. The table below lists the key differences between smoke testing and sanity testing.
|Features||Smoke Testing||Sanity Testing|
|System Builds||Tests are executed on initial builds of software product||Tests are done over builds that have passed smoke tests & rounds of regression tests|
|Motive of Testing||To measure the stability of the newly created build to face off more rigorous testing||To evaluate rationality & originality of the functionalities of software builds|
|Subset of?||Is a subset of acceptance testing||Is a subset of regression testing|
|Documentation||Involves documentation and scripting work||Doesn’t emphasize any sort of documentation|
|Test Coverage||Shallow & wide approach to include all the major functionalities without going too deep||Narrow & deep approach involving detailed testing of functionalities and features|
|Performed By?||Executed by developers or testers||Executed by testers|
So, that’s it, guys! With this, we have reached the end of this article. Hopefully, by now, you have the basic knowledge of smoke testing and sanity testing. These are important testing types which ensure the detection of bugs and defects in early stages of the development cycle and I hope you will be using them well.
If you found this article relevant, check out the live-online Selenium Certification Training by Edureka, a trusted online learning company with a network of more than 250,000 satisfied learners spread across the globe.
Got a question for us? Please mention it in the comments section of this article and we will get back to you.