rafael-pestano - DTI - STD - Ramal 4780
“Verificação de um programa sem a execução do mesmo.“
Tipos:
Preventiva
Exemplo pmd
Reativa
“Testes automatizados garantem que software irá executar conforme o especificado.“
Facilita manutenção/refatoração;
Documenta o software;
Identifica problemas arquiteturais.
Escopo pequeno (facil de descobrir causa de falhas);
Feedback rapido (executa em milisegundos);
Teste isolado (dependencias são "mocadas").
Evitar muitas asserções por teste;
Nomes de metodos signigficativos;
Usar builders/factories.
Feedback e escopo mediano;
Testa componentes combinados (integração);
Geralmente envolve diversas camadas da aplicação(exceto visão) como banco, filesystem, transações, segurança etc...
Testem em um ambiente o mais próximo possível de produção (Arquillian);
Usem banco em memória;
preparem o banco com o dbunit;
Executem os testes a cada commit (se possível).
Testa requisitos funcionais;
Feedback demorado (varios minutos.);
Difícil encontrar causa de erros
Priorizem o que vão automatizar;
Usem page objects;
Usem o Graphene;
Usem o webdriver phantomjs na integração continua;
Localmente o webdriver do chrome é o mais rápido (no linux é dificil de acompanhar o teste).
Integrar e testar a qualidade do código da equipe frequentemente;
Falhar o quanto antes (principalmente antes de ir pra produção)
Commitem poucas alterações e com mais frequencia;
Quando o build falha a equipe deve priorizar a correção
“Without testing, it becomes religion.“