Aprendendo TDD! Pra que testes?

“Nossa, o condicional desse if está muito grande e confuso…”, você pensa ao tentar entender a lógica de processamento de pagamento da aplicação. Até pensa em refatorar e extrair a lógica pra um método, mas ai lembra que essa parte é a que valida o pagamento. Melhor deixar quieto e não mexer no que funciona né?

Os benefícios de ter uma boa cobertura de testes, seja fazendo TDD ou o outro TDD (Teste Depois do Desenvolvimento) são muito bons. A confiança de validar o seu trabalho executando apenas um comando são muito grandes. Nós temos a sorte de poder contar com esta técnica na nossa profissão, então vamos usá-la?

TDD está vivo ou morto?

Algum tempo atrás tentaram matar o TDD, mas acho que ele sobreviveu no final das contas. E então, vale a pena fazer TDD? Eu acredito que sim e faço todo dia.

Fazer TDD é difícil e exige uma boa quantidade de prática e treino. Das primeiras vezes que tentei fazer TDD eu simplesmente não conseguia visualizar os testes e saber o que escrever. Então eu decidi focar em fazer testes, mesmo que escrevendo a lógica primeiro, até me acostumar com a estrutura de testes.

Hoje em dia eu consigo sentir que, ao pensar primeiro nos testes e em como eu gostaria de usar o código que vou escrever antes de escrevê-lo, eu consigo visualizar melhor o design e separar as responsabilidades. Mas isso levou um bom tempo, para quem ainda não tem o costume de escrever testes, talvez já começar com TDD seja um esforço muito grande que acabe atrapalhando os benefícios da técnica.

Então, antes de se preocupar em fazer os testes antes, foque em escrever testes e ouvir o feedback que eles te dão.

O que os testes te dizem

Testes são a melhor maneira de documentar seu código, pois eles mudam conforme a lógica. Uma API que possui testes validando o seu contrato, permite que qualquer pessoa veja os testes e entenda quais são os dados que precisam ser enviados.

Uma documentação estática, apesar de importante, exige um esforço extra para os desenvolvedores, não só de escrever, mas também de lembrar de atualizar a cada mudança no código. Então manter os testes legíveis é tão importante quanto manter o código de produção legível.

Ter testes diminui muito a carga cognitiva que precisamos carregar ao desenvolver, pois eles te dão feedback na hora sobre o que você fez. Se você esqueceu de alguma coisa, ou inverteu a lógica do if sem querer, os testes estão lá pra te salvar.

Além disso, o benefício mais óbvio dos testes é aumentar a confiança da equipe ao aplicar mudanças e fazer melhorias no código. Ao corrigir problemas e bugs no código é importante garantir que eles não voltem, adicionando mais testes.

Esse foi o primeiro post da série Aprendendo TDD! Fique ligado pois toda semana terá uma publicação nova com dicas para quem quer começar a escrever testes e aplicar TDD.

 

Anúncios

Deixe um comentário

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