Você está na página 1de 62

Testes de Software

AU L A 0 1 I N T R O D U O A T E S T E S D E S O F T WA R E

Anne Caroline O. Rocha Tester Certified BSTQB NTI|UFPB


Contedo Programtico do Curso
2

 Introduo a Testes de Software


 Tcnicas de Testes de Software
 Elaborao e Execuo dos Testes
 Aula prtica com Ferramentas de Testes Unitrios, Funcionais,
Carga, Cobertura e Aceitao
 Aula prtica com Ferramentas de Gerncia dos Testes e Gerncia
dos Defeitos
 Discusso sobre melhoria no processo de desenvolvimento e
teste de software do NTI

Anne Caroline O. Rocha Tester Certified NTI|UFPB


Contedo Programtico Aula 01
3

 Como adquirir qualidade em um software?


 O que teste de software?
 Por que testar necessrio?
 Confiabilidade do Software x Defeitos
 Tipos de Teste de Software
 Nveis de Teste de Software
 Testes Funcionais x Testes de Unidade
 A Equipe de Testes
 Processo de Testes x Processo de Desenvolvimento
 Quando usar ferramentas de teste de software?
 Quando os testes devem ser automatizados?
 Consideraes Finais
 Referncias
Anne Caroline O. Rocha Tester Certified NTI|UFPB
Como adquirir qualidade em um software?
4

 A Norma ISO 9126 define as seguintes caractersticas para


qualidade:
Funcionalidade

Portabilidade Confiabilidade

Manutenabilidade Usabilidade

Eficincia

Anne Caroline O. Rocha Tester Certified NTI|UFPB


O que teste de software?
5

 Os testes so realizados com a inteno de descobrir erros e


defeitos em um sistema. [Myres, 2004]

 Os testes de software podem ser usados para mostrar a


presena de defeitos, mas nunca para mostrar a ausncia deles.
[Dijkstra, 1972]

 Os testes de software servem para medir a confiabilidade de um


sistema: medida que poucos defeitos so encontrados em um
determinado tempo, o software considerado mais confivel.

Anne Caroline O. Rocha Tester Certified NTI|UFPB


Por que testar necessrio?
6

 Para assegurar que as necessidades dos usurios estejam sendo


atendidas.

 Porque provvel que o software possua defeitos.

 Desenvolvedor j alocado para outro projeto teria que resolver


muitos bugs de projetos anteriores em produo.

 Porque falhas podem custar muito caro.

 Para avaliar a qualidade do software.

Anne Caroline O. Rocha Tester Certified NTI|UFPB


Erro, Defeito e Falha
7

 Erro: uma ao humana que produz um resultado incorreto.

 Defeito: A manifestao de um erro no software.


 Tambm conhecido como Bug

 Falha: quando o sistema se comporta de forma inesperada


devido ao defeito.

Anne Caroline O. Rocha Tester Certified NTI|UFPB


Erro, Defeito e Falha
8

...que pode
Uma pessoa ...que cria um
causar uma
comete um defeito no
falha na
erro... software...
operao.

Anne Caroline O. Rocha Tester Certified NTI|UFPB


Conceitos Bsicos de Teste
9

Artefatos de todo o conjunto de documentao gerado pelo


processo de teste de software.
Teste
composto por um conjunto de entradas, por
Caso de Teste passos de execuo e um resultado esperado.

Roteiro de composto por um conjunto de casos de teste


definidos para uma determinada especificao.
Teste

Anne Caroline O. Rocha Tester Certified NTI|UFPB


Conceitos Bsicos de Teste
10

Requisitos regras de negcio do sistema.

descobrir falhas atravs da


Testar execuo do sistema.

um defeito encontrado no sistema


Bug em execuo.

Anne Caroline O. Rocha Tester Certified NTI|UFPB


Confiabilidade do Software
11

Confiabilidade do Software a probabilidade que


o software no causar uma falha no sistema por
um tempo especificado, sob condies
determinadas.

Anne Caroline O. Rocha Tester Certified NTI|UFPB


Confiabilidade do Software
12

60

50

40

30
N de Bugs
20

10

0
Verso 1 Verso 2 Verso 3 Verso 4 Verso 5 Verso 6

Anne Caroline O. Rocha Tester Certified NTI|UFPB


O custo de um defeito
13

O custo da correo de um defeito tende a ser


cada vez maior quanto mais tarde ele for
descoberto. [Myres, 2004]

Anne Caroline O. Rocha Tester Certified NTI|UFPB


O custo de um defeito
14

1000
900
800
700
600
500
400
300
200 Custo de Correo
100
0

Fonte: Myres, 2004

Anne Caroline O. Rocha Tester Certified NTI|UFPB


Desastres causados por erros em softwares
15

 Em 1996 - Um software com uma exceo no tratada foi


responsvel pela exploso do foguete Ariane-5, quando a 40 seg
aps a iniciao da seqncia de vo, o foguete se desviou de
sua rota, partiu e explodiu, tendo um prejuzo de 500 milhes de
dlares.

Anne Caroline O. Rocha Tester Certified NTI|UFPB


Desastres causados por erros em softwares
16

 Em 2000 - Erro de clculo no sistema de radioterapia, que era


utilizado para controlar a emisso de radiao em tratamentos
de cncer matou 8 pessoas e causou queimaduras graves em
outras 20.

Anne Caroline O. Rocha Tester Certified NTI|UFPB


Mitos sobre os Testes
17

Os testadores
O testador inimigo devem ser os
do desenvolvedor. desenvolvedores
menos qualificados.

O sistema est
Um programador
pronto quando o
consegue testar
desenvolvedor
eficientemente o
termina de
prprio cdigo.
codificar.

Anne Caroline O. Rocha Tester Certified NTI|UFPB


Tipos de Teste de Software
18

 Testes de Caixa-Branca (Estrutural)


 Testes de Unidade
 Teste de Integrao
 Testes de Caixa-Preta (Funcional)
 Testes Funcionais
 Testes de Aceitao
 Testes Exploratrios
 Testes de Caixa-Cinza
 Testes de Regresso
 Testes de Cobertura

Anne Caroline O. Rocha Tester Certified NTI|UFPB


Nveis de Teste de Software
19

Anne Caroline O. Rocha Tester Certified NTI|UFPB


Nveis de Teste de Software
20

Anne Caroline O. Rocha Tester Certified NTI|UFPB


Nveis de Teste de Software
21

 Testes de Unidade
 Teste estrutural ou Caixa-branca
 Teste realizado em uma unidade ou componente para verificar sua
corretude
 Ex.: Teste para uma classe ou mtodos do sistema.
 Realizado pelo desenvolvedor que codificou o componente
 Para Java, existe a ferramenta JUnit
 Realizado de forma automtica

Anne Caroline O. Rocha Tester Certified NTI|UFPB


Nveis de Teste de Software
22

 Exemplo de Teste de Unidade

Anne Caroline O. Rocha Tester Certified NTI|UFPB


Nveis de Teste de Software
23

 Testes de Integrao
 Teste estrutural ou Caixa-branca

 Tem a finalidade de verificar se ao juntar vrios componentes do


sistema, se eles se comunicam corretamente.

 A interface entre as unidades testada

Anne Caroline O. Rocha Tester Certified NTI|UFPB


Nveis de Teste de Software
24

 Testes de Integrao
 Realizado pelos desenvolvedores ou analistas de sistema para testar
um mdulo do sistema.

 Utiliza Stubs para simular mdulos que ainda no foram


implementados, mas que se comunicam com o mdulo a ser
testado.

 Realizado de forma automtica

Anne Caroline O. Rocha Tester Certified NTI|UFPB


Nveis de Teste de Software
25

 Testes de Sistema
 Teste funcional ou Caixa-preta

 Tem por objetivo verificar se o sistema est em conformidade com a


especificao de requisitos

 Realizado pelo testador, o qual tem acesso apenas a interface do


sistema.

Anne Caroline O. Rocha Tester Certified NTI|UFPB


Nveis de Teste de Software
26

 Testes de Sistema
 O testador no faz parte da equipe de desenvolvimento.

 Os testes geralmente so baseados em roteiros de teste criados a


partir da especificao.

 Pode ser realizado de forma manual ou automtica.

 Existe vrias ferramentas, como: Selenium, Watir, Badboy etc

Anne Caroline O. Rocha Tester Certified NTI|UFPB


Nveis de Teste de Software
27

 Testes de Aceitao
 Teste funcional ou Caixa-preta

 Tem por objetivo verificar se o sistema est em conformidade com


os requisitos esperados pelo cliente

 Realizado pelo cliente ou pelo testador, desde que este possua um


checklist feito pelo cliente do que esperado que haja no sistema.

 Realizado no ambiente de homologao

Anne Caroline O. Rocha Tester Certified NTI|UFPB


Nveis de Teste de Software
28

 Testes de Aceitao
 O sistema utilizado para capacitao dos usurios de forma que
eles validem todos os requisitos do sistema

 Realizado de forma manual ou automtica

 Existe a ferramenta EasyAccept.

 Teste realizado pelo usurio pode ser:


 Teste Alfa: em um ambiente de homologao.
 Teste Beta: em um ambiente de produo.

Anne Caroline O. Rocha Tester Certified NTI|UFPB


Tipos de Teste de Software
29

 Testes Exploratrios
 Teste funcional ou Caixa-preta

 Realizado por testadores com experincia

 Quando no h muita documentao sobre o sistema

 Realizado de forma manual

 Os defeitos encontrados so reportados medida que eles ocorrem

Anne Caroline O. Rocha Tester Certified NTI|UFPB


Tipos de Teste de Software
30

 Testes de Regresso
 Teste funcional ou estrutural Caixa-cinza

 medida que uma nova verso do sistema liberada, novos bugs


podem ser includos no sistema

 Tem a finalidade de realizar novamente testes em um sistema j


testado

 Realizado pelo testador

 Pode ser realizado de forma manual ou automtica

Anne Caroline O. Rocha Tester Certified NTI|UFPB


Tipos de Teste de Software
31

 Testes de Cobertura
 Teste funcional ou estrutural Caixa-cinza

 Estrutural: Tem a finalidade de identificar se os testes realizados no


sistema abrangem pelo menos 95% do cdigo produzido.

 Funcional: Os roteiros de teste abrangem 100% das funcionalidades


do sistema, ou seja, possui pelo menos 1 caso de teste para cada
regra de negcio.

Anne Caroline O. Rocha Tester Certified NTI|UFPB


Testes Funcionais x Testes de Unidade
32

Funcionais Unitrio

 Teste de Caixa-Preta  Teste de Caixa-Branca


 Manual ou Automtico  Automtico
 Testador diferente do  Desenvolvedor faz os testes
desenvolvedor faz os testes  Testador tem acesso ao cdigo
 Testador acessa o sistema via  Testes verificam a corretude de
interface do usurio cada unidade (mtodo, classe)
 Testes verificam se o sistema de forma independente
faz o que deve fazer e no faz o
que no deve fazer

Anne Caroline O. Rocha Tester Certified NTI|UFPB


A Equipe de Testes
33

 Gerente de teste
 Lidera a equipe de teste.
 Comunicao entre a equipe de teste e de desenvolvimento.
 Planeja os testes, define estratgias, etc.

Anne Caroline O. Rocha Tester Certified NTI|UFPB


A Equipe de Testes
34

 Arquiteto de teste
 Conhece os requisitos do sistema.
 Elabora os roteiros de teste.

Anne Caroline O. Rocha Tester Certified NTI|UFPB


A Equipe de Testes
35

 Testador
 criativo ao executar os testes.
 Tem noes de programao.
 objetivo ao descrever um erro.
 perfeccionista.

Anne Caroline O. Rocha Tester Certified NTI|UFPB


O Testador
36

1. No deve testar seu prprio programa.

2. No deve duvidar que um erro existe.

3. Deve ter cuidado para no reportar falsos bugs.

4. O testador no inimigo do desenvolvedor.

5. O testador deve saber se comunicar com o desenvolvedor.

6. Os bugs descritos por ele devem ser baseados em fatos.

7. Um bom testador aquele que encontra muitos bugs!

Anne Caroline O. Rocha Tester Certified NTI|UFPB


Processo de Testes x Processo de Desenvolvimento
37

Processo de Desenvolvimento

Design Desenvolvimento Relatrio


Sistema de Defeitos

Execuo dos
Requisitos Produo
Testes

Elaborao
Planejamento Roteiro
Roteiro de Teste

Processo de Testes

Anne Caroline O. Rocha Tester Certified NTI|UFPB


Quando usar ferramentas de teste de software?
38

 Quando h apenas 1 testador para o projeto


 Deve realizar apenas testes manuais.
 No h necessidade de ferramentas para criar os roteiros de teste.
 Ferramenta apenas para reportar os defeitos. (Redmine)

 Quando h uma equipe de teste


 Ferramenta para gerenciar a equipe. (Redmine)
 Ferramenta para criar os roteiros de teste. (TestLink)
 Ferramenta para reportar e gerenciar os defeitos. (Redmine)
 Automatizar os testes para auxiliar nos testes de regresso. (Selenium)

Anne Caroline O. Rocha Tester Certified NTI|UFPB


Quando os testes devem ser automatizados?
39

 Frequncia de execuo dos testes.

 As funcionalidades so testadas mais de uma vez.

 Baixo esforo para automatizar (equipe experiente).

 Ferramentas de automao relevantes para a realidade do


projeto.

 Dificuldade de executar os testes manualmente.

Anne Caroline O. Rocha Tester Certified NTI|UFPB


Implantando Testes de Software
40

 Montar uma equipe de teste.


 O tamanho da equipe depende da quantidade de projetos a serem
testados.
 Qualificar a equipe de testes com treinamentos.

Anne Caroline O. Rocha Tester Certified NTI|UFPB


Implantando Testes de Software
41

 Quando a equipe de teste pequena e precisa testar 2 projetos.

 Ento, deve-se planejar a entrega de cada projeto em datas


diferentes.
Correo de
Desenvolvimento
Bugs
Produo
A
Roteiro Execuo Re-execuo
de Teste dos Testes dos Testes 15 dias

Correo de
Desenvolvimento
Bugs
Produo
B
Roteiro Execuo Re-execuo
de Teste dos testes dos testes

Anne Caroline O. Rocha Tester Certified NTI|UFPB


Implantando Testes de Software
42

 Iniciar com testes manuais.


 Usar ferramenta para gerenciar os defeitos [Redmine] e para
gerenciar os testes [TestLink].

Redmine TestLink
Anne Caroline O. Rocha Tester Certified NTI|UFPB
Implantando Testes de Software
43

 Sistemas devem possuir uma especificao bsica necessria


para criar os roteiros de teste e um prottipo de cada tela.
 Os prottipos de tela devem ser validados pelo cliente antes do
incio do desenvolvimento.

Especificao Prottipo
Anne Caroline O. Rocha Tester Certified NTI|UFPB
Consideraes Finais
44

 Software com testes melhoram a credibilidade do setor de


informtica
 Usurio mais satisfeito

 Desenvolvedor perder menos tempo resolvendo bugs de


sistemas em produo, enquanto est alocado em outro projeto
 Desenvolvedor mais satisfeito e motivado

 Sistema s deve ser colocado em produo aps aprovao da


equipe de testes.

Anne Caroline O. Rocha Tester Certified NTI|UFPB


Consideraes Finais
45

 A equipe de teste parte da equipe de desenvolvimento.

 Cronogramas devem levar em considerao os testes.

 Processo de Teste deve ser integrado ao processo de


desenvolvimento

 Testar reduz riscos do negcio

Anne Caroline O. Rocha Tester Certified NTI|UFPB


Exerccios
46

1. Indique se verdadeiro ou falso:


A. ( ) O testes devem ser realizados para mostrar a ausncia de
defeitos.
B. ( ) Caixa branca so testes baseados em um exame rigoroso do
detalhe estrutural. Caminhos lgicos e colaboraes entre
componentes so testadas.
C. ( ) O processo de teste deve ser independente do processo de
desenvolvimento, porm integrado.
D. ( ) A equipe de testes pode ser formada por desenvolvedores
menos qualificados.

Anne Caroline O. Rocha Tester Certified NTI|UFPB


Exerccios
47

1. Indique se verdadeiro ou falso:


A. ( F ) O testes devem ser realizados para mostrar a ausncia de
defeitos.
B. ( V ) Caixa branca so testes baseados em um exame rigoroso do
detalhe procedimental. Caminhos lgicos e colaboraes entre
componentes so testadas.
C. ( V ) O processo de teste deve ser independente do processo de
desenvolvimento, porm integrado.
D. ( F ) A equipe de testes pode ser formada por desenvolvedores
menos qualificados.

Anne Caroline O. Rocha Tester Certified NTI|UFPB


Exerccios
48

2. A MELHOR definio do objetivo do teste de aceitao :

A. Garantir que o software entre sem erros na produo

B. Garantir que o grupo de testes fez um bom trabalho

C. Executar um teste funcional

D. Garantir que o software esteja fazendo exatamente aquilo que foi


solicitado nos requisitos de negcio

Anne Caroline O. Rocha Tester Certified NTI|UFPB


Exerccios
49

2. A MELHOR definio do objetivo do teste de aceitao :

A. Garantir que o software entre sem erros na produo

B. Garantir que o grupo de testes fez um bom trabalho

C. Executar um teste funcional

D. Garantir que o software esteja fazendo exatamente aquilo que foi


solicitado nos requisitos de negcio

Anne Caroline O. Rocha Tester Certified NTI|UFPB


Exerccios
50

3. Cite alguns motivos que levam as empresas a cada vez mais


testar os softwares em desenvolvimento, antes de entreg-los
aos clientes.

Anne Caroline O. Rocha Tester Certified NTI|UFPB


Exerccios
51

3. Cite alguns motivos que levam as empresas a cada vez mais


testar os softwares em desenvolvimento, antes de entreg-los aos
clientes.
 O teste de software tem servido como estratgia para as empresas
se manterem no mercado, visto que:
 reduzem custos ao final do projeto;
 clientes mais satisfeitos com o produto;
 aumentam as chances da empresa ser contratada para novos projetos
 previne e reduz o retrabalho do desenvolvimento.

Anne Caroline O. Rocha Tester Certified NTI|UFPB


Exerccios
52

4. Cite trs requisitos mnimos da qualidade, conforme a Norma ISO


9126.

Anne Caroline O. Rocha Tester Certified NTI|UFPB


Exerccios
53

4. Cite trs requisitos mnimos da qualidade, conforme a Norma ISO


9126.
 So 6 requisitos no total:
 Funcionalidade
 Confiabilidade
 Usabilidade
 Eficincia
 Manutenibilidade
 Portabilidade

Anne Caroline O. Rocha Tester Certified NTI|UFPB


Exerccios
54

5. Um processo de teste completo requer alguns nveis de teste


essenciais para que a qualidade do software a ser entregue passe
por um controle adequado. Cite quais so os nveis de teste
para controlar a qualidade de um software.

Anne Caroline O. Rocha Tester Certified NTI|UFPB


Exerccios
55

5. Um processo de teste completo requer alguns nveis de teste


essenciais para que a qualidade do software a ser entregue passe
por um controle adequado. Cite quais so os nveis de teste
para controlar a qualidade de um software.
 So 4 nveis de teste:
 Teste de unidade
 Teste de integrao
 Teste de Sistema
 Teste de Aceitao

Anne Caroline O. Rocha Tester Certified NTI|UFPB


Exerccios
56

6. A quem cabe a responsabilidade pela execuo do teste


unitrio, e quais os seus principais objetos-alvo?

Anne Caroline O. Rocha Tester Certified NTI|UFPB


Exerccios
57

6. A quem cabe a responsabilidade pela execuo do teste


unitrio, e quais os seus principais objetos-alvo?
 O desenvolvedor que fez o cdigo a ser testado.
 Os principais objetos-alvo so os componentes, as classes e os mtodos
do sistema.

Anne Caroline O. Rocha Tester Certified NTI|UFPB


Exerccios
58

7. Explique qual a finalidade do Teste de Sistema, e de quem a


responsabilidade por sua execuo.

Anne Caroline O. Rocha Tester Certified NTI|UFPB


Exerccios
59

7. Explique qual a finalidade do Teste de Sistema, e de quem a


responsabilidade por sua execuo.
 Tem a finalidade de verificar se o sistema est em conformidade com a
especificao de requisitos
 Quem executa um testador que faz parte da equipe de testes

Anne Caroline O. Rocha Tester Certified NTI|UFPB


Exerccios
60

8. Supondo que nosso produto em desenvolvimento seja uma rede


social. Aps finalizar o desenvolvimento das funcionalidades e
efetuados os testes funcionais e estruturais, qual teste seria
apropriado para obter uma pr-avaliao do usurio final?

Anne Caroline O. Rocha Tester Certified NTI|UFPB


Exerccios
61

8. Supondo que nosso produto em desenvolvimento seja uma rede


social. Aps finalizar o desenvolvimento das funcionalidades e
efetuados os testes funcionais e estruturais, qual teste seria
apropriado para obter uma pr-avaliao do usurio final?
 O teste Alfa neste caso seria essencial, visto que um pequeno grupo de
usurios utilizaria o aplicativo em ambiente de homologao, expondo
suas crticas a respeito do software, o que certamente contribuiria
para o sistema, principalmente em questes de usabilidade.
 Usabilidade nem sempre o foco da equipe de testes.

Anne Caroline O. Rocha Tester Certified NTI|UFPB


Referncias
62

 [AllBusiness] AllBusiness - Site: http://www.allbusiness.com/technology/computer-


software/210053-1.html Acessado em Maio/2011.
 [Delamaro, 2007] Delamaro, M., Maldonado, J. C., Jino, M. Introduo ao Teste de
Software. Ed. Elsevier, Rio de Janeiro, 2007.
 [Dijkstra, 1972] Dijkstra, E. W. "The Humble Programmer". Communications of the
ACM 15 (10): 859866, 1972.
 [GTSW] Grupo de Testadores de Software - http://gtsw.blogspot.com Acessado em
Maio/2011.
 [Molinari, 2008] Molinari, L. Testes Funcionais de Software. Ed. Visual Books.
Florianpolis, 2008.
 [Myres, 2004] Myres , G. F. The Art of Software Testing. Ed. John Wiley & Sons, Inc.
New Jersey, 2004.

Anne Caroline O. Rocha Tester Certified NTI|UFPB

Você também pode gostar