Você está na página 1de 42

Testes de Software

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
Carga e Ferramenta de
planejamento de
Performance testes funcionais
testes
• TestLink • JMeter • Selenium
• Badboy

Anne Caroline O. Rocha – Tester Certified – NTI|UFPB


Ferramentas de Teste
6

Teste de Teste de Verificação


Code Coverage
Unidade Aceitação Estática
• Emma • JUnit • EasyAccept • FindBugs
Coverage

Anne Caroline O. Rocha – Tester Certified – NTI|UFPB


Principais dicas para automação
7

Crie os casos de
Não pense em
teste para depois
automatizar tudo
automatizar

Ferramentas têm
Automatize o que
que se adaptar às
é prioridade
novas interfaces

Inicie a
Automação requer
automação o
experiência na
quanto antes no
ferramenta
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
Sistema a ser
testado
Script de Teste

Anne Caroline O. Rocha – Tester Certified – BSTQB – NTI|UFPB


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
 equalFiles c:/relatorio1.txt c:/relatorio2.txt

 Comando expectError
 expectError “Data inválida." createUser name="Joana Mendes"
birthday=30/2/1960

 Comando quit
 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. 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.

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

Apenas valores primitivos ou String

Anne Caroline O. Rocha – Tester Certified – BSTQB – NTI|UFPB


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


 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. 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()


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

• Métodos deveriam iniciar com letra minúscula.


Bad Practice
• Nomes de métodos muito confusos.

• Chamada de método com argumento nulo.


Correctness
• Método ‘equals()’ sempre retorna true.

• Campo deveria ser protected em vez de


Malicious code
static, pois pode ser alvo de código
vulnerability
malicioso.

Anne Caroline O. Rocha – Tester Certified – BSTQB – NTI|UFPB


FindBugs – Categorias dos Bugs
36

• Método aloca um objeto apenas para recuperar a


Performance
classe do objeto.

Security • O código acessa o BD sem usar uma senha.

• Classe implementa a mesma interface da


Dodgy superclasse.
• Campo não inicializado no construtor.

Anne Caroline O. Rocha – Tester Certified – BSTQB – NTI|UFPB


Executando o FindBugs
37

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

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

Você também pode gostar