Testamos nosso código para torná-lo mais correto (na verdade, é menos provável que esteja incorreto ). No entanto, os testes também são de código - eles também podem conter erros. E se seus testes são com erros, eles dificilmente melhoram seu código.
Posso pensar em três tipos possíveis de erros nos testes:
Erros lógicos, quando o programador não entendeu a tarefa em questão, e os testes fazem o que ele pensou que deveriam fazer, o que está errado;
Erros na estrutura de teste subjacente (por exemplo, uma abstração de simulação com vazamento);
Erros nos testes: o teste está fazendo um pouco diferente do que o programador pensa que é.
Os erros do tipo (1) parecem impossíveis de evitar (a menos que o programador apenas ... fique mais esperto). No entanto, (2) e (3) podem ser tratáveis. Como você lida com esses tipos de erros? Você tem estratégias especiais para evitá-las? Por exemplo, você escreve alguns testes "vazios" especiais, que apenas verificam os pressupostos do autor do teste? Além disso, como você aborda a depuração de um caso de teste quebrado?