Thursday 18 June 2015

Top 10 differences between Smoke and Sanity testing

Difference between Smoke and Sanity testing seems to be confusing term or concept from most of the testers perspective. Before going to understand the difference between Smoke and Sanity testing, you should know the Smoke and Sanity testing basics.

Smoke Testing:
Smoke testing is the testing to check the basic functionality of newly released build.Smoke testing is also known as Build Verification Test (BVT) and is performed to check the normal health of the build to make sure the stability of the build received for software testing to continue testing or not.
It is done in the beginning of the software testing cycle. It is first level of testing on a newly released build of application at testing team level to check the main functionality of the application and is performed before the detailed functional or regression tests are executed.
It is usually preferred when some minor issues with the application or software and a new build is obtained for testing after fixing of issues instead of full regression, a subset of most basic and important test cases is selected which is used to find issues in particular functionality.

smoke testing
                               Smoke Testing
 It is a non-detailed and no deep testing. It checks whether crucial functions of a program are working or not. Smoke test is scripted, i.e. either manual test cases or automated scripts for it.
Some basic test cases for Smoke Testing:
1.       Application launches successfully
2.       GUI response is proper
3.       Database connectivity is in place

Advantage:
Smoke testing of the software application is performed to validate whether the build can be accepted for through software testing or not.

Sanity Testing:
Sanity testing is the testing to check main functionality as well as optional functionality of the application. It is detailed testing.
When a new build is obtained after fixing the some minor issues then instead of doing complete regression testing sanity is performed on that build. In general words sanity testing is a subset of regression testing.
Sanity testing is performed after thorough regression testing is completed, to ensure that any defect fixes does not break the core functionality of the product.

Acceptance Testing
                                  Sanity Testing
 It is done towards the end of the product release phase. Sanity testing is performed with an objective to verify that requirements are met on not. A sanity test is normally unscripted.
Sanity testing is a subset of Acceptance testing.
Examples:
  1. Basic GUI functionality
  2. Database connectivity
Sanity testing factors:
·         Environment issues 
e.g Application closing, application getting hang, unable to launch URL
·         Exceptional errors
e.g. java.io.exception (some source code will be displayed)
·         Urgent severity defects

Advantage: 
Sanity testing of the software application is performed to validate whether the requirements are met on not

Smoke Vs Sanity testing
                                                    Smoke Testing Vs Sanity Testing                 
                                             
Difference between Smoke and Sanity testing:

                         Smoke Testing                          Sanity Testing
Smoke Testing is performed to ensure that the critical functionality of the application are working fine Sanity Testing is performed to ensure that basic functionality or any defect fixes does not break the core functionality of the product.
Smoke testing is like normal health check up to a build of an application Sanity Testing is like specialised health check up to a build of an application
It is performed towards the start of the product release phase It is performed towards the end of the product release phase
Smoke testing is a subset of Regression testing Sanity testing is a subset of Acceptance testing
Smoke testing is also called Build verification test Sanity Testing is also called tester acceptance testing
Smoke testing is performed with an objective to verify that build is acceptable or not Sanity testing is performed with an objective to verify that requirements are met on not
Smoke testing is normally scripted that is either manual test cases or automated scripts used for it Sanity testing is usually unscripted
It is a non-detailed and no deep testing It is a detailed and deep testing
Smoke testing is performed by the developers or testers Sanity testing is usually performed by testers
Smoke testing validates the entire system from end to end Sanity testing validates  the particular component of the entire system
It is performed before the detailed functional or regression tests are executed It is performed after the detailed functional or regression tests are executed

No comments:

Post a Comment