Tuesday, April 14, 2015

Smoke and sanity testing

Smoke and sanity testing

Below are the differences between Smoke and Sanity Testing.
Smoke Testing
Sanity Testing
Objective of Smoke Testing is to verify all the Critical and major functionality of an application is working as expected before going ahead with full fledged testing i.e., Functional or Regression testing.
Objective of Sanity testing is to confirm that the new build, environment and external services are stable enough to carry out any test i.e., even before carrying out Smoke test.
Smoke tests are broad and shallow. Smoke Tests are designed to catch any Critical or High severity defects across all the important functionalities.  Smoke tests are designed to catch Show stoppers (that was not tested and caught during sanity test) or blocker defects i.e., defects that indicate that a particular flow or functionality cannot be tested.
Sanity tests are very narrow (usually, tests a single flow or two at the max) it is not designed to test all the important functionality of the application. Sanity tests are intended to verify if the application is available (up and running) and it is able to interact successfully with database, external services and external devices if any.Sanity tests are designed to catch show stopper defects. Like, Unable to login to application OR application is not functioning due to JDBC connection failure etc.,
Smoke Testing is done by Testing team only as the focus of this testing more on validating application functionality.
Sanity Testing is mostly done by Build deployment/Operations Team after every new build is deployed OR once the environment is brought up after a scheduled application / environment maintenance.  Sanity testing is done by Build deployment team as immediate issues encountered post a new build deployment is more often towards configuration, database access and other setup issues.  In some of the bigger projects, testing team may be asked to perform sanity testing.
Smoke testing is usually done after Sanity Testing is completed.
Sanity Testing is done immediately after new build deployment OR after application / environment scheduled maintenance.
Smoke Test cases are mostly documented. Smoke Test suite is built by picking Functional test cases that requires validating all the critical and important functionalities of the application.e.g.:-a) Submit Orders and pay by different tender types (Cash, Credit, Debit, Gift Card etc.,)b) Verify cancel order is working fine.
c) Verify return functionality is working fine
d) Verify sales data in Oracle – daily sales report
And more test cases to test all the important functionality of the application.
Sanity Test cases are usually not documented i.e., no written test cases. In most of the companies they follow a Sanity check list.e.g.:-a) Verify Loginb) Submit an Order and pay by cash
c) Verify Oracle reports can be opened
As you can see, intent of Sanity testing is to find issues that are show stoppers and that can make the system completely not testable.
In the above example, tests are very narrow and does not test all the important functionality of the application, instead it checks but the intent of the testing.

1 comment:

  1. Hello Dnyaneshwar,
    The Article on difference between Smoke and sanity testing give detailed information about it. Thanks for Sharing the information about the detail comparsion on Smoke and Sanity testing. For More information check the detail on the Sanity testing testing
    here Software Testing Services

    ReplyDelete