13 Mar
Acho que já passou da hora dos programadores amadurecerem um pouco quanto a necessidade de testes para TODA e QUALQUER aplicação que seja escrita, independente do tamanho. Acho que já passou muito da fase na qual a arrogância era o suficiente para você acreditar que sua aplicação funcionaria sem testes, afinal, você é o melhor programador do mundo.
“Mas o Knuth não usa testes. A gente tem que seguir o exemplo dos melhores”.
Concordo. Temos que seguir o exemplo dos melhores programadores do mundo. Mas lembre-se, Knuth não usa testes porque ele é o Knuth. Se ele diz que a aplicação dele funciona sem escrever testes eu acredito. Se isso é bom, acho questionável. Knuth não trabalha com mercado. Ele não trabalha dando manutenção em código. Ele trabalha apenas em projetos onde ele tem controle total (vale lembrar que embora o TeX seja aberto, apenas o Knuth pode usar o nome TeX). E ele é um dos maiores programadores do mundo. Uma realidade bem diferente da qual eu e você passamos todos os dias.
Sei que o mundo já gritou a muito tempo que sem testes não rola nenhuma aplicação (já ouviu falar dos caras que escreveram o Manifesto Ágil? Não? Onde você viveu nos últimos anos?). Dos maiores aos menores bons programadores. Por que raios seguir o exemplo desses caras? Será que eles realmente não sabem o que estão falando?
Dê uma chance ao que eles estão dizendo.
Eu, que não sou ninguém ainda, consigo ver incontáveis vantagens em usar testes.
E você ainda acha que não vale a pena investir nisso? Ignore o que os programadores de 30 anos atrás ainda estão falando (a não ser que eles tenham bom senso e usem testes).
Mas como faço para escrever testes? Primeiro, clique aqui.
Gostou? É assim que se aprende muito em computação sobre o que é relativamente novo no mercado. E testes infelizmente ainda são relativamente novos no mercado.
E depois? O que eu devo fazer? Bom, de agora em diante, apenas ter disciplina para escrever os testes para as suas funcionalidades. Pronto. E o mundo está quase salvo =D .
Programadores não podem ter medo de aprender coisas novas. O novo, em programação, é o que vai garantir que possamos chegar em casa e viver um pouco, em vez de apenas trabalhar por horas até a exaustão.
Posts Relacionados:
Acompanhe-nos por
RSS, por Email ou via Twitter.
Veja como ter um desconto no Dreamhost: um excelente servidor web.
Email This Post
5 Responses for "Por tudo que é sagrado, escrevam testes!"
Teste, IMHO, é a preocupação se o que vc fez esta certo, atividade complementar do desenvolvimento (talvez até intrinseca). O Custo de desenvolver sem testes, sejam eles manuais ou automatizados, unitarios ou funcionais, pode ser moderado (num caso de um prototipo), alto (no caso de um sistema simples) ou inadmissivel (no caso de sistemas criticos). Feita a opção razoavel por testes, existe toda uma literatura de como testar, que abordagens seguir, etc.
Ficar atras de métricas por que alguem exige não é testar: de fato queremos melhorar o design das nossas aplicações, queremos evoluir sistemas aos poucos garantindo que certas funcionalidades não foram afetadas e, principalmente, temos o aspecto psicologico de trabalhar em um ambiente aonde um dos objetivos é a melhoria continua. Se alguem leu “A Catedral e o Bazar” lembra desse trecho:
– O clássico “The Psychology Of Computer Programming”, de Gerald Weinberg, sustentou o que, em retrospectiva, nós podemos ver como uma correção essencial ao Brooks. Em sua discussão sobre “programação sem ego”, Weinberg observou que nos lugares onde desenvolvedores não são territoriais sobre seu código, e encorajam outras pessoas a procurar por erros e melhorias potenciais nele, as melhorias acontecem dramaticamente mais rápidas que em qualquer outro lugar. –
Não é a toa que os metodos ágeis e o software livre representam revoluções no modo como desenvolvemos software :)
Jonas,
Você sabe o quanto “provei” desse veneno, ainda há resquícios e não sou corajoso quanto deveria, mas passei da fase(antes tarde do que nunca) de jogar a sujeira embaixo do tapete e acho que o fato de ter reconhecido essa deficiência é um bom começo :)
Se pensarmos, o ato de ser “corajoso” e não ter medo de aprender coisas novas faz parte do nosso dia-a-dia e não só na programação, uma pessoa sem coragem não expõem opinião, não procura um melhor emprego, não tira sua habilitação, não ranca seu dente do siso cariado, não ergue mais peso na academia…no fim tudo faz sentido e se relacionam.
Excelente post.
[...] - trabalhando com mock objets em java Easy AdSenser by UnrealLendo sobre testes unitarios, imagine o caso onde o seu teste é complexo: um objeto que chama outro e, então, [...]
Jonas,
Seu artigo é excelente. Tenho, relativamente, pouco tempo de experiência no mundo do desenvolvimento e muito de suporte técnico.
Na área de suporte, uma das estratégias para identificar erros rapidamente é a consulta na base de conhecimento, cujo advento partiu dos testes efetuados anteriormente por outros técnicos.
Na programação, os testes são, de fato, importantes por diversas similaridades com o suporte (ou melhor referenciado por manutenção) e por todos os motivos listados em seu texto.
Acompanho sempre o blog através dos feeds.
Parabéns e até a próxima.
[...] sobre testes unitarios, imagine o caso onde o seu teste é complexo: um objeto que chama outro e, então, [...]
Leave a reply