Baixe o app para aproveitar ainda mais
Prévia do material em texto
Testes de Software 1 AU LA 0 3 – F E RRAMENTA S D E AUTOMAÇÃO D E T E S T E S Anne Caroline O. Rocha – Tester Certified – BSTQB – NTI|UFPB Conteúdo Programático – Aula 03 2 � O que é automação de testes? � Conceitos de automação de teste � Ferramentas de Teste � Principais dicas para automação � Automação de testes de aceitação – EasyAccept e JUnit Anne Caroline O. Rocha – Tester Certified – NTI|UFPB � Automação de testes de aceitação – EasyAccept e JUnit � Automação de testes de cobertura – EmmaCoverage � Ferramenta para verificação estática de código – FindBugs � Considerações Finais � Referências O que é automação de testes? 3 É uma maneira de realizar testes utilizando alguma ferramenta para Anne Caroline O. Rocha – Tester Certified – NTI|UFPB utilizando alguma ferramenta para automatizar determinadas atividades que são realizadas manualmente. Conceitos de automação de teste 4 � Script de Teste � Arquivo que compõe os passos do caso de teste a serem executados sobre o sistema. � Gravador ou “Recorder” Anne Caroline O. Rocha – Tester Certified – NTI|UFPB � Gravador ou “Recorder” � Grava na forma de uma linguagem própria passos da execução dos testes manuais. � Executor de teste ou “Playback” � Recurso das ferramentas para re-executar tudo o que foi gravado no script de teste. Ferramentas de Teste 5 Ferramenta de planejamento de testes Carga e Performance Ferramenta de testes funcionais Anne Caroline O. Rocha – Tester Certified – NTI|UFPB • TestLink • JMeter • Selenium • Badboy Ferramentas de Teste 6 Code Coverage • Emma Teste de Unidade • JUnit Teste de Aceitação • EasyAccept Verificação Estática • FindBugs Anne Caroline O. Rocha – Tester Certified – NTI|UFPB • Emma Coverage • JUnit • EasyAccept • FindBugs Principais dicas para automação 7 Crie os casos de teste para depois automatizar Não pense em automatizar tudo Anne Caroline O. Rocha – Tester Certified – NTI|UFPB Automatize o que é prioridade Ferramentas têm que se adaptar às novas interfaces Automação requer experiência na ferramenta Inicie a automação o quanto antes no projet 8 Testes de Software AU LA03 – TU TOR IA L PARA F E RRAMENTA EA SYACC E P T O EasyAccept 9 1. EasyAccept é uma ferramenta que ajuda a criar testes de aceitação de forma fácil e rápida. 2. Possibilita que clientes e os desenvolvedores de software possam se comunicar de forma mais clara. Anne Caroline O. Rocha – Tester Certified – BSTQB – NTI|UFPB possam se comunicar de forma mais clara. 3. É uma ferramenta OpenSource 4. O EasyAccept pode ser utilizado para testar sistemas em Java ou em Python. O EasyAccept 10 Usuário Resultado do Teste Comando [EasyAccept,2011] Anne Caroline O. Rocha – Tester Certified – BSTQB – NTI|UFPB Façade Sistema a ser testado Usuário Script de Teste Comando Método Resultado Resultado EasyAccept - Sintaxe do Script de Teste 11 � Comandos: � Comando sem retorno � createUser userID=1 name=“Joana Mendes" birthday=4/2/1960 � Comando expect Anne Caroline O. Rocha – Tester Certified – BSTQB – NTI|UFPB � Comando expect � expect “Joana Mendes " getUserName userID=1 � Adicionar valor em uma variável � Id1=getUserName userID=1 EasyAccept - Sintaxe do Script de Teste 12 � Comandos: � Comando equalFiles � equalFiles c:/relatorio1.txt c:/relatorio2.txt � Comando expectError expectError “Data inválida." createUser name="Joana Mendes" Anne Caroline O. Rocha – Tester Certified – BSTQB – NTI|UFPB � expectError “Data inválida." createUser name="Joana Mendes" birthday=30/2/1960 � Comando quit � Sair do EasyAccept � Comentário: # no início do comando EasyAccept – Tipos de dados do script 13 � Tipos de dados: � String – “Texto” � Boolean – true, false � Char - “a” � Int – 1, 2… Anne Caroline O. Rocha – Tester Certified – BSTQB – NTI|UFPB � Int – 1, 2… � Double – 35,00 Passo 1 14 1. Abrir o Eclipse 2. Criar um novo projeto Java 3. Denominar “EasyAcceptProject” 4. Clicar em Finish Anne Caroline O. Rocha – Tester Certified – BSTQB – NTI|UFPB Passo 2 15 1. Criar a pasta ‘lib’ 2. Adicionar o arquivo ‘easyaccept.jar’ nesta pasta 3. Clicar com botão direito no arquivo e escolher Build Path > Add to Build Path Anne Caroline O. Rocha – Tester Certified – BSTQB – NTI|UFPB Passo 3 16 1. Criar a pasta ‘teste_aceitacao’ 2. Adicionar o arquivo ‘us1.txt’ nesta pasta Anne Caroline O. Rocha – Tester Certified – BSTQB – NTI|UFPB Passo 4 17 1. Criar o package ‘monopoly’. 2. Criar uma Façade para o sistema denominada ‘GameFacade’. Anne Caroline O. Rocha – Tester Certified – BSTQB – NTI|UFPB Passo 5 18 1. Na classe GameFacade.java, adicionar o método ‘main’ abaixo, para executar o teste do EasyAccept. Anne Caroline O. Rocha – Tester Certified – BSTQB – NTI|UFPB Passo 6 19 1. Abrir o arquivo ‘us1.txt’ e verificar que todas as linhas estão comentadas. Anne Caroline O. Rocha – Tester Certified – BSTQB – NTI|UFPB Passo 7 20 1. Abrir a classe GameFacade e executar. I. Caso a classe esteja com erro de compilação, adicionar: � import easyaccept.EasyAccept; Anne Caroline O. Rocha – Tester Certified – BSTQB – NTI|UFPB Passo 8 21 1. Após executar, o sistema abre o console com o texto: I. Test file teste_aceitacao/us1.txt: 0 tests OK 2. Isso indica que nenhum teste foi executado. Anne Caroline O. Rocha – Tester Certified – BSTQB – NTI|UFPB Passo 9 22 1. Abrir o arquivo ‘us1.txt’ e tirar o comentário do primeiro comando. Anne Caroline O. Rocha – Tester Certified – BSTQB – NTI|UFPB Passo 10 23 1. Executar novamente a classe GameFacade.java. 1. Desta vez o teste apresenta 1 erro. Anne Caroline O. Rocha – Tester Certified – BSTQB – NTI|UFPB 2. Após o erro, tentar tirar o defeito do sistema, implementando o que for necessário para o teste passar. 3. Em seguida, executar o teste e verificar se o erro foi corrigido. 4. Se tiver, tirar o comentário do próximo comando em ‘us1.txt’ 5. Executar novamente o teste. 6. Seguir esta sequência de passos até o final do script. Passo 11 24 1. Para que o primeiro comando passe no teste basta implementar a assinatura do método para o primeiro comando. 1. Executar novamente o teste. Anne Caroline O. Rocha – Tester Certified – BSTQB – NTI|UFPB Apenas valores primitivos ou String JUnit x EmmaCoverage 25 1. Crie o pacote teste_unidade 2. Adicione a classe GameTest.java neste pacote 3. Configure o Build para o JUnit3 4. Execute o teste de unidade via JUnit Anne Caroline O. Rocha – Tester Certified – BSTQB – NTI|UFPB JUnit x EmmaCoverage 26 Anne Caroline O. Rocha – Tester Certified – BSTQB – NTI|UFPB Teste de Aceitação x Unidade 27 1. Verificação – Teste de Aceitação � O sistema faz o que o cliente espera que ele faça. 2. Validação – Teste de Unidade Anne Caroline O. Rocha – Tester Certified – BSTQB – NTI|UFPB 2. Validação – Teste de Unidade � O sistema foi construído de forma correta. 28 Testes de Software AU LA03 – TU TOR IA L PARA F E RRAMENTA EMMACOVERAGE Executando o EmmaCoverage 29 1. Instalar o plugin para Eclipse do EmmaCoverage. 2. Abrir o projeto EmmaCoverageProject no eclipse 3. Na pasta src/teste_unidade executar a classe ‘GameTest’ usando o botão do EmmaCoverage Anne Caroline O. Rocha – Tester Certified – BSTQB – NTI|UFPB Executando o EmmaCoverage 30 1. Observar o percentual em que os testes abrangem o código.Anne Caroline O. Rocha – Tester Certified – BSTQB – NTI|UFPB Executando o EmmaCoverage 31 1. Pode-se supor que não há um caso de teste para a exceção StringInvalidException. 2. Na classe GameTest, no método testCreateGame() Anne Caroline O. Rocha – Tester Certified – BSTQB – NTI|UFPB 2. Na classe GameTest, no método testCreateGame() Remover as { } Adicionar Executando o EmmaCoverage 32 1. Executar a classe GameTest via o EmmaCoverage. Anne Caroline O. Rocha – Tester Certified – BSTQB – NTI|UFPB 33 Testes de Software AU LA03 – TU TOR IA L PARA F E RRAMENTA F I NDBUGS FindBugs 34 É uma ferramenta para encontrar bugs em Anne Caroline O. Rocha – Tester Certified – BSTQB – NTI|UFPB É uma ferramenta para encontrar bugs em sistemas desenvolvidos em Java. FindBugs – Categorias dos Bugs 35 • Métodos deveriam iniciar com letra minúscula. • Nomes de métodos muito confusos. Bad Practice • Chamada de método com argumento nulo. Anne Caroline O. Rocha – Tester Certified – BSTQB – NTI|UFPB • Chamada de método com argumento nulo. • Método ‘equals()’ sempre retorna true. Correctness • Campo deveria ser protected em vez de static, pois pode ser alvo de código malicioso. Malicious code vulnerability FindBugs – Categorias dos Bugs 36 • Método aloca um objeto apenas para recuperar a classe do objeto. Performance Anne Caroline O. Rocha – Tester Certified – BSTQB – NTI|UFPB • O código acessa o BD sem usar uma senha.Security • Classe implementa a mesma interface da superclasse. • Campo não inicializado no construtor. Dodgy Executando o FindBugs 37 1. Instalar o plugin para Eclipse do FindBugs. 2. Abrir o projeto FindBugsProject Anne Caroline O. Rocha – Tester Certified – BSTQB – NTI|UFPB FindBugsProject no eclipse 3. Com o botão direito clicar na opção Find Bugs Executando o FindBugs 38 1. Abrir o FindBugs Console Anne Caroline O. Rocha – Tester Certified – BSTQB – NTI|UFPB 2. Abrir o ambiente do FindBugs Executando o FindBugs 39 Anne Caroline O. Rocha – Tester Certified – BSTQB – NTI|UFPB Executando o FindBugs 40 1. Tirar o comentário no construtor da classe Game() Anne Caroline O. Rocha – Tester Certified – BSTQB – NTI|UFPB 2. Executar novamente o FindBugs Executando o FindBugs 41 Anne Caroline O. Rocha – Tester Certified – BSTQB – NTI|UFPB Referências 42 � [Delamaro, 2007] Delamaro, M., Maldonado, J. C., Jino, M. “Introdução ao Teste de Software”. Ed. Elsevier, Rio de Janeiro, 2007. � [GTSW] Grupo de Testadores de Software - http://gtsw.blogspot.com Acessado em Maio/2011. � [Molinari, 2008] Molinari, L. “Testes Funcionais de Software”. 1ª Edição, Ed. Visual Books. Florianópolis, 2008. [Molinari, 2010] Molinari, L. “Inovação e Automação de Testes de Software”. 1ª Edição, Anne Caroline O. Rocha – Tester Certified – NTI|UFPB � [Molinari, 2010] Molinari, L. “Inovação e Automação de Testes de Software”. 1ª Edição, Ed. Érica. São Paulo, 2010. � [EasyAccept, 2011] Jacques Sauvé, Osório, Walfredo Cirne. EasyAccept - Ferramenta para Testes de Aceitação – Java e Python. Disponível em: http://easyaccept.sourceforge.net/ � [EmmaCoverage, 2011] EmmaCoverage - Ferramenta para Testes de Cobertura – Java. Disponível em: http://emma.sourceforge.net/downloads.html � [FindBugs, 2011] Bill Pugh. FindBugs - Ferramenta para Verificação Estática – Java. Disponível em: http://findbugs.sourceforge.net/downloads.html
Compartilhar