Test Driven Development (TDD) is a software development process that relies on the repetition of a very short development cycle: requirements are turned into very specific test cases that are failed, then the software is improved to pass the new tests, and finally any newly introduced code is refactored. The document outlines the TDD lifecycle and process, describes unit testing and how it verifies isolated units of code, and discusses how TDD results in testable, clean code through refactoring. It provides examples of unit testing code for a bank account class.