If developers do not find and fix program bugs they will deliver (share) code that is either:


The purpose of unit testing is to avoid this situation by exposing (finding) program bugs allowing developers to fix the bugs and deliver high quality code.

Smoke testing is a subset of unit testing where we focus only on #1 above (i.e., finding and fixing bugs that are causing the program to be unusable)

In the next chapter, we dive deeper into the concepts of unit testing.