Você está na página 1de 31

Gesto de

Projeto de
Software

Conferncia n 14: Estratgias


de teste de software
Tcnicas de teste de software
2 Motivao

Ocorrncia de falhas humanas no processo de


desenvolvimento de software considervel;
Uma vez que o cdigo fonte tenha sido gerado
necessrio testar para descobrir erros antes
de entregar o software para o cliente;
Processo de testes indispensvel na garantia
de qualidade de software;
Custos associados s falhas de software
justificam um processo de testes cuidadoso e
bem planeado.

Domingos Filipe de Oliveira


3

Domingos Filipe de Oliveira


4 O que ?

um conjunto de atividades que


podem ser planeadas antecipadamente
e conduzidas sistematicamente;
Um conjunto de passos no qual
podemos incluir tcnicas de projeto de
casos de teste e mtodos de teste
especficos;
Os testes fornecem uma confiana
acrescida e, em ltima instncia, uma
demostrao de que os requisitos do
Domingos Filipe de Oliveira
software esto a ser satisfeitos.
5 Quem faz os teste ?

Uma boa estratgia de teste de


software desenvolvida pelo:
gestor do projeto;
Arquiteto de software;
E o especialista em teste.

Domingos Filipe de Oliveira


6 Porque importante ?

Erro: uma aco humana que produz faltas de software:


Do utilizador
Do programador
Falta: um estado incoerente do software provocado
por um erro;
Falha: um desvio vsivel do comportamento esperado do
sistema

Falta Erro Falha

Pode iteragir
Domingos Filipe de Oliveira
7 Causas das Falhas

As causas so diversas e a sua origem est


muito frequentemente associada a rudo de
comunicao entre os intervenientes no
processo de desenvolvimento:
A especificao no est de acordo com aquilo que o
cliente deseja ou necessita, devido a um requisito
errado ou omisso;
A especificao contm um requisito que impossvel
de implementar;
O desenho do sistema possui est errado;
A concretizao do desenho est errado.

Domingos Filipe de Oliveira


8 Finalidade dos testes

Averiguar se todos os requisitos do sistema foram


corretamente implementados;
Assegurar, na medida do possvel, a qualidade e a
corretude do software produzido;
Reduzir custos de manuteno corretiva e re-trabalho;
Assegurar a satisfao do cliente com o produto
desenvolvido;
Identificar casos de teste de elevada probabilidade
para revelar erros ainda no descobertos (com
quantidade mnima de tempo e esforo);
Verificar a correta integrao entre todos os
componentes de software.

Domingos Filipe de Oliveira


9 Verificao e Validao

Verificao: se refere ao conjunto de atividades


que garante que o software implementa
corretamente uma funo especfica. Estamos
construindo corretamente o produto?
Validao: se refere a um conjunto de atividades
diferentes que garante que o software construdo
corresponde aos requisitos do cliente. Estamos
construindo o produto certo?
No adianta fazer com perfeio um software
que no seja o que o utilizador deseja!

Domingos Filipe de Oliveira


10 Verificao x Validao

Domingos Filipe de Oliveira


11 Verificao

?
Domingos Filipe de Oliveira
12 Verificao (cont.)

Desenvolvimento

Requisito Arquitetura Cdigo


s

Domingos Filipe de Oliveira


13 Verificao (cont.)

Desenvolvimento

Requisito Arquitetura Cdigo


s Teste de Teste de
Integra Unidade
o
Verificao
Domingos Filipe de Oliveira
14 Validao

Domingos Filipe de Oliveira


15 Validao (cont.)

Especificao

Requisito
s

Validao

Domingos Filipe de Oliveira


16 Validao (cont.)

Especificao

Requisito
s

Validao
Teste de
Aceitao
Domingos Filipe de Oliveira(homologao)
17 Verificao x Validao

Validao

Domingos Filipe de Oliveira


Verificao
18 Teste da caixa branca x teste
da caixa preta

Teste caixa Branca


Tambm conhecido como Teste estrutural;
Conhece o interior do produto;
Utiliza esse conhecimento na definio da estratgia de
teste .

Teste Caixa preta


Tambm conhecido como Teste funcional;
No conhece o interior do produto;
Utiliza somente os requisitos na definio da estratgia de
teste.

Domingos Filipe de Oliveira


19 Estgios dos testes

Testes de unidade: cada componente testado


isoladamente em ambiente controlado (observam-se
as sadas para as diferentes entradas)
Testes de integrao: verificam se as interfaces
entre os componentes esto bem definidas e
funcionam bem (de acordo com o especificado no
desenho)
Testes de funcionalidade: verificam os requisitos
funcionais do sistema, de acordo com o documento de
requisitos
Testes de desempenho: verificam os requisitos no
funcionais, de acordo com o documento de requisitos

Domingos Filipe de Oliveira


20 Estgios dos testes

Testes de aceitao: verificam os


requisitos do cliente/utilizador (feitos pelo
cliente)
Testes de instalao: verificam se o
sistema funciona no ambiente onde ser
utilizado.
Teste de sistema: verifica elementos de
software integrados com o ambiente
operacional (hardware, pessoas, etc.) so
testados como um todo.
Domingos Filipe de Oliveira
21 Teste e Depurao

Teste: processo de executar um


programa com o objetivo de revelar a
presena de defeitos; ou, falhando
nesse objetivo, aumentar a confiana
sobre o programa.
Depurao: uma consequncia no
previsvel do teste. Aps revelada a
presena do defeito ele deve ser
encontrado e corrigido.

Domingos Filipe de Oliveira


22 Teste e debugging

Teste e debugging e de defeitos so processos


distintos.
Verificao e validao est relacionada ao
estabelecimento da existncia de defeitos em um
programa.
Debugging est relacionado localizao e
repararao desses defeitos.
O debugging envolve a formulao de uma
hiptese sobre o comportamento do programa e o
teste dessas hipteses para encontrar o defeito
de sistema.

Domingos Filipe de Oliveira


23 O processo de debugging

Domingos Filipe de Oliveira


24 Tipos de teste

Teste de validao
Pretende mostrar que o software atende aos seus
requisitos;
Um teste bem sucedido aquele que mostra que um
requisito foi adequadamente implementado.

Teste de defeitos
Testes projetados para descobrir defeitos de sistema;
Um teste de defeitos bem sucedido aquele que
revela a presena de defeitos em um sistema;

Domingos Filipe de Oliveira


25 Plano de testes

1 INTRODUO ________________________________________________________________ 3
1.1 VISO GERAL DESTE DOCUMENTO _________________________________________________ 3
1.2 REFERNCIAS ________________________________________________________________ 3
2 REQUISITOS A TESTAR _______________________________________________________ 3
2.1 IDENTIFICAO DOS REQUISITOS A TESTAR _________________________________________ 4
3 ESTRATGIA _________________________________________________________________ 4
3.1 ESTGIOS E TIPOS DOS TESTES ____________________________________________________ 4
3.2 TCNICA ____________________________________________________________________ 5
3.3 CRITRIOS DE CONCLUSO E SUCESSO______________________________________________ 5
3.4 CONSIDERAES ESPECIAIS ______________________________________________________ 5
4 RECURSOS ___________________________________________________________________ 5
4.1 RECURSOS HUMANOS __________________________________________________________ 5
4.2 AMBIENTE DE TESTE (HARDWARE E SOFTWARE) ______________________________________ 5
4.3 FERRAMENTAS________________________________________________________________ 5
4.4 DADOS ______________________________________________________________________ 6
5 CRONOGRAMA_______________________________________________________________ 6

Domingos Filipe de Oliveira


26 Projeto de Testes

composto pelos casos e procedimentos de


teste;
Um caso de teste especifica uma maneira de
testar o sistema: o que testar, quais os valores
e pr-condies de entrada e os valores e ps-
condies de sada;
Um procedimento de teste especifica como
realizar um ou diversos casos de teste. um
conjunto de instrues para execuo e
avaliao de resultados para um ou mais casos
de teste, que podem ser efetivados
manualmente ou atravs de ferramentas.
Domingos Filipe de Oliveira
27 Projeto de Testes

1 INTRODUO ________________________________ ________________________________ 3


1.1 VISO GERAL DESTE DOCUMENTO ________________________________ ________________ 3
1.2 REFERNCIAS ________________________________ ________________________________ 3
2 CASOS DE TESTE ________________________________ _____________________________ 4
2.1 IDENTIFICAO DOS CASOS DE TESTE ________________________________ ______________ 4
[CT001] <Nome do caso de teste>________________________________ __________________ 4
[CT] <Nome do caso de teste>________________________________ ___________________ 4
3 PROCEDIMENTOS DE TESTE________________________________ __________________ 5
3.1 IDENTIFICAO DOS PROCEDIMENTOS DE TESTE ________________________________ ______ 5
[ProcT001] <Nome do procedimento de teste>________________________________ ________ 5
[ProcT] <Nome do procedimento de teste> ________________________________ _________ 5

Domingos Filipe de Oliveira


28 O que JUnit?

JUnit uma ferramenta que suporta a


criao e execuo de testes de
unidade;
JUnit estrutura os testes e prov
mecanismos para execut-los
automticamente.

Domingos Filipe de Oliveira


29 Desenvolvimento Dirigido a
Testes (TDD mtodo gil)

Inverte a ordem, colocando Teste antes da


codificao (test First)
1. O Teste construdo antes da implementao da
funcionalidade;
2. O teste deve falhar nesse momento (vermelho);
3. feito o cdigo mais simples capaz de atender ao
teste (verde);
4. O cdigo refatorado com o objetivo de aumentar
a qualidade do produto;
5. Retorna ao passo 1 enquanto tiverem novas
funcionalidades a serem implementadas.

Domingos Filipe de Oliveira


Duvidas
???
Os homens so miserveis, porque no
sabem ver nem entender os bens que
esto ao seu alcance.
Pitgoras

30 Domingos Filipe de Oliveira


31 Referncias

Slides do professor Leonardo Gresta


Paulino Murta Verificao,
Validao e Teste. Instituto de
Computao
Pressman, R.S., Engenharia de
Software. 6 edio, McGrawHill, 2006.

Domingos Filipe de Oliveira