Saturday, September 6, 2014

Smoke Testing

Smoke Testing
In simple terms Smoke test refers to a kind of general health check up of our software or system under test.It is the first test made after repairs or first assembly to provide some assurance that the system under test will not catastrophically fail. 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 Test vs Sanity Test
Smoke testing is a preliminary to further testing, intended to reveal simple failures severe enough to reject a prospective software release. Smoke testing performed on a particular build is also known as a build verification test.

Why, Smoke Testing?
The main objective behind smoke testing is to know whether the essential functions of the applications are working or not. In case they are found to be not working, additional modifications and changes are introduced before the application can proceed to other tests.
Such modifications may need to continue until a time when all essential functions go through the smoke test. Smoke test can be an invaluable tool that helps you conserve precious time, energy and money; if any of the software features fails smoke test, then the developers need to think of additional modifications to the application.

When, Smoke Testing?
It acts as a prerequisite test before conducting any other tests. Using smoke testing at the first stage of the software development will help you reveal the errors and possible failures on the software. A big failure or breakdown will help the developers decide whether they need to discard the project or not.
Smoke tests are good for verifying proper deployment or other non-invasive changes. They are also useful for verifying a build is ready to send to test.

How,Smoke testing?
Smoke Testing is performed after software build to ascertain that the critical functionalities of the program is working fine. It is executed before any detailed functional or regression tests are executed on the software build. The purpose is to reject a badly broken application, so that the QA team does not waste time installing and testing the software application.
In Smoke testing, the test cases chosen cover the most important functionality or component of the system. It does not perform exhaustive testing, but to verify that the critical functionalities of the system are working.


For example, in a typical smoke testing, the test case would be – “Verify that the application launches successfully”, “Check that the GUI is responsive”, “Check user able to navigate from one window to other” etc. 

Types of Smoke testing
Basically there are two types of Smoke testing.
  1.                         Functional Test
  2.                         Unit Test


FFunctional Test
Functional tests exercise the complete program with various inputs.
Unit Test
Unit tests exercise individual functions, subroutines, or object methods.
Both functional testing tools and unit testing tools tend to be third-party products that are not part of the compiler suite. Functional tests may be a scripted series of program inputs, possibly even with an automated mechanism for controlling mouse movements. Unit tests may be separate functions within the code itself, or driver layer that links to the code without altering the code being tested.
Advantages
Smoke testing does provide lot of benefits to the software development team. First, it can expel all those software applications that lack the potential to reach the market. In this way, software engineers can easily reject those software projects that are still in their early stages of development. If they find some errors in such projects, they can either modify it or reject the whole project.

No comments: