Os testes já foram testados. Os testes são, por design, protegidos contra os bugs, porque o teste detecta apenas as diferenças entre o código e as nossas expectativas. Se houver problemas, temos um erro. O erro pode estar no código ou com a mesma probabilidade nos testes.
-
Existem algumas técnicas que o impedem de adicionar o mesmo erro no código e nos testes:
- O cliente deve ser uma pessoa diferente do implementador.
- Primeiro, escreva os testes e, em seguida, o código (como no Desenvolvimento Orientado a Testes).
-
Você não precisa testar a plataforma subjacente. Os testes não apenas exercitam o código escrito por você, mas também executam o código da plataforma. Enquanto você não precisa pegar bugs na plataforma de testes, é muito difícil escrever código e testes que sempre escondem um bug na plataforma, ou seja, é muito difícil ter um bug sistemático tanto no seu teste / código quanto na plataforma, e a probabilidade é reduzida com cada teste que você cria. Mesmo se você tentasse fazer isso, teria uma tarefa muito difícil.
-
Você pode ter erros nos testes, mas geralmente eles são capturados facilmente porque os testes são testados pelo código desenvolvido. Entre o código e os testes, você tem um feedback de auto-imposição. Ambos fazem previsões sobre como uma chamada específica de uma interface deve se comportar. Se a resposta for diferente, você não precisa ter um bug no código. Você pode ter um bug no teste também.