Smoke testing exercises the entire system to detect errors that could prevent further functioning. It is not exhaustive but ensures major functionality works and the build is stable for thorough testing. Advantages include minimizing integration risks, reducing low quality risks, uncovering major problems earlier, and saving time and cost versus finding errors late. Components of a smoke test suite focus on positive tests for key features without depth, to validate overall stability. Responsibilities for smoke testing should be defined upfront between developers and testers.