This document provides an overview of unit testing. It defines a unit as a software component containing routines and variables. Unit testing involves testing individual units in isolation to find defects. The benefits of unit testing include refactoring code easily and making integration testing simpler. Various test types are covered, including functional, non-functional, and structure-based testing. Static and white box testing techniques like statement coverage and branch coverage are also discussed. The document concludes with guidelines for effective unit testing.