This document provides an overview of test-driven development (TDD) and how to get started with it. It discusses the TDD process of writing a failing test first, then code to pass that test, and refactoring. Examples show how to write tests using Test::Unit, use stubs and mocks with Mocha, and address common pitfalls like over-mocking or non-descriptive test names. The document also covers integrating tests with Rake, using expectations as tests, and analyzing test coverage with tools like RCov.