Test-driven development (TDD) é uma abordagem de desenvolvimento de software onde os desenvolvedores primeiro escrevem testes unitários automatizados que falham e então implementam o código mínimo necessário para fazer os testes passarem. TDD requer que todo código de produção seja guiado pela escrita de testes unitários e que erros de compilação sejam tratados como falhas nos testes.