This document provides an overview of test-driven development (TDD) using the phpspec2 framework. It discusses the different types of tests - functional tests using phpunit or behat, integration tests with PHPUnit, and unit tests with phpspec. It provides examples of writing unit tests with phpspec, including using matchers, mocks, predictions, and advanced features like array mocks. It also offers best practices advice, such as not mocking 3rd party code and considering dependency injection libraries that are well-suited for TDD.