Smoke testing and regression testing are important types of manual testing used at different stages of development and release of updates.
History of the Question:
A smoke test (from “smoke test” in electronics - a check to see if there is "smoke" after turning on a device) is a quick minimal check that the main functions of the system are working. Regression testing is a complete or partial re-check of functionality to ensure that new code has not broken existing functions.
Problem:
Often these tests are confused or used incorrectly, wasting time or missing important checks. There are also questions about how and by what criteria to form test sets for smoke and regression.
Solution:
Key Features:
Does smoke testing fall under regression testing?
No, smoke is a subset of special "mission-critical" tests, while regression includes both new and important old checks.
Can only smoke tests be run before a release?
No - this is insufficient. Smoke only signals that everything is "alive", but does not guarantee the absence of critical bugs in less "public" functionality.
Is it acceptable to change the composition of smoke tests with each release?
No, the composition of smoke is stable and only changes with radical changes in the product.
Before the release, the team limits itself to only smoke tests and does not conduct regression testing. As a result, bugs are discovered in subtle but important functions after the release.
Pros:
Cons:
After each deployment to the test environment, smoke tests are first conducted, followed by regression according to the updated scenarios. The results are documented and tests are promptly refined with changes in the product.
Pros:
Cons: