Quality Testing

Quality is delighting customers

There are two type of test types, Smoke and Sanity. What they are exactly? Here we go.....

The general definition (related to Hardware) of Smoke Testing is:
Smoke testing is a safe harmless procedure of blowing smoke into parts of the sewer and drain lines to detect sources of unwanted leaks and sources of sewer odors.
It is related to s/w, the definition is
Smoke testing is non-exhaustive software testing, ascertaining that the most crucial functions of a program work, but not bothering with finer details.
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. It normally includes a set of core tests of basic GUI functionality to demonstrate connectivity to the database, application servers, printers, etc.
I will request to all QT members share your valuable thoughts regarding this...

Views: 233

Reply to This

Replies to This Discussion

Hi Sandeep,
Smoke Testing:
When a build is received, a smoke test is run to ascertain if the build is stable and it can be considered for further testing.
Smoke testing can be done for testing the stability of any interim build.
Smoke testing can be executed for platform qualification tests.

Sanity testing:
Once a new build is obtained with minor revisions, instead of doing a through regression, a sanity is performed so as to ascertain the build has indeed rectified the issues and no further issue has been introduced by the fixes. Its generally a subset of regression testing and a group of test cases are executed that are related with the changes made to the app.

Smoke testing is the first testing to be performed on the build before tester take it for further testing.
So it is done on build level n it is used to check the basic functionality of the product.

Sanity testing on the other hand is done at later stage. It is done at module level. Sanity is done to check the depth functionality of the product after modification.

Cheers,
Darshan
Smoke Testing:
a. When a build is received, a smoke test is run to ascertain if the build is stable and it can be considered for further testing.
b. Smoke testing can be done for testing the stability of any interim build.
c. Smoke testing can be executed for platform qualification tests.
d. 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.
e. A smoke test is scripted--either using a written set of tests or an automated test
f. A Smoke test is designed to touch every part of the application in a cursory way. It's is shallow and wide.
g. Smoke testing will be conducted to ensure whether the most crucial functions of a program work, but not bothering with finer details. (Such as build verification).
h. Smoke testing is normal health check up to a build of an application before taking it to testing in depth.

Sanity Testing:
Once a new build is obtained with minor revisions, instead of doing a through regression, a sanity is performed so as to ascertain the build has indeed rectified the issues and no further issue has been introduced by the fixes. Its generally a subset of regression testing and a group of test cases are executed that are related with the changes made to the app.

Generally, when multiple cycles of testing are executed, sanity testing may be done during the later cycles after through regression cycles.
a. 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
b. A sanity test is usually unscripted.
c. A Sanity test is used to determine a small section of the application is still working after a minor change.
d. 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.
e. Sanity testing is to verify whether requirements are met or not, checking all features breadth-first.
Sanity Testing:-Tester conducts the Sanity test to ensure the stability of the application build.Tester finds weather the application build is stable for complete application or not.

Smoke Testing:-It covers the major functionality of the application without bothering with finer details.
Smoke testing is done to verify that the build (to be tested) is done properly. The motive is to check that the application build is working fine and does not crash.

For example – say an application has following features – (say each feature has a page, so in this case there are 10 features; so its 10 pages)
Login, Logout, Enter info, delete info, update info, Change address, search records, retire records, print form, generate reports etc…

Here's how you will Smoke Test it -

Check that each of the pages is displayed properly and there are no broken links between pages.
Check that the buttons on the pages are clickable (not disabled or hidden).
Check that you can traverse back and forth between pages.
Check that you can see the help section pages, legal and disclaimer section on the pages (outgoing links on the pages)
Check the look and feel of the pages (fonts and user text boxes displayed properly and no broken images or cluttered text or font scramble) – this is optional check unless you see something that is unreadable
Check that you are able to enter info into input boxes (no need to do any transactions; just check whether you are able to input text on the pages or not).Note that you are not required to do any transactions in Smoke test.


Sanity Testing – is done to verify whether the new / updated build is functioning properly. (Note the difference – smoke checks the application build; sanity checks the build functionality at higher level.)

Take the above example again – say an application has following features –
Login, Logout, Enter info, delete info, update info, Change address, search records, retire records, print form, generate reports etc…

Here's how you will Sanity Test it -
Check that the customer critical functionality is working by performing at least one transaction for each of the major features.

Your depth of sanity testing depends on the functionality of the application. Say there are 5 major features of that application. So you need to perform only one transaction for each of the feature (to verify that all the major features are working properly).

(Sanity test concentrates on testing major features. A feature is said to be major if it is accessed by customer frequently or daily and its working is important to the business. )

Now say the login, logout, enter info, delete info and generate records are the 5 main features on the application.

Sanity test -
Check that you are able to login
Check that you are able to logout
Check that you are able to enter the info and save record for new user.
Check that you are able to delete data of existing user.
Check that you can generate report for current date.

You don't need to test rest of the features. Nor do you require to run other exhaustive test cases for each of these major features.

Correct me if I'm wrong ...

RSS

TTWT Magazine


Advertisement

Advertisement

Advertisement

Advertisement

© 2020   Created by Quality Testing.   Powered by

Badges  |  Report an Issue  |  Terms of Service