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
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
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
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
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
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
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
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