Smoke testing is a preliminary test performed on software to ensure major functions work before further testing. It originated from hardware testing where turning on new hardware without it catching fire was considered a pass. Smoke tests check core functionality at a high level without detail to quickly reveal failures severe enough to reject a prospective release. They help conserve time and resources by screening out builds with major defects early in the development process.