Testing the basic or critical features of an application before doing thorough testing is called as Smoke Testing.
It is also called Build Verification Testing – because we check whether the build is broken or not.
Whenever a new build comes in, we always start with smoke testing, because for every new build – there might be some changes which might have broken a major feature ( fixing the bug or adding a new feature could have affected a major portion of the original software).
In smoke testing, we do only positive testing – i.e, we enter only valid data and not invalid data.
Now, we have to understand that smoke testing is done in all testing before proceeding deep into the testing we do.
The below example will make us understand better when to do smoke testing,
Developers develop application and gives it for testing. The testing team will start with functional testing. suppose we assume that 5 days we are given for FT. on the 1st day, we check one module and later 2nd day we go for another module. On the 5th day, we find a critical bug, when it is given to the developer – he says it will take another 3 days to fix it. Then we have to stretch the release date to extra 3 days.
In early stages of product development, doing smoke testing fetches more number of bugs. But, in later stages of product development, if you do smoke testing – the number of bugs that you are going to catch in smoke testing will be very less. Thus, gradually the effort spent on smoke testing is less