encontrados rapidamente • Aumenta o nível de confiabilidade da aplicação • Fácil implementação • Custo menor e maior eficiência com relação a testes manuais • Fácil visualização do status geral do sistema
Testes na interface da aplicação, alto nível • Simula a experiência de navegação do usuário • Testa a integração entre diferentes módulos do sistema • Instancia o DOM e envia um conjunto de instruções para a tela • Smoke Tests
Consegue testar requisições ajax e javascript sem utilizar frameworks de testes assíncronos • O código é muito legível • Tipo de teste mais estável • Requer menos modificações e refactors • Possível encontrar até erros de hardware (memória e recursos)
outros tipos de teste • Vulnerável a componentes da tela, pouca estabilidade de execução • Custo moderado de manutenção • Poucos asserts podem levar a falsos resultados de sucesso
aceitação • Exemplos de utilização são usados como base para o desenvolvimento • Promove maior integração entre os desenvolvedores, os testers e os clientes • Criação de testes a partir do refinamento de user stories
aceitação e processos na vista • Roda em vários browsers • Testes podem ser escritos em diversas linguagens • Independente do código usado no sistema • Open source!
casos de teste consistentes • Testar todo o fluxo de utilização da história • Não esquecer dos casos de falha! • Testar a integração dos componentes de cada módulo
estáveis: ids e names • Evite a dependência de recursos externos • Vá direto ao ponto: teste somente o necessário dentro do seu escopo • Foque sempre no mindset do usuário
somente com as informações necessárias • Mantenha o banco limpo antes de cada teste • Tome cuidado com a dependência entre testes • Procure parelelizar os testes • Use sempre IDs e names descritivos e legíveis • Teste somente o necessário!