Coding Dojo Floripa

Desenvolvimento Ágil

Top 5 desculpas de quem não quer programar orientado a testes

Posted by Ivan Sanchez em Sexta-feira, Novembro 3, 2006

Quando comecei a usar TDD regularmente, várias vezes tentei me enganar para de alguma forma poder ignorar os testes e partir direto para codificação. E inevitavelmente depois eu via que com os testes eu poderia ter facilitado a minha vida.

Depois de um tempo eu vi que outras pessoas também usavam as mesmas desculpas que as minhas. Então resolvi escrever comentando um pouco sobre as principais desculpas para não fazer TDD que eu conheço. São elas:

  1. Vai demorar muito mais: esta é uma das mais populares, utilizada inclusive pelos gerentes que se enganam pensando que ter qualquer coisa pronta é sinal de produtividade. Só que a maioria das pessoas adeptas desta desculpa pensam que o tempo de desenvolvimento de uma funcionalidade é só aquele utilizado para entregá-la. Supondo que uma pessoa produziu todo o código utilizando basicamente seus instintos e disse “terminei” sem nenhum tipo de validação, os riscos de ter alguma coisa incorreta aumentam bastante. E é neste ponto que TDD apresenta uma vantagem. O programador é obrigado a explorar melhor o problema, e ao terminar de codificar já terá uma série de testes automatizados para mostrar que aquilo que foi feito funciona. Ou seja, para entregar pode até ser que demore mais, mas para ter uma funcionalidade de acordo com os requisitos e sem defeitos o tempo provavelmente será menor.
  2. A funcionalidade é muito fácil: se depois de uma breve avaliação o sujeito achar que a solução a ser programada é muito fácil, ele está correndo três riscos: 1) Não entendeu todas as variações do problema; ou 2) Vai programar com displiscência; ou 3) Planeja usar e abusar de um dos piores inimigos da programação, o Ctrl+C, Ctrl+V. Em todos os casos a possibilidade de fazer besteira é iminente e poderia ser diminuída com testes, onde o problema seria explorado melhor antes do código e haveria a chance de remover a duplicação de código com auxílio de testes. Estes testes também confirmariam que a mudança não quebrou outra parte do sistema, o que indica que deveriam haver testes para todo o sistema.
  3. Não sei como testar: quem está começando a usar TDD tem essa desculpa na ponta da língua. É como se não conhecesse uma biblioteca e isto o impedisse de programar. Mas programar orientado a testes não é tão difícil assim, afinal se trata apenas de programação, coisa que já estamos acostumados. Basta pensar no problema que as perguntas surgem e aí estão os testes. Escreva a pergunta, pense na resposta e a escreva também. Com o tempo as perguntas vão ficando melhores, mas não saber fazê-las não pode ser a razão para não começar.
  4. Isso não dá pra testar: este é um mito que não tem fundamento. Tudo é testável, embora alguns casos sejam mais difíceis ou exijam um pouco mais de pesquisa. Dificilmente você terá um cenário que outros não tenham conseguidos testar, e neste caso é só aprender como se faz. Se ainda assim o cenário for inédito na literatura, existe uma comunidade grande sempre disposta a ajudar, então só basta querer. Ah! E na maioria dos casos usar mocks e stubs resolvem os problemas ditos como “não testáveis” pelos iniciantes.
  5. Melhor deixar os testes com testadores: aqui é um exemplo de que não se entendeu pra que serve TDD afinal. Escrever testes de unidade por si só não significa programar orientado a testes, uma vez que os testes são escritos antes do código existir e de maneira incremental. Então deixar os testes com os testadores significa abrir mão de uma ferramenta de modelagem simples, pensando que esta se trata apenas de testes.

6 Respostas to “Top 5 desculpas de quem não quer programar orientado a testes”

  1. […] utilize o RSpec, ou alguma ferramenta BDD ou TDD, seu aplicativo ficará saudável, não tem mais desculpa. (Não preparei nada para a alternativa ‘não’ […]

  2. […] Top 5 desculpas de quem no quer programar orientado a testes […]

  3. Jônatas Paganini said

    sempre falo que se não dá pra testar ou é por que o código está fazendo muita coisa ou não serve para nada.😀

  4. […] Como qualquer pessoa eu cometi/pensei algumas das 5 maiores desculpas para não desenvolver testes! […]

  5. […] Top 5 desculpas de quem não quer programar orientado a testes […]

  6. […] Top 5 desculpas de quem não quer programar orientado a testes […]

Deixe uma Resposta

Preencha os seus detalhes abaixo ou clique num ícone para iniciar sessão:

Logótipo da WordPress.com

Está a comentar usando a sua conta WordPress.com Terminar Sessão / Alterar )

Imagem do Twitter

Está a comentar usando a sua conta Twitter Terminar Sessão / Alterar )

Facebook photo

Está a comentar usando a sua conta Facebook Terminar Sessão / Alterar )

Google+ photo

Está a comentar usando a sua conta Google+ Terminar Sessão / Alterar )

Connecting to %s

 
%d bloggers like this: