Skip to content

Instantly share code, notes, and snippets.

@augustohp
Created March 27, 2015 05:26
Show Gist options
  • Save augustohp/5b9f6be67684c002a07f to your computer and use it in GitHub Desktop.
Save augustohp/5b9f6be67684c002a07f to your computer and use it in GitHub Desktop.
Post: Como anda a saúde dos seus testes?

Como está a saúde dos seus testes?

Testes automatizados são bons. Eles podem ser melhores? Quanto valor testes automatizados podem acrescentar a sua empresa?

Como está a saúde dos seus testes?

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:

  1. Eles quebram quando um corportamento muda porque as expectativas deles eram outras?
  2. Eles guiam o desenvolvedor a corrigí-los ao invés de só apontar uma falha?
  3. A equipe não se preocupa com o tempo de execução de um teste enquanto os está criando?
  4. A equipe trata os testes com as mesmas métricas de qualidade do software?
  5. 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?
  6. 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?
  7. 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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment