Testes automatizados são bons. Eles podem ser melhores? Quanto valor testes automatizados podem acrescentar a sua empresa?
Como num checkup, você pode saber se sua suíte de testes está com uma boa saúde ou não. As respostas às perguntas abaixo podem ajudar:
- Eles quebram quando um corportamento muda porque as expectativas deles eram outras?
- Eles guiam o desenvolvedor a corrigí-los ao invés de só apontar uma falha?
- A equipe não se preocupa com o tempo de execução de um teste enquanto os está criando?
- A equipe trata os testes com as mesmas métricas de qualidade do software?
- Os testes e a implementação são tratados como um só, um commit (atômico) acompanha sempre a regra de negócio e os testes que a acompanham?
- Os testes não possuem nenhum código de suporte mantido só para eles. Em outras palavras, seus testes consomem só código que sua aplicação real usa e as ferramentas de testes já provêem?
- Você testa casos pra provar como uma implementação funciona e não como ela falha?
Pra cada "não", você perdeu uma grande oportunidade de ganho com sua suíte. Responda "não" pra pelo menos 3 perguntas acima e eu acho que sua equipe (e seus testes) estão doentes. Os sintomas geralmente são:
- Os testes não impedem as falhas do software de virarem defeito. Bugs continuam ocorrendo em uma quantidade assustadora.
- Os desenvolvedores enxergam os testes como mais uma burocracia imposta pela gestão.
- Os testes são extremamente difíceis de entender.
- Corrigir um teste basicamente significa trocar o valor esperado de uma asserção.
- "Testar" é uma parte separada do desenvolvimento de software. "Em desenvolvimento" e "em testes" são duas cerimônias diferentes e independentes.
- "Rápido" e "qualidade" são antônimos.
- "Debug" e "testes" são duas coisas bem diferentes.
- Ambientes diferentes oferecem resultados diferentes.
- "Staging caos". O ambiente de testes, parecido com produção e compartilhado por todos deixa a Faixa de Gaza com vergonha com relação ao número de conflitos.
Não espere que automatizar os testes irá ser como um remédio para todos os seus problemas. Nem [TDD][]. Na melhor das hipóteses eles irão apontar um caminho melhor, cabe sempre ao desenvolvedor e a equipe enxergá-lo e conquistá-lo.