Advertisement
Advertisement

More Related Content

Advertisement

More from Elias Nogueira(20)

Advertisement

Recently uploaded(20)

Arquitetura de Automação de Teste

  1. ARQUITETURA PARA AUTOMAÇÃO DE TESTE DE SOFTWARE Em quais pontos pensar quando automatizamos funcionalmente os testes de uma aplicação?
  2. O que é Arquitetura de Automação de Teste pra mim? 2
  3. Automação sem uma arquitetura é pobre! 3
  4. Olha, eu automatizo!!! Gravar um script através do Record and Play Alterar o script em cada execução Analisar o resultado em tela após e execução do script Talvez documentar a execução Talvez documentar um erro encontrado Reexecutar o script 4
  5. Automatiza mesmo??? [Humano] Gravar um script através do Record and Play [Humano] Alterar o script em cada execução [Humano] Analisar o resultado em tela após e execução do script [Humano] Talvez documentar a execução [Humano] Talvez documentar um erro encontrado [Humano] Reexecutar o script 5
  6. Automação por record and play... Você está fazendo isso errado! 6
  7. A automação deve ser rápida... ... e o mais rápido que puder! 7
  8. Porque??? É um dos maiores ganhos que temos com a automação Em automação funcional não precisamos de think time! 8
  9. Evite!!! Evite usar mecanismos de pausas implícitas (bare sleeps) Preencher o campo de usuário e senha Clicar no botão Login Esperar por 30 segundos Clicar no link Relatórios 9
  10. Use! Use mecanismos nativos para esperas (callback or polling) Preencher o campo de usuário e senha Clicar no botão Login Esperar pelo carregamento da página carregou? não: espere mais 1 segundo sim: continue Clicar no link Relatórios 10
  11. Gerenciar os erros (ou possíveis erros) é essencial! 11
  12. Como analisar e tratar os erros? 12
  13. Mecanismos Geração de arquivos de logs Utilização de mecanismos da própria linguagem de programação • raise-rescue Ruby • try-cath Java/C# • try-except Phyton Uso de alguma ferramenta 13
  14. 14
  15. Programe! 15
  16. Programe! Fica esperto se ocorrer algum erro Carregar dados do arquivo externo Clicar sobre o link Cadastro Enquanto existir dados no arquivo externo Preencher Nome: <nome> Preencher CPF: <CPF> Clicar no botão OK Validar mensagem apresentada <mensagem> Clicar no link Voltar Deu erro? Fu.... Se erro for Não encontrou campo Tente novamente Se erro for Registro não chegou Tente carregar o registro novamente Se erro foi qualquer outro Gere um arquivo de log Finalize Gere o relatório de evidência 16
  17. Programe! try { ArrayList dados = CarregaDados.carrega(C:massaDados.xls); driver.findElement(By.visibleText(“cadastro”)).click(); for (int i = 0; i < dados.size() ; i++) { driver.findElement(By.id(“nome”)).sendKeys(dados[i]); driver.findElement(By.id(“cpf”)).sendKeys(dados[i+1]); driver.findElement(By.id(“ok”)).click(); Assert.assertEquals(“Sucesso!”, alert.getAlert()); Driver.findElement(By.visibleText(“Voltar”)).click(); } catch (ElementNotFound enf) {} catch (DataNotFound dnf) {} catch (Exception e) {} finally { Report.geraEvidencia(); } 17
  18. Data Driven Testing! 18
  19. Como executamos testes com dados? Cenário de Teste: efetue transferências entre contas do mesmo banco Caso de Teste: Efetuar transferência de conta corrente para conta corrente Passo Resultado Esperado Clicar sobre o link “Transferência entre contas” Apresentar tela de Transferência com os dados básicos do usuário apresentados: • Agencia: 1234 • Nome: Fulano da Silva Preencher os seguintes campos e clicar em Apresentar nova tela com os seguintes dados: “Transferir” • Mensagem: Saldo Suficiente para • Minha Conta: 98765-1 transferir • Agencia creditada: 7489 • Para: Ciclano Souza • Conta Creditada: 361029-5 • Valor (R$): 400.00 • Retirar da: Poupança Clicar•no Valor (R$): 400.00 botão “Efetivar” Apresentar nova tela com a mensagem: “Transferência efetuada com sucesso” 19
  20. Script? Clicar sobre o link “Transferência entre contas” Validar Agencia: 1234 Validar Nome: Fulano da Silva Preencher Minha Conta: 98765-1 Preencher Agencia creditada: 7489 Preencher Conta Creditada: 361029-5 Preencher Retirar da: Poupança Preencher Valor (R$): 400.00 Clicar em Transferir Validar Mensagem: Saldo suficiente para transferir Validar Para: Ciclano Souza Validar Valor (R$): 400.00 Clicar em Efetivar Validar mensagem: Transferência efetuada com sucesso 20
  21. Não mantenha dados fixos em casos/scripts de teste... NUNCA! 21
  22. Nunca crie N Casos de Teste “diferentes” somente para mudança dos dados! 22
  23. Script Data Driven Carrega arquivo dados.csv Enquanto existir dados no arquivo Clicar sobre o link “Transferência entre contas” Validar Agencia: <agencia> Validar Nome: <nome cliente> Preencher Minha Conta: <minha_conta> Preencher Agencia creditada: <agencia_cred> Preencher Conta Creditada: <conta_cred> Preencher Retirar da: <retirar_da> Preencher Valor (R$): <valor_retirada> Clicar em Transferir Validar Mensagem: <mensagem> Validar Para: <favorecido> Validar Valor (R$): <valor_retirada> Clicar em Efetivar Validar mensagem: <mensagem_sucesso> 23
  24. Gerar relatórios é essencial! 24
  25. Quais relatórios gerar? High-Level • Relatório Sumarizado do Teste • Relatório individual de execução Low-Level • Relatório de Evidências de Teste • Relatório das validações de cada Teste 25
  26. Como gerar? Funcionalidade existente dentro da própria ferramenta Ferramentas externas Desenvolver sua própria engine de relatórios 26
  27. Defina uma estratégia para execução 27
  28. Como? 28
  29. @eliasnogueira http://about.me/eliasnogueira http://slideshare.net/elias.nogueira 29

Editor's Notes

  1. \n
  2. \n
  3. \n
  4. \n
  5. \n
  6. \n
  7. \n
  8. \n
  9. \n
  10. \n
  11. \n
  12. \n
  13. \n
  14. \n
  15. \n
  16. \n
  17. \n
  18. \n
  19. \n
  20. \n
  21. \n
  22. \n
  23. \n
  24. \n
  25. \n
  26. \n
  27. \n
  28. \n
  29. \n
Advertisement