Vous êtes sur la page 1sur 62

Testes de Software

1
AUL A 0 1 I NT RODUO A T E S T E S DE S OF T WARE
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
Anne Caroline O. Rocha Tester Certified NTI|UFPB
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
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
Anne Caroline O. Rocha Tester Certified NTI|UFPB
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
Como adquirir qualidade em um software?
4
A Norma ISO 9126 define as seguintes caractersticas para
qualidade:
Funcionalidade
Confiabilidade Portabilidade
Anne Caroline O. Rocha Tester Certified NTI|UFPB
Confiabilidade
Usabilidade
Eficincia
Manutenabilidade
Portabilidade
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.
Anne Caroline O. Rocha Tester Certified NTI|UFPB
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.
Por que testar necessrio?
6
Para assegurar que as necessidades dos usurios estejam sendo
atendidas.
Porque provvel que o software possua defeitos.
Anne Caroline O. Rocha Tester Certified NTI|UFPB
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.
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
Anne Caroline O. Rocha Tester Certified NTI|UFPB
Falha: quando o sistema se comporta de forma inesperada
devido ao defeito.
Erro, Defeito e Falha
8
Uma pessoa
...que cria um
...que pode
Anne Caroline O. Rocha Tester Certified NTI|UFPB
Uma pessoa
comete um
erro...
...que cria um
defeito no
software...
...que pode
causar uma
falha na
operao.
Conceitos Bsicos de Teste
9
todo o conjunto de documentao gerado pelo
processo de teste de software.
Artefatos de
Teste
Anne Caroline O. Rocha Tester Certified NTI|UFPB
composto por um conjunto de entradas, por
passos de execuo e um resultado esperado.
Caso de Teste
composto por um conjunto de casos de teste
definidos para uma determinada especificao.
Roteiro de
Teste
Conceitos Bsicos de Teste
10
regras de negcio do sistema.
Requisitos
Anne Caroline O. Rocha Tester Certified NTI|UFPB
descobrir falhas atravs da
execuo do sistema.
Testar
um defeito encontrado no sistema
em execuo.
Bug
Confiabilidade do Software
11
Confiabilidade do Software a probabilidade que Confiabilidade do Software a probabilidade que
Anne Caroline O. Rocha Tester Certified NTI|UFPB
Confiabilidade do Software a probabilidade que
o software no causar uma falha no sistema por
um tempo especificado, sob condies
determinadas.
Confiabilidade do Software a probabilidade que
o software no causar uma falha no sistema por
um tempo especificado, sob condies
determinadas.
Confiabilidade do Software
12
40
50
60
Anne Caroline O. Rocha Tester Certified NTI|UFPB
0
10
20
30
Verso 1 Verso 2 Verso 3 Verso 4 Verso 5 Verso 6
N de Bugs
O custo de um defeito
13
O custo da correo de um defeito tende a ser O custo da correo de um defeito tende a ser
Anne Caroline O. Rocha Tester Certified NTI|UFPB
O custo da correo de um defeito tende a ser
cada vez maior quanto mais tarde ele for
descoberto. [Myres, 2004]
O custo da correo de um defeito tende a ser
cada vez maior quanto mais tarde ele for
descoberto. [Myres, 2004]
O custo de um defeito
14
400
500
600
700
800
900
1000
Anne Caroline O. Rocha Tester Certified NTI|UFPB
0
100
200
300
400
Custo de Correo
Fonte: Myres, 2004
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.
Anne Caroline O. Rocha Tester Certified NTI|UFPB
O sistema est
pronto quando o
desenvolvedor
termina de
codificar.
Um programador
consegue testar
eficientemente o
prprio cdigo.
Tipos de Teste de Software
18
Testes de Caixa-Branca (Estrutural)
Testes de Unidade
Teste de Integrao
Testes de Caixa-Preta (Funcional)
Testes Funcionais
Anne Caroline O. Rocha Tester Certified NTI|UFPB
Testes Funcionais
Testes de Aceitao
Testes Exploratrios
Testes de Caixa-Cinza
Testes de Regresso
Testes de Cobertura
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.
Anne Caroline O. Rocha Tester Certified NTI|UFPB
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
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.
Anne Caroline O. Rocha Tester Certified NTI|UFPB
sistema, se eles se comunicam corretamente.
A interface entre as unidades testada
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
Anne Caroline O. Rocha Tester Certified NTI|UFPB
Utiliza Stubs para simular mdulos que ainda no foram
implementados, mas que se comunicam com o mdulo a ser
testado.
Realizado de forma automtica
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
Anne Caroline O. Rocha Tester Certified NTI|UFPB
especificao de requisitos
Realizado pelo testador, o qual tem acesso apenas a interface do
sistema.
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.
Anne Caroline O. Rocha Tester Certified NTI|UFPB
partir da especificao.
Pode ser realizado de forma manual ou automtica.
Existe vrias ferramentas, como: Selenium, Watir, Badboy etc
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
Anne Caroline O. Rocha Tester Certified NTI|UFPB
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
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
Anne Caroline O. Rocha Tester Certified NTI|UFPB
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.
Tipos de Teste de Software
29
Testes Exploratrios
Teste funcional ou Caixa-preta
Realizado por testadores com experincia
Anne Caroline O. Rocha Tester Certified NTI|UFPB
Quando no h muita documentao sobre o sistema
Realizado de forma manual
Os defeitos encontrados so reportados medida que eles ocorrem
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
Anne Caroline O. Rocha Tester Certified NTI|UFPB
Tem a finalidade de realizar novamente testes em um sistema j
testado
Realizado pelo testador
Pode ser realizado de forma manual ou automtica
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.
Anne Caroline O. Rocha Tester Certified NTI|UFPB
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.
Funcionais Funcionais Unitrio Unitrio
Teste de Caixa-Preta
Manual ou Automtico
Testador diferente do
Teste de Caixa-Branca
Automtico
Desenvolvedor faz os testes
32
Testes Funcionais x Testes de Unidade
Anne Caroline O. Rocha Tester Certified NTI|UFPB
Testador diferente do
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
Desenvolvedor faz os testes
Testador tem acesso ao cdigo
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
perfeccionista.
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.
1. No deve testar seu prprio programa.
2. No deve duvidar que um erro existe.
3. Deve ter cuidado para no reportar falsos bugs.
Anne Caroline O. Rocha Tester Certified NTI|UFPB
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!
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!
Processo de Testes x Processo de Desenvolvimento
37
Desenvolvimento Design
Processo de Desenvolvimento
Sistema
Relatrio
de Defeitos
Anne Caroline O. Rocha Tester Certified NTI|UFPB
Elaborao
Roteiro de Teste
Execuo dos
Testes
Requisitos
Planejamento
Produo
Processo de Testes
Roteiro
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)
Anne Caroline O. Rocha Tester Certified NTI|UFPB
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)
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).
Anne Caroline O. Rocha Tester Certified NTI|UFPB
Baixo esforo para automatizar (equipe experiente).
Ferramentas de automao relevantes para a realidade do
projeto.
Dificuldade de executar os testes manualmente.
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.
Anne Caroline O. Rocha Tester Certified NTI|UFPB
Desenvolvimento
Desenvolvimento
Roteiro
de Teste
Roteiro
de Teste
Correo de
Bugs
Execuo
dos testes
Execuo
dos Testes
Correo de
Bugs
Re-execuo
dos Testes
Re-execuo
dos testes
A
B
Produo
Produo
15 dias
Implantando Testes de Software
42
Iniciar com testes manuais.
Usar ferramenta para gerenciar os defeitos [Redmine] e para
gerenciar os testes [TestLink].
Anne Caroline O. Rocha Tester Certified NTI|UFPB
TestLink Redmine
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.
Anne Caroline O. Rocha Tester Certified NTI|UFPB
Especificao Prottipo
Consideraes Finais
44
Software com testes melhoram a credibilidade do setor de
informtica
Usurio mais satisfeito
Desenvolvedor perder menos tempo resolvendo bugs de
Anne Caroline O. Rocha Tester Certified NTI|UFPB
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.
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
Anne Caroline O. Rocha Tester Certified NTI|UFPB
Processo de Teste deve ser integrado ao processo de
desenvolvimento
Testar reduz riscos do negcio
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
Anne Caroline O. Rocha Tester Certified NTI|UFPB
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.
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
Anne Caroline O. Rocha Tester Certified NTI|UFPB
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.
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
Anne Caroline O. Rocha Tester Certified NTI|UFPB
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
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
Anne Caroline O. Rocha Tester Certified NTI|UFPB
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
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;
Anne Caroline O. Rocha Tester Certified NTI|UFPB
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.
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
Anne Caroline O. Rocha Tester Certified NTI|UFPB
Usabilidade
Eficincia
Manutenibilidade
Portabilidade
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
Anne Caroline O. Rocha Tester Certified NTI|UFPB
Teste de unidade
Teste de integrao
Teste de Sistema
Teste de Aceitao
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
Anne Caroline O. Rocha Tester Certified NTI|UFPB
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.
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
ACM15 (10): 859866, 1972.
[GTSW] Grupo de Testadores de Software - http://gtsw.blogspot.comAcessado em
Anne Caroline O. Rocha Tester Certified NTI|UFPB
[GTSW] Grupo de Testadores de Software - http://gtsw.blogspot.comAcessado 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.