Artigos

Os benefícios de usar TDD

O desenvolvimento orientado por testes, ou TDD, não é um conceito novo: há anos os programadores tinham a ideia de testar antes de programar. No entanto, TDD como conceito e técnica se tornou mais popular e padronizado graças à introdução da metodologia ágil. Neste artigo, explicaremos os benefícios do TDD e mostraremos como funciona passo a passo.

O que é TDD?

Primeiro, precisamos entender que TDD não é o mesmo que testes unitários. TDD é uma técnica de programação que usa testes unitários. A ideia principal é que, antes de escrever código para o sistema, devemos criar os testes para esse código. No início, isso pode parecer estranho, pois nas técnicas tradicionais os testes são criados depois do código. No entanto, como o nome “desenvolvimento orientado por testes” indica, o teste orientará a escrita do código. Isso permite aos desenvolvedores se concentrar nos requisitos antes de programar.

Por que usar TDD

O TDD oferece vários benefícios aos desenvolvedores quando aplicado corretamente:

  • TDD dá mais confiança no código escrito, pois os testes falharão ou passarão automaticamente.

  • Os desenvolvedores podem imaginar a funcionalidade enquanto criam a etapa, permitindo compreender melhor as funcionalidades que estão construindo.

  • A quantidade de bugs relatados em etapas posteriores do desenvolvimento é consideravelmente reduzida. O custo de corrigir um bug cresce exponencialmente conforme o processo avança, então o TDD também reduz significativamente esse custo.

  • TDD resulta em um sistema mais reutilizável e modular, preparado para mudanças futuras.

  • TDD ajuda a garantir que o sistema atenda aos requisitos definidos. Isso é essencial para satisfazer as expectativas do cliente.

  • Ao usar TDD, a cobertura de testes é de 100%.

Como usar TDD

Para usar TDD, há cinco etapas a seguir. Elas são normalmente conhecidas como vermelho, verde e depois refatorar.

O ciclo de TDD. Gráfico de Vskills.
O ciclo de TDD. Gráfico de Vskills.

Crie um teste.

Antes de escrever uma nova função ou funcionalidade, deve-se criar o teste para esse código. No entanto, antes de criá-lo, o desenvolvedor precisa ter todas as informações e conhecimentos necessários sobre a nova funcionalidade para fazer isso corretamente. O teste deve ser curto e falhar ao executar o código.

Execute todos os testes.

Esta etapa valida se os novos testes adicionados estão funcionando corretamente. Se um teste novo falhar e os existentes funcionarem como esperado, podemos confirmar que ele foi adicionado corretamente. Chamamos essa etapa de vermelho, pois essa cor representa o teste que falha.

Escreva o código mínimo.

A próxima etapa é escrever a menor quantidade de código necessária para passar no teste. O código escrito nessa etapa não precisa ser perfeito e pode ser melhorado depois, mas cuidaremos disso na última etapa. A ideia principal é que o código passe no teste, então o desenvolvedor deve evitar escrever código desnecessário que ultrapasse as necessidades dele.

Execute todos os testes.

Repita a segunda etapa, mas desta vez todos os testes devem passar. Isso indicará como o novo código e os novos testes funcionam e se afetam o código e os testes existentes. Chamamos essa etapa de verde, pois essa cor representa o sucesso dos testes.

Refatore o código.

A última etapa envolve todas as melhorias e mudanças necessárias no novo código. A ideia geral da refatoração é revisar o código para identificar mudanças e realizar melhorias. Isso pode incluir limpá-lo, verificar nomes de métodos e atributos, conferir o tamanho de métodos e funções, dividir métodos longos em outros menores ou mover o código para uma seção mais adequada do sistema. É recomendável usar as melhores práticas de código limpo ao refatorar.

Repita o ciclo.

Depois de concluir a refatoração, podemos repetir todo o ciclo criando novos testes para avançar na implementação da função ou funcionalidade. É importante considerar que, se o novo código quebrar testes existentes que antes passavam, talvez seja necessário revertê-lo.


TDD é uma ótima técnica de programação que permite aos desenvolvedores melhorar seu desempenho e confiança. É uma excelente forma de garantir que o produto atenda aos requisitos do cliente, e esperamos que este artigo ajude a entender seus fundamentos.

“Os benefícios de usar TDD” por Facundo Revello está sob a licença CC BY SA. Os exemplos de código-fonte estão sob a licença MIT.

Foto de capa de Clément H. Gráfico de Vskills.

Classificado em Pesquisa e aprendizado.

Leituras relacionadas