Aula03-Curso de Testes de Software

Propaganda
Testes de Software
1
A U L A 0 3 – F E R R A M E N TA S D E A U T O M A Ç Ã 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
Automação de testes de cobertura – EmmaCoverage
Ferramenta para verificação estática de código – FindBugs
Considerações Finais
Referências
Anne Caroline O. Rocha – Tester Certified – NTI|UFPB
O que é automação de testes?
3
É uma maneira de realizar testes
utilizando alguma ferramenta para
automatizar determinadas
atividades que são realizadas manualmente.
Anne Caroline O. Rocha – Tester Certified – NTI|UFPB
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”
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
• TestLink
Carga e
Performance
• JMeter
Anne Caroline O. Rocha – Tester Certified – NTI|UFPB
Ferramenta de
testes funcionais
• Selenium
• Badboy
Ferramentas de Teste
6
Code Coverage
• Emma
Coverage
Teste de
Unidade
• JUnit
Anne Caroline O. Rocha – Tester Certified – NTI|UFPB
Teste de
Aceitação
• EasyAccept
Verificação
Estática
• FindBugs
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
A U L A 0 3 – T U T O R I A L PA R A F E R R A M E N TA E A S YA C C 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.
3.
É uma ferramenta OpenSource
4.
O EasyAccept pode ser utilizado para testar sistemas em Java
ou em Python.
Anne Caroline O. Rocha – Tester Certified – BSTQB – NTI|UFPB
O EasyAccept
10
[EasyAccept,2011]
Resultado
do Teste
Usuário
Comando
Façade
Resultado
Método
Resultado
Script de Teste
Anne Caroline O. Rocha – Tester Certified – BSTQB – NTI|UFPB
Sistema a ser
testado
EasyAccept - Sintaxe do Script de Teste
11
Comandos:
Comando sem retorno
createUser userID=1 name=“Joana Mendes" birthday=4/2/1960
Comando expect
expect “Joana Mendes " getUserName userID=1
Adicionar valor em uma variável
Id1=getUserName userID=1
Anne Caroline O. Rocha – Tester Certified – BSTQB – NTI|UFPB
EasyAccept - Sintaxe do Script de Teste
12
Comandos:
Comando equalFiles
c:/relatorio1.txt c:/relatorio2.txt
Comando expectError
expectError “Data inválida." createUser name="Joana Mendes"
birthday=30/2/1960
Comando quit
equalFiles
Sair do EasyAccept
Comentário: # no início do comando
Anne Caroline O. Rocha – Tester Certified – BSTQB – NTI|UFPB
EasyAccept – Tipos de dados do script
13
Tipos de dados:
String – “Texto”
Boolean – true, false
Char - “a”
Int – 1, 2…
Double – 35,00
Anne Caroline O. Rocha – Tester Certified – BSTQB – NTI|UFPB
Passo 1
14
1.
2.
3.
4.
Abrir o Eclipse
Criar um novo projeto Java
Denominar “EasyAcceptProject”
Clicar em Finish
Anne Caroline O. Rocha – Tester Certified – BSTQB – NTI|UFPB
Passo 2
15
1.
2.
3.
Criar a pasta ‘lib’
Adicionar o arquivo ‘easyaccept.jar’ nesta pasta
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.
2.
Criar a pasta ‘teste_aceitacao’
Adicionar o arquivo ‘us1.txt’ nesta pasta
Anne Caroline O. Rocha – Tester Certified – BSTQB – NTI|UFPB
Passo 4
17
1.
2.
Criar o package ‘monopoly’.
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
Abrir a classe GameFacade e executar.
1.
Caso a classe esteja com erro de compilação, adicionar:
I.
import easyaccept.EasyAccept;
Anne Caroline O. Rocha – Tester Certified – BSTQB – NTI|UFPB
Passo 8
21
Após executar, o sistema abre o console com o texto:
1.
I.
2.
Test file teste_aceitacao/us1.txt: 0 tests OK
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
Executar novamente a classe GameFacade.java.
1.
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.
Em seguida, executar o teste e verificar se o erro foi corrigido.
Se tiver, tirar o comentário do próximo comando em ‘us1.txt’
Executar novamente o teste.
Seguir esta sequência de passos até o final do script.
3.
4.
5.
6.
Anne Caroline O. Rocha – Tester Certified – BSTQB – NTI|UFPB
Passo 11
24
Para que o primeiro comando passe no teste basta
implementar a assinatura do método para o primeiro
comando.
1.
1.
Executar novamente o teste.
Apenas valores primitivos ou String
Anne Caroline O. Rocha – Tester Certified – BSTQB – NTI|UFPB
JUnit x EmmaCoverage
25
1.
2.
3.
4.
Crie o pacote teste_unidade
Adicione a classe GameTest.java neste pacote
Configure o Build para o JUnit3
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
Verificação – Teste de Aceitação
1.
O sistema faz o que o cliente espera que ele faça.
Validação – Teste de Unidade
2.
O sistema foi construído de forma correta.
Anne Caroline O. Rocha – Tester Certified – BSTQB – NTI|UFPB
Testes de Software
28
A U L A 0 3 – T U T O R I A L PA R A F E R R A M E N TA E M M A C O V E R A G E
Executando o EmmaCoverage
29
1.
2.
3.
Instalar o plugin para Eclipse do EmmaCoverage.
Abrir o projeto EmmaCoverageProject no eclipse
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()
Remover as { }
Adicionar
Anne Caroline O. Rocha – Tester Certified – BSTQB – NTI|UFPB
Executando o EmmaCoverage
32
1.
Executar a classe GameTest via o EmmaCoverage.
Anne Caroline O. Rocha – Tester Certified – BSTQB – NTI|UFPB
Testes de Software
33
A U L A 0 3 – T U T O R I A L PA R A F E R R A M E N TA F I N D B U G S
FindBugs
34
É uma ferramenta para encontrar bugs em
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 protected em 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
Security
Dodgy
• Método aloca um objeto apenas para recuperar a
classe do objeto.
• O código acessa o BD sem usar uma senha.
• Classe implementa a mesma interface da
superclasse.
• Campo não inicializado no construtor.
Anne Caroline O. Rocha – Tester Certified – BSTQB – NTI|UFPB
Executando o FindBugs
37
1.
2.
3.
Instalar o plugin
para Eclipse do
FindBugs.
Abrir o projeto
FindBugsProject
no eclipse
Com o botão
direito clicar na
opção Find Bugs
Anne Caroline O. Rocha – Tester Certified – BSTQB – NTI|UFPB
Executando o FindBugs
38
1.
Abrir o FindBugs Console
2.
Abrir o ambiente do FindBugs
Anne Caroline O. Rocha – Tester Certified – BSTQB – NTI|UFPB
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()
2.
Executar novamente o FindBugs
Anne Caroline O. Rocha – Tester Certified – BSTQB – NTI|UFPB
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,
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
Anne Caroline O. Rocha – Tester Certified – NTI|UFPB
Download