This document provides an overview of Test Driven Development (TDD). It discusses the core principles of TDD including writing a failing test first, then only writing enough code to pass that test, and refactoring code if needed. The document outlines the TDD process with steps of writing a failing test, writing just enough code to pass the test, and refactoring code if needed. It notes benefits of TDD include code that is always backed by tests, decoupled design, and automatically having full test coverage and regression tests.