This document provides an overview of unit testing. It defines a unit as a software component that contains one or more routines, also known as a module or component. Unit testing is testing individual software modules in isolation from the rest of the system to verify that each module functions as designed. The document discusses different types of unit tests, including functional, non-functional, and structural tests. It also covers white box testing techniques such as statement, branch, condition, and path testing. Finally, it discusses test automation tools that can be used to support unit testing.