Test Driven Development (TDD) é uma técnica de desenvolvimento de software que se baseia em um ciclo curto de repetições:
- Ler e entender os requisitos para uma determinada funcionalidade.
- Desenvolver um conjunto de testes que verificam o recurso. Todos os testes estão vermelhos, devido à ausência da funcionalidade.
- Desenvolve a função até que todos os testes fiquem verdes.
- Refatora o código.
Kent Beck, considerado o criador da técnica, declarou em 2003 que TDD encoraja o desenho de código simples e inspira confiança. Desenvolvimento guiado por testes é relacionado a conceitos de programação de Extreme Programming, iniciado em 1999, mas recentemente tem-se criado maior interesse pela mesma em função de seus próprios ideais. Através do TDD, programadores podem aplicar o conceito de melhorar e depurar código legado desenvolvido a partir de técnicas antigas.
TDD exige uma maneira diferente de pensar, de modo a fim de começar TDD você precisa esquecer a maneira como você desenvolveu código antes. Este processo é muito difícil. E é ainda mais difícil se você não sabe como escrever testes unitários.
Vantagens importantes:
- Melhor compreensão de um recurso que você implementou.
- Indicadores sólidos da funcionalidade.
- Código coberto com testes e menos chances de ser corrompido por correções ou novos recursos.
O custo destas vantagens é bastante elevado. Inconvenientes relacionados com a mudança para um novo modo de desenvolvimento e o tempo que você gasta para o desenvolvimento de cada novo recurso. O preço da qualidade.
Conclusão
Testes são muitos importantes por motivos de qualidade e menos riscos para a sua aplicação. Mas não é um pensamento que irá dominar do dia para a noite. O caminho é bem árduo, mas é importante iniciar esse trajeto. O desenvolvedor ganha, o projeto ganha e o cliente com uma qualidade maior.