Além do .NET

quinta-feira, outubro 15, 2009

Você Testa o seu Software? Como?

É realmente interessante e animador ver a grande quantidade de material, artigos, palestras e demais conteúdos sobre Testes proliferando na web. Isso mostra que estamos amadurecendo…

Acho que muitas vezes, nesse caso específico de testes, não tem meio termo. Ou testamos o nosso código ou não estamos fazendo um software de forma profissional. Podemos variar em fazer TDD ou não, ter uma cobertura 100% de testes, enfim. Mas a única coisa que não podemos é deixar de testar.

O que eu acho engraçado é que eu sempre escuto por aí que desenvolvedor não gosta de testar. Mas eu nunca conheci nenhum desenvolvedor que desse o seu trabalho como pronto sem antes rodar a aplicação e ver se o código que ele acabou de desenvolver está se comportando como o esperado. Pois bem, isso é testar. E eu acho até que isso é muito divertido, ver o código que você escreveu se comportando como você planejou.

Claro que, ficar testando as diversas possibilidades de cenários para os erros e tentar encontrar um bug no seu recém nascido (código) não é tão divertido assim. Mas o que eu quero chamar a atenção é que sempre, de uma maneira ou de outra, estamos testando o nosso código. E o pior é que os nossos testes são às vezes muito chatos pois precisamos rodar a aplicação, encontrar a tela no menu da aplicação, preencher diversos campos de um formulário da forma correta, clicar no botão que irá disparar a ação no formulário e enfim começar a debuggar o código pois, a maioria dos nossos testes são via break point! Isso sim pode ser muito chato.

Mas, quando criamos um novo método e escrevemos um código de teste para ele, não precisamos de nada disso. Precisamos apenas clicar em run e ver os verdinhos aparecendo na nossa tela, dizendo: Sim!! você estava certo e seu código está funcionando!! Isso sim é divertido!

Então, eu realmente não entendo a resistência que existe em criar testes unitários automatizados. E indo um pouco além, criar o teste antes pode até ser bem mais divertido. Nos ajuda a pensar, nos dá um desafio mais objetivo e por fim garante que realmente estamos criando os testes para o nosso código.

A diferença é que com os Testes unitários automatizados conseguimos testar muito mais vezes de uma forma muito mais rápida, e aos poucos podemos incrementar os nossos testes ampliando a qualidade do nosso código, além de todos os inúmeros benefícios que os Testes trazem.

Então, alegar qualquer motivo para não testar é uma tremenda incoerência, sendo que necessariamente vc irá testar o código ou a funcionalidade que você acabou de implementar, de um jeito ou de outro.

Então, Sim!! é claro que você testa o seu software. Resta saber se você testa bem e é realmente eficiente no seu teste… ou ainda, se você testa da maneira correta e esperta, ou da maneira burra e improdutiva.