O que é um bom teste, um mau teste!

Na verdade, escrever bons testes é tão difícil quanto escrever um bom código de produção, exigindo prática cuidadosa e consideração cuidadosa. No entanto, muitas vezes eu vi códigos de teste sendo tratados como cidadãos de segunda classe. Essa situação geralmente significa que não obtemos os benefícios que merecemos com o teste. No final, o conjunto de teste é mais um fardo do que um ativo.

Bom conjunto de teste:

1. Confiança

Depois de modificar o código, é suficiente enviar o código com confiança após executar o teste? Que tal ficar online diretamente?
Minha experiência é que o teste de unidade não é suficiente. Precisamos de alguns testes de pilha completa, BDD e testes de integração para aumentar a confiança.

Deve-se observar que, se houver dois testes para o mesmo ponto de função para fornecer confiança, então um teste é redundante.

Além disso, se você estiver realmente confiante no conjunto de teste, mas os bugs em seu produto lançado continuarem a aumentar, sua confiança pode estar perdida.

Dois, pegue o bug

Se você tem um teste que nunca será uma luz vermelha, não vale a pena porque não detectará nenhum bug, e esse é o principal motivo da existência do teste.

3. Fácil de cuidar

Se você passar muito tempo modificando ou reescrevendo testes enquanto refatora seu código, seu conjunto de testes não valerá o preço. Se você usar muitos objetos simulados, acho ainda mais. Em muitos casos, o resultado final é um software padronizado demais.

Quatro, sistema de descrição

Os casos de teste devem nos dizer o que o sistema fez e, de preferência, por que o fizeram.
Existem apenas alguns testes que devem ser usados ​​para nos dizer como isso é feito, e sabemos que esses testes serão descartados se fizermos uma grande refatoração.

Cinco, sem bugs

Saber que o teste está realmente testando seu código alvo, ou seja, a melhor maneira de se testar sem bugs é observar a mudança do teste de uma luz vermelha para uma luz verde após alterar o código de produção.

É por isso que você deve escrever testes antes de escrever o código de produção.

Considere também o uso de testes de mutação para encontrar pontos cegos no conjunto de teste.

Seis, forte

Se você tiver um teste caprichoso em seu conjunto de testes, ele falhará inexplicavelmente. Isso prejudicará todo o conjunto de testes porque as pessoas não levarão mais a sério as falhas nos testes.
Exclua este teste.

Seven, dirigido por alguém

Talvez pareça um pouco bobo, mas eu vi e escrevi muitos testes, mas ninguém os executa. incluir:

  • Testes que são comentados ou marcados com @Ignored.
  • Teste muito lento.
  • Algumas etapas manuais são necessárias para o teste, como a instalação de um banco de dados, contêiner de aplicativo ou middleware de mensagens.
  • Testes que não podem ser executados ou depurados no IDE.

Resumindo, um bom conjunto de testes nos ajudará a evoluir o sistema.
Os testes devem apoiar a mudança, não impedir a mudança.

Afinal, como Dave Thomas e Andy Hunt disseram, estamos sempre mudando os sistemas existentes.

Toda a programação é trabalho de manutenção, porque raramente escrevemos código completamente novo.
O código é totalmente novo apenas nos 10 minutos que você acabou de digitar.

Recomende bons artigos:

Que tipo de pessoa é adequada para teste de software?

Conhecimento para entender o teste automatizado python (3)

O que é mais adequado para testes automatizados, Python ou Java?

O trabalho diário dos testadores de software

Jogue com os testes automatizados Python + Selenium em 10 minutos e ensine a você um início rápido!

10 anos de percepções de engenheiros de teste de software - para amigos que ainda estão confusos

Finalmente: Bem-vindo a seguir o editor para receber um resumo do conhecimento básico dos engenheiros de teste automatizado Python com um documento pdf de 300 páginas! Grupo de troca de tecnologia de teste de software: (313782132) O conteúdo desses materiais são todos os pontos de conhecimento que o entrevistador deve perguntar durante a entrevista. O capítulo inclui muitos pontos de conhecimento, incluindo conhecimento básico, Linux Essentials, Shell, Princípios de programas de Internet, Mysql Banco de dados, tópicos de ferramenta de captura de pacote, ferramentas de teste de interface, programação Python de teste avançado, teste de automação da Web, teste de automação de APP, teste de automação de interface, teste de integração contínua avançada, estrutura de teste de desenvolvimento de arquitetura de teste, teste de desempenho, teste de segurança, etc.

Acho que você gosta

Origin blog.csdn.net/weixin_50271247/article/details/108490808
Recomendado
Clasificación