TDD é realmente necessário?

Antes de mais nada assistam esse video muito engraçado, que diz Test All the F***in Time! 

 

O TDD é fundamental para um time ágil por alguns motivos que vou citar agora. 
  • O desenvolvimento guiado a testes influencia o time a fazer design simples para desenvolver somente o que é realmente necessário para passar no teste.
  • Influencia o time a ter uma boa cobertura de testes, o que possibilita mudanças no código mais facilmente.
  • A equipe tem mais confiança para fazer refatorações, deixando o código mais simples e limpo.
As ferramentas que temos hoje facilita muito esse tabalho, como por exemplo a família xUnit, Selenium, Mocks, cobertura de testes etc. Porém as ferramentas são para auxiliar e não devem ser impedimento para fazer TDD. Por exemplo, mesmo que alguma linguagem ainda não tenha um suporte tão bom para testes, nada impede que a gente crie nossas próprias assertions. 
Na estimativa tem que ser considerado os testes, para a própria segurança do time. Porém acontece o caso que o cliente pede para deixar os testes para depois. Nesse caso podemos dizer ao cliente que estamos estimando a construção do comportamento do software. Reparem que os testes são parte do comportamento do software!
BDD = TDD + DDD. Behaviour-Driven Development (BDD) é o desenvolvimento de software dirigido ao seu comportamento. É a união de desenvolvimento guiado por testes(TDD) e Design dirigido ao domínio da aplicação (DDD). 

Testar é investir! Ou seja, se as pessoas não conhecem a sintaxe de xUnit, nunca usaram Selenium ou se deparam com a necessidade de criar mocks para eliminar a dependência de outras classes que não são interessantes para o teste de unidade, eles terão que considerar esse tempo de aprendizagem dentro do sprint. Porém depois de familiarizado com a ferramenta/framework, os testes podem ser executados sem mesmo precisar subir um servidor de aplicação, aumentando assim a produtividade da equipe. 

No livro do Vinícius Teles tem uma metáfora muito interessante com a saúde das pessoas. O que é melhor: prevenir ou remediar?

É interessante lembrar que os Testes estão muito ligados a outra prática ágil como a Integração Contínua.

Sei que todos concordam que os testes são imprescindíveis. Portanto o cerne da discussão desse tópico é fazer os testes antes ou não. Porém acredito que fazer teste antes traga mais valor ao cliente.

Conclusão, só não testa quem realmente não quer.😉

Eu escrevi alguns posts sobre esse assunto, quem quiser pode dar uma lida e fiquem a vontade em comentar aqui e aqui

Uma resposta to “TDD é realmente necessário?”

  1. André Faria Gomes Says:

    “Teste é Investimento.” Assino em baixo!


Deixe uma resposta

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s

%d blogueiros gostam disto: