I was attending a conference where people started discussing about the reason behind the name for Smoke tests.
Someone told that ‘Smoke test’ term came from electronics where it defines the testing that is done when the circuit is tested first time with the power flowing through it. It is actually to verify that ‘No Smoke’ is seen in any part of the circuit to ensure it is completely correct.
In software we actually use Smoke Tests to quickly verify the critical areas of the software to ensure that the changes have not broken the software in any form. But why is it called Smoke test in software? Does the software produce smoke if it does not work correctly?
Per Wiki, w.r.t. Software, Smoke testing is a preliminary to further testing, which should reveal simple failures severe enough to reject a prospective software release. In this case, the smoke is metaphorical.
So Smoke tests are actually to verify that after the integration, circuits/software behave correctly and are ready for further testing if there is no smoke coming out of it.
I was just thinking that instead of calling them ‘Smoke Tests’ will it make more sense to call these kind of tests as “No Smoke Tests“!
Please feel free to share your thoughts on the same.