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

Uma pessoa
comete um
erro...

...que cria um
defeito no
software...

Anne Caroline O. Rocha Tester Certified NTI|UFPB

...que pode
causar uma
falha na
operao.

Conceitos Bsicos de Teste


9

Artefatos de
Teste

todo o conjunto de documentao gerado pelo


processo de teste de software.

Caso de Teste

composto por um conjunto de entradas, por


passos de execuo e um resultado esperado.

Roteiro de
Teste

composto por um conjunto de casos de teste


definidos para uma determinada especificao.

Anne Caroline O. Rocha Tester Certified NTI|UFPB

Conceitos Bsicos de Teste


10

Requisitos
Testar
Bug

regras de negcio do sistema.


descobrir falhas atravs da
execuo do sistema.
um defeito encontrado no sistema
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
100
0

Custo de Correo

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

O testador inimigo
do desenvolvedor.

Os testadores
devem ser os
desenvolvedores
menos qualificados.

O sistema est
pronto quando o
desenvolvedor
termina de
codificar.

Um programador
consegue testar
eficientemente o
prprio cdigo.

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 acessa o sistema via
interface do usurio
 Testes verificam se o sistema
faz o que deve fazer e no faz o
que no deve fazer

 Testador tem acesso ao cdigo

Anne Caroline O. Rocha Tester Certified NTI|UFPB

 Testes verificam a corretude de

cada unidade (mtodo, classe)


de forma independente

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

Sistema

Execuo dos
Testes

Requisitos

Planejamento

Elaborao
Roteiro de Teste

Processo de Testes
Anne Caroline O. Rocha Tester Certified NTI|UFPB

Roteiro

Relatrio
de Defeitos

Produo

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
Bugs

Desenvolvimento

Produo

A
Roteiro
de Teste

Execuo
dos Testes

Re-execuo
dos Testes
Correo de
Bugs

Desenvolvimento

Roteiro
de Teste

15 dias

Execuo
dos testes

Anne Caroline O. Rocha Tester Certified NTI|UFPB

Produo
Re-execuo
dos testes

Implantando Testes de Software


42

 Iniciar com testes manuais.


 Usar ferramenta para gerenciar os defeitos [Redmine] e para

gerenciar os testes [TestLink].

Redmine
Anne Caroline O. Rocha Tester Certified NTI|UFPB

TestLink

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
Anne Caroline O. Rocha Tester Certified NTI|UFPB

Prottipo

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

Cite alguns motivos que levam as empresas a cada vez mais


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

3.

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

Cite trs requisitos mnimos da qualidade, conforme a Norma ISO


9126.

4.

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

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.

5.

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

A quem cabe a responsabilidade pela execuo do teste


unitrio, e quais os seus principais objetos-alvo?

6.



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

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


responsabilidade por sua execuo.

7.


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

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?

8.

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