TDD vs. Testes de Unidade

Qual a diferença entre TDD e Testes de Unidade?

Qual a diferença entre criar testes de unidade e desenvolver usando TDD (Desenvolvimento Baseado em Testes)?

É isso que veremos neste post. Veja nesta página os posts da série sobre TDD.

TDD não é Teste de Unidade

TDD não é apenas criar testes de unidade depois que o código está pronto.

TDD é seguir um processo para desenvolver o código em conjunto com os testes de unidade. E esse processo envolve criar os testes em conjunto com o código, de forma que ambos avancem no mesmo passo.

Desenvolver software é como correr uma maratona: é um processo longo, difícil e exige treinamento.

Seguindo com esta analogia, o código de produção e os testes podem ser considerados as duas pernas do atleta.

Criar testes depois do código de produção é como pular com um pé só por todo o percurso e depois tentar seguir o mesmo caminho pulando com o outro pé.

Aprendendo a Programar com TDD

É fato que dificilmente se ensina, ou mesmo se introduz, o TDD quando aprendemos a programar.

Aprender a programar já é uma tarefa desafiadora. Uma exigência adicional, como a de criar testes ou de seguir o processo do TDD, acabaria se tornando uma barreira para a aprendizagem.

Voltando à analogia, na programação, primeiro aprendemos a completar a maratona pulando com uma perna só.

TDD é outro aprendizado, além da programação. Seguir seu o processo do TDD é outro exercício que também precisa ser treinado e repetido. É preciso aprender a programar para depois aprender a programar com TDD.

Veja neste post as Três Leis do TDD. TODO LINK

Um Pé de Cada Vez

De qualquer forma, completar uma maratona é um grande feito. No entanto, é mais fácil e mais agradável avançar até o fim um pé de cada vez.

Se você quer ou precisa criar testes de unidade, é muito mais agradável criá-los junto com o código.

Escrever testes de unidade não é minha atividade favorita. Para mim é monótono e entediante verificar a funcionalidade de um código que já funciona.

Usando o TDD, ou seja, criando os testes em conjunto com o código de produção, os testes deixam de ser um passo adicional e passam a fazer parte do processo de desenvolvimento do código de produção.

Considerações Finais

TDD é um processo de desenvolvimento de software que desenvolve testes de unidade em conjunto com o código de produção.

Você pode criar testes de unidade sem usar o processo do TDD. Porém o oposto não é possível.

Usar o TDD melhorou a minha perspectiva ao criar os testes de unidade.

Autor: Djones Boni

Engenheiro Eletricista.

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *