A Smoke Test is a preliminary test conducted to reveal simple failures that are severe enough to reject a prospective software release. This type of testing acts as a quick check to ensure that the most crucial functions of the software work correctly. If the application fails the smoke test, it is considered too unstable for further testing, and the release is rejected until the major issues are resolved. The primary purpose of a smoke test is to verify the basic functionality and stability of the software build.
Smoke Testing is often referred to as "build verification testing" or "sanity testing." It is typically automated and executed after a new build is created, ensuring that the critical paths of the application are functioning as expected. By identifying serious issues early in the testing process, smoke tests help in saving time and resources, allowing the development team to address these problems promptly. This approach ensures that subsequent, more detailed testing phases are conducted on a stable foundation, leading to more efficient and effective quality assurance.