Friday, January 13, 2012

In the field of software testing, smoke testing is defined as a preliminary test for the further testing of the software program or the application.

- The smoke is basically intended to reveal the simple failures but big enough to get prospective and deserving software rejected for release.

- The “smoke” in the term smoke testing is taken to be metaphorical.

- Typically in a smoke testing, a sub set of the test cases (includes all the test cases that have been selected to be performed on the software system or application) are selected and run on the software system or application.

- All the selected test cases cover all the most important functionalities of the components of the software system or application.

- This is done in order to ascertain that whether the most crucial functions of a software system or application are working properly or not?

To make it easy to understand let’s say that the smoke testing involves enquiring about the following questions:

- Whether the program runs or not?- Whether it opens a window or not?- Whether clicking on the main button triggers any action or not?

And so on!

- The main aim is to determine the status of the software system or application i.e., whether or not the software system or application is in such a bad or broken state that it requires further testing.

According to the book “lessons learned in software testing” the " smoke testing covers all the features of the software product in a broad manner and also in limited time".

- It also states that if the key features of the software system or application are not working or if the major bugs have not been fixed, then the software developers and testers won’t have to waste their time further by installing the application or testing it.

- A smoke test that is being performed on a particular build is commonly known as a build verification test.

- Performing a daily smoke and build test is now being considered as one of the best practices in the industry of software testing.

- These days the testers now prefer to perform smoke testing before accepting a build for further testing of the software system or application.

- The software giant Microsoft once claimed after the code reviews that the smoke testing can be effectively stated as the most cost effective method for identifying the major bugs and fixing them in software program.

- In the case of Microsoft, a smoke test is usually seen as a process of validating the changes made to the code before they are set in to the source control.

- Smoke testing can be performed either manually or it can be made automated by using an automated tool.

- When an automated tool is used the initiation of the test cases takes place automatically by the same process that is responsible for generation of the build itself.

Smoke tests are categorized in to two major categories namely:- Functional tests- Unit tests

The functional tests are responsible for exercising the complete software system or application with various forms of inputs whereas the unit tests are responsible for exercising the individual functions, object methods and sub routines.

The functional tests as well as unit tests behave as a third party products that do not form a part of the whole compiler suite.

Functional tests are usually a scripted series of program inputs whereas unit tests are separate functions embedded within the code or the driver layer itself that links to the source code without making an alteration to the code that is under test.