Arquitetura de Automação de Teste

2,035 views
1,955 views

Published on

Apresentação sobre Arquitetura de Automação para Testes Funcionais no TestDay em 20/09/2012 na PUC - SP

Esta apresentação quer mostrar todos os pontos importantes que são necessários para uma arquitetura de testes pensanod "fora da caixa", não somente em criar um script mas em todo o processo durante a automação como gerencimento de erros e logs, relatórios e estratégia para execução da automação.

@test_day
http://testday.com.br

Published in: Technology
1 Comment
4 Likes
Statistics
Notes
No Downloads
Views
Total views
2,035
On SlideShare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
103
Comments
1
Likes
4
Embeds 0
No embeds

No notes for slide
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • Arquitetura de Automação de Teste

    1. 1. ARQUITETURA PARA AUTOMAÇÃODE TESTE DE SOFTWAREEm quais pontos pensar quandoautomatizamos funcionalmente os testes deuma aplicação?
    2. 2. O que é Arquitetura deAutomação de Testepra mim? 2
    3. 3. Automação sem uma arquitetura é pobre! 3
    4. 4. Olha, eu automatizo!!!Gravar um script através do Record and PlayAlterar o script em cada execuçãoAnalisar o resultado em tela após e execução do scriptTalvez documentar a execuçãoTalvez documentar um erro encontradoReexecutar o script 4
    5. 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. 6. Automação por record and play...Você está fazendo isso errado! 6
    7. 7. A automação deve serrápida...... e o mais rápido que puder! 7
    8. 8. Porque???É um dos maiores ganhos que temos com a automaçãoEm automação funcional não precisamos de think time! 8
    9. 9. Evite!!!Evite usar mecanismos de pausas implícitas (baresleeps) Preencher o campo de usuário e senha Clicar no botão Login Esperar por 30 segundos Clicar no link Relatórios 9
    10. 10. Use!Use mecanismos nativos para esperas (callback orpolling) 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. 11. Gerenciar os erros (ou possíveiserros)é essencial! 11
    12. 12. Como analisar e tratar os erros? 12
    13. 13. MecanismosGeração de arquivos de logsUtilização de mecanismos da própria linguagem de programação • raise-rescue Ruby • try-cath Java/C# • try-except PhytonUso de alguma ferramenta 13
    14. 14. 14
    15. 15. Programe! 15
    16. 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 VoltarDeu 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 logFinalize Gere o relatório de evidência 16
    17. 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. 18. Data Driven Testing! 18
    19. 19. Como executamos testes com dados?Cenário de Teste: efetue transferências entre contas do mesmobancoCaso de Teste: Efetuar transferência de conta corrente para contacorrente Passo Resultado EsperadoClicar 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 SilvaPreencher 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çaClicar•no Valor (R$): 400.00 botão “Efetivar” Apresentar nova tela com a mensagem: “Transferência efetuada com sucesso” 19
    20. 20. Script?Clicar sobre o link “Transferência entre contas”Validar Agencia: 1234Validar Nome: Fulano da SilvaPreencher Minha Conta: 98765-1Preencher Agencia creditada: 7489Preencher Conta Creditada: 361029-5Preencher Retirar da: PoupançaPreencher Valor (R$): 400.00Clicar em TransferirValidar Mensagem: Saldo suficiente para transferirValidar Para: Ciclano SouzaValidar Valor (R$): 400.00Clicar em EfetivarValidar mensagem: Transferência efetuada com sucesso 20
    21. 21. Não mantenha dadosfixos em casos/scriptsde teste... NUNCA! 21
    22. 22. Nunca crie N Casos deTeste “diferentes”somente para mudançados dados! 22
    23. 23. Script Data DrivenCarrega arquivo dados.csvEnquanto 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. 24. Gerar relatórios é essencial! 24
    25. 25. Quais relatórios gerar?High-Level • Relatório Sumarizado do Teste • Relatório individual de execuçãoLow-Level • Relatório de Evidências de Teste • Relatório das validações de cada Teste 25
    26. 26. Como gerar?Funcionalidade existente dentro da própriaferramentaFerramentas externasDesenvolver sua própria engine de relatórios 26
    27. 27. Defina uma estratégia paraexecução 27
    28. 28. Como? 28
    29. 29. @eliasnogueirahttp://about.me/eliasnogueirahttp://slideshare.net/elias.nogueira 29

    ×