Verificar por testes
Um teste vermelho primeiro; do contrário, você não sabe o que foi corrigido.
Fazer o trabalho ser verificado por testes
O agente anuncia que o bug foi corrigido e adiciona um teste. O teste passa. Você fecha o ticket. Duas semanas depois, o mesmo incidente volta à produção, idêntico. Ao revisar o diff, você percebe que o teste adicionado não passava pelo caminho de código em questão: ele verificava que uma função vizinha retornava um dicionário. Ele teria passado antes da correção exatamente como depois. Você nunca teve a prova de que algo tivesse sido consertado, apenas uma luz verde produzida ao mesmo tempo que uma modificação.
Esse é o ponto menos compreendido no uso de um agente. Um teste escrito depois de uma correção, por quem acabou de fazer a correção, não testa o bug: testa o código tal como acabou de ser escrito. O raciocínio do agente é circular, e é sem intenção de enganar — ele observa o comportamento atual do próprio código e o registra como esperado. Um teste cuja falha nunca foi vista não demonstra absolutamente nada. A disciplina que resolve esse problema é antiga e cabe em uma frase: vermelho antes do verde. Com um agente, ela muda de status: de boa prática opcional, passa a ser o único meio de saber se a correção tem alguma relação com o problema.
Comentários
Os comentários são alimentados pelo GitHub Discussions
Conecte-se com o GitHub para participar da discussão