Monday, 1 April 2013

Smoke & Sanity testing

Smoke & Sanity testing


Despite of hundreds of web articles on Smoke and sanity testing, many people still have confusion between these terms and keep on asking to me. Here is a simple and understandable difference that canclear your confusion between smoke testing and sanity testing.
Smoke and Sanity testing are the most misunderstood topics in Software Testing. There is enormous amount of literature on the subject, but most of them are confusing. The following article makes an attempt to address the confusion.
The key differences between Smoke and Sanity Testing can be learned with the help of following diagram –



Here are the differences you can see:
SMOKE TESTING:
  • Smoke testing originated in the hardware testing practice of turning on a new piece of hardware for the first time and considering it a success if it does not catch fire and smoke. In software industry, smoke testing is a shallow and wide approach whereby all areas of the application without getting into too deep, is tested.
  • A smoke test is scripted, either using a written set of tests or an automated test
  • A Smoke test is designed to touch every part of the application in a cursory way. It’s shallow and wide.
  • Smoke testing is conducted to ensure whether the most crucial functions of a program are working, but not bothering with finer details. (Such as build verification).
  • Smoke testing is normal health check up to a build of an application before taking it to testing in depth.
SANITY TESTING:
  • A sanity test is a narrow regression test that focuses on one or a few areas of functionality. Sanity testing is usually narrow and deep.
  • A sanity test is usually unscripted.
  • A Sanity test is used to determine a small section of the application is still working after a minor change.
  • Sanity testing is a cursory testing, it is performed whenever a cursory testing is sufficient to prove the application is functioning according to specifications. This level of testing is a subset of regression testing.
  • Sanity testing is to verify whether requirements are met or not, checking all features breadth-first.
Hope these points will help you to clearly understand the Smoke and sanity tests and will help to remove any confusion.

Smoke Testing Vs Sanity Testing - Key Differences


Smoke Testing
Sanity Testing
Smoke Testing is performed to ascertain that the critical functionalities of the program is working fineSanity Testing is done to check the new functionality / bugs have been fixed
The objective of this testing is to verify the "stability" of the system in order to proceed with more rigorous testingThe objective of the testing is to verify the "rationality" of the system in order to proceed with more rigorous testing
This testing is performed by the developers or testersSanity testing is usually performed by testers
Smoke testing is usually documented or scriptedSanity testing is usually not documented and is unscripted
Smoke testing is a subset of Regression testingSanity testing is a subset of Acceptance testing
Smoke testing exercises the entire system from end to endSanity testing exercises only the particular component of the entire system
Smoke testing is like General Health Check UpSanity Testing is like specialized health check up


Points to note.


  • Both sanity tests and smoke tests are ways to avoid wasting time and effort by quickly determining whether an application is too flawed to merit any rigorous testing. 
  • Sanity Testing is also called tester acceptance testing.
  • Smoke testing performed on a particular build is also known as a build verification test.
  • One of the best industry practice is to conduct a Daily build and smoke test in software projects.
  • Both smoke and sanity tests can be executed manually or using an automation tool.  When automated tools are used, the tests are often initiated by the same process that generates the build itself.
  • As per the needs of testing, you may have to execute both Sanity and Smoke Tests on the software build. In such cases you will first execute Smoke tests and then go ahead with Sanity Testing. In industry, test cases for Sanity Testing are commonly combined with that for smoke tests, to speed up test execution. Hence it's a common that the terms are often confused and used interchangeably.



















1 comment:

  1. Hello,
    The Article on Smoke & Sanity testing give detailed information about it. Thanks for Sharing the information about the Comparison on Smoke and Sanitary testing. For More information check the detail on the Sanity testing testing here Software Testing Company

    ReplyDelete