Software retest, regression, smoke and sanity testing: What's the difference?

Understanding the nuances between different types of test efforts can be a challenge. In this expert response, Karen Johnson explains what is meant by retesting, regression testing, smoke testing and sanity testing. Find out the purpose of these types of tests and a few other terms that some organizations use for testing efforts.

What is the difference between retesting and regression testing? And the difference between smoke testing and sanity testing?

Retesting is when you are testing a specific defect that has been marked or tagged by the developers as ready for testing in the build in which you are working. Regression testing is when you are testing around specific areas of an application where defects have been fixed to ensure that no other issues have been introduced. Retests and regression testing often happen in close proximity-- both time-wise and functionality-wise-- and so as a result, you may have heard the terms used interchangeably.

Smoke testing refers to a short series of tests that are executed to make sure that the build appears to be reasonably working-- the build appears to be functional. Sanity testing is the same as smoke testing. There seem to be many terms used for smoke testing; I've also heard the term acid testing. If a major part of the functionality is found to not be working from a smoke or sanity test, then the build is often turned back to development. Smoke testing doesn't prove everything is working, but usually provides a sense that the build is good enough to begin testing in earnest.


Next Steps

A fine line separates what defines a smoke test, or at least a smoke test worth executing, and what defines a valuable regression test.

Dig Deeper on Software testing tools and techniques

Cloud Computing
App Architecture