testes de software - nti.ufpb.brcaroline/curso/aula03-curso de testes de software... · testes de...

42
Testes de Software 1 AULA 03 – FERRAMENTAS DE AUTOMAÇÃO DE TESTES Anne Caroline O. Rocha – Tester Certified – BSTQB – NTI|UFPB

Upload: vuminh

Post on 20-Nov-2018

243 views

Category:

Documents


2 download

TRANSCRIPT

Testes de Software1

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

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

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.

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

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

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

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

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 codevulnerability

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 pluginpara Eclipse do FindBugs.

2. Abrir o projeto FindBugsProject

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

FindBugsProjectno 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