Test Driven Development (TDD) é um método para projetar software através de testes automatizados escritos antes do código. TDD ajuda a evitar código difícil de testar e usar, e promove design melhor através de um processo iterativo de pequenas mudanças guiadas por testes. Behavior Driven Development (BDD) fornece uma estrutura para TDD focando nos comportamentos do software do ponto de vista do usuário.