Testes de Software 1 AULA 03 FERRAMENTAS DE AUTOMAÇÃO DE TESTES Anne Caroline O. Rocha TesterCertified BSTQB NTI UFPB
Conteúdo Programático Aula 03 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 Automação de testes de cobertura EmmaCoverage Ferramenta para verificação estática de código FindBugs Considerações Finais Referências 2 Anne Caroline O. Rocha Tester Certified NTI UFPB
O que é automação de testes? 3 É uma maneira de realizar testes utilizando alguma ferramentapara automatizar determinadas atividades que são realizadas manualmente. Anne Caroline O. Rocha Tester Certified NTI UFPB
Script de Teste Conceitos de automação de teste 4 Arquivo que compõe os passos do caso de teste a serem executados sobre o sistema. 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. Anne Caroline O. Rocha Tester Certified NTI UFPB
Ferramentas de Teste 5 Ferramenta de planejamento de testes Carga e Performance Ferramenta de testes funcionais TestLink JMeter Selenium Badboy Anne Caroline O. Rocha Tester Certified NTI UFPB
Ferramentas de Teste 6 Code Coverage Teste de Unidade Teste de Aceitação Verificação Estática Emma Coverage JUnit EasyAccept FindBugs Anne Caroline O. Rocha Tester Certified NTI UFPB
Principais dicas para automação 7 Crie os casos de teste para depois automatizar Não pense em automatizar tudo 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 Anne Caroline O. Rocha Tester Certified NTI UFPB
Testes de Software 8 AULA03 TUTORIAL PARA FERRAMENTA EASYACCEPT
O EasyAccept 1. EasyAccepté umaferramentaqueajudaa criartestes de aceitação de forma fácil e rápida. 9 2. Possibilitaqueclientese osdesenvolvedoresde software possam se comunicar de forma mais clara. 3. É uma ferramenta OpenSource 4. O EasyAcceptpodeser utilizadoparatestarsistemasemjava ou em Python. Anne Caroline O. Rocha Tester Certified BSTQB NTI UFPB
O EasyAccept 10 [EasyAccept,2011] Usuário Resultado do Teste Comando Resultado Façade Método Script de Teste Resultado Sistema a ser testado Anne Caroline O. Rocha Tester Certified BSTQB NTI UFPB
Comandos: EasyAccept - Sintaxe do Script de Teste 11 Comando sem retorno createuseruserid=1 name= Joana Mendes" birthday=4/2/1960 Comando expect expect Joana Mendes " getusernameuserid=1 Adicionar valor em uma variável Id1=getUserNameuserID=1 Anne Caroline O. Rocha Tester Certified BSTQB NTI UFPB
Comandos: EasyAccept- Sintaxe do Script de Teste Comando equalfiles equalfiles c:/relatorio1.txt c:/relatorio2.txt 12 Comando expecterror expecterror Data inválida." createusername="joana Mendes" birthday=30/2/1960 Comando quit Sairdo EasyAccept Comentário: # no início do comando Anne Caroline O. Rocha Tester Certified BSTQB NTI UFPB
Tipos de dados: EasyAccept Tipos de dados do script String Texto Boolean true, false Char - a Int 1, 2 Double 35,00 13 Anne Caroline O. Rocha Tester Certified BSTQB NTI UFPB
Passo 1 1. Abrir o Eclipse 2. Criar um novo projeto Java 3. Denominar EasyAcceptProject 4. Clicar em Finish 14 Anne Caroline O. Rocha Tester Certified BSTQB NTI UFPB
1. Criar a pasta lib Passo 2 2. Adicionar o arquivo easyaccept.jar nesta pasta 3. Clicar com botão direito no arquivo e escolher Build Path > Addto Build Path 15 Anne Caroline O. Rocha Tester Certified BSTQB NTI UFPB
Passo 3 1. Criar a pasta teste_aceitacao 2. Adicionar o arquivo us1.txt nesta pasta 16 Anne Caroline O. Rocha Tester Certified BSTQB NTI UFPB
1. Criar o package monopoly. Passo 4 2. Criar uma Façadepara o sistema denominada GameFacade. 17 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 1. Abrir o arquivo us1.txt e verificar que todas as linhas estão comentadas. 19 Anne Caroline O. Rocha Tester Certified BSTQB NTI UFPB
Passo 7 1. Abrir a classe GameFacade e executar. I. Caso a classe esteja com erro de compilação, adicionar: 20 importeasyaccept.easyaccept; Anne Caroline O. Rocha Tester Certified BSTQB NTI UFPB
Passo 8 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. 21 Anne Caroline O. Rocha Tester Certified BSTQB NTI UFPB
Passo 9 1. Abrir o arquivo us1.txt e tirar o comentário do primeiro comando. 22 Anne Caroline O. Rocha Tester Certified BSTQB NTI UFPB
Passo 10 1. Executar novamente a classe GameFacade.java. 23 1. Desta vez o teste apresenta 1 erro. 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. Anne Caroline O. Rocha Tester Certified BSTQB NTI UFPB
Passo 11 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. 24 Apenas valores primitivos ou String Anne Caroline O. Rocha TesterCertified BSTQB NTI UFPB
JUnit x EmmaCoverage 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 25 Anne Caroline O. Rocha TesterCertified BSTQB NTI UFPB
JUnit x EmmaCoverage 26 Anne Caroline O. Rocha TesterCertified 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 O sistema foi construído de forma correta. Anne Caroline O. Rocha TesterCertified BSTQB NTI UFPB
Testes de Software 28 AULA03 TUTORIAL PARA FERRAMENTA EMMACOVERAGE
Executando o EmmaCoverage 1. Instalar o plugin para Eclipse do EmmaCoverage. 2. Abrir o projeto EmmaCoverageProject no eclipse 3. Na pasta src/teste_unidadeexecutar a classe GameTest usando o botão do EmmaCoverage 29 Anne Caroline O. Rocha TesterCertified BSTQB NTI UFPB
Executando o EmmaCoverage 1. Observar o percentual em que os testes abrangem o código. 30 Anne Caroline O. Rocha TesterCertified BSTQB NTI UFPB
Executando o EmmaCoverage 1. Pode-se supor que não há um caso de teste para a exceção StringInvalidException. 31 2. Na classe GameTest, no método testcreategame() Remover as { } Adicionar Anne Caroline O. Rocha TesterCertified BSTQB NTI UFPB
Executando o EmmaCoverage 1. Executar a classe GameTest via o EmmaCoverage. 32 Anne Caroline O. Rocha TesterCertified BSTQB NTI UFPB
Testes de Software 33 AULA03 TUTORIAL PARA FERRAMENTA FINDBUGS
FindBugs 34 É uma ferramenta para encontrar bugsem sistemas desenvolvidos em Java. Anne Caroline O. Rocha Tester Certified BSTQB NTI UFPB
FindBugs Categorias dos Bugs 35 Bad Practice Métodos deveriam iniciar com letra minúscula. Nomes de métodos muito confusos. Correctness Chamada de método com argumento nulo. Método equals() sempre retorna true. Malicious code vulnerability Campo deveria ser protectedem vez de static, pois pode ser alvo de código malicioso. Anne Caroline O. Rocha Tester Certified BSTQB NTI UFPB
FindBugs Categorias dos Bugs 36 Performance Método aloca um objeto apenas para recuperar a classe do objeto. Security O código acessa o BD sem usar uma senha. Dodgy Classe implementa a mesma interface da superclasse. Campo não inicializado no construtor. Anne Caroline O. Rocha Tester Certified BSTQB NTI UFPB
1. Instalar o plugin para Eclipse do FindBugs. 2. Abrir o projeto FindBugsProject no eclipse 3. Com o botão direito clicar na opção Find Bugs Executando o FindBugs 37 Anne Caroline O. Rocha TesterCertified BSTQB NTI UFPB
1. Abrir o FindBugs Console Executando o FindBugs 38 2. Abrir o ambiente do FindBugs Anne Caroline O. Rocha TesterCertified BSTQB NTI UFPB
Executando o FindBugs 39 Anne Caroline O. Rocha TesterCertified BSTQB NTI UFPB
Executando o FindBugs 1. Tirar o comentário no construtor da classe Game() 40 2. Executar novamente o FindBugs Anne Caroline O. Rocha TesterCertified BSTQB NTI UFPB
Executando o FindBugs 41 Anne Caroline O. Rocha TesterCertified BSTQB NTI UFPB
Referências [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.comacessado em Maio/2011. [Molinari, 2008] Molinari, L. Testes Funcionaisde Software. 1ª Edição, Ed. Visual Books. Florianópolis, 2008. 42 [Molinari, 2010] Molinari, L. Inovaçãoe Automaçãode Testes de Software. 1ª Edição, Ed. Érica. São Paulo, 2010. [EasyAccept, 2011] Jacques Sauvé, Osório, WalfredoCirne. 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 Anne Caroline O. Rocha Tester Certified NTI UFPB