Você está na página 1de 30

TESTES DE SOFTWARE AULA 1

Rio de Janeiro, 20 de agosto de 2011


CONTEDO
Unidade 1 Importncia do teste de software
O teste nas fases de desenvolvimento de um software.
O teste na engenharia de sistemas e de programas

Unidade 2 - Teste no projeto de sistema
Revises Tcnicas Formais
Validao pelo usurio
2
Unidade 3 Teste no programa
Depurao
Teste de caixa branca
Teste de caixa preta
Teste de ambiente Web
3
CONTEDO
Unidade 4 Teste na implantao do sistema
Teste de Unidade
Teste de Integrao
Teste de Validao
Teste de Sistema
Teste na Migrao
4
CONTEDO
Unidade 5 Teste de software em sistema em produo
Teste de software nos diversos tipos de manuteno
Confiabilidade
Disponibilidade
Unidade 6 Ferramentas de teste de software
Ferramentas de teste no desenvolvimento de sistema
Ferramentas de teste para o programa
Ferramentas de teste para o ambiente Web
Ferramentas de teste para sistemas em produo
5
CONTEDO
O desenvolvimento de sistemas envolve uma srie de
atividades em que as oportunidades de injeo de falhas
so muito grandes. Estes erros podem comear a aparecer
logo no incio do processo, onde os objetivos podem estar
erroneamente especificados, alm de erros que venham a
ocorrer em fases de projeto e desenvolvimento posteriores.
6
A IMPORTNCIA DO TESTE
Por causa da inabilidade humana de realizar e de se
comunicar com perfeio, o desenvolvimento
acompanhado de garantia de qualidade.

A atividade de teste de software um elemento crtico da
garantia de qualidade de software e representa a ltima
reviso de especificao, projeto e codificao.
7
A IMPORTNCIA DO TESTE
CUSTO DO REPARO
8
Custo
Estgio de
desenvolvimento
Requisitos Codificao Entrega
A IMPORTNCIA DO TESTE
No raro gastarmos entre 30 e 40% do esforo total do
projeto no Teste de Software.

O Teste de Software para ambientes crticos (ex.: controle
de voo, monitoramento de reatores nucleares e etc.) pode
custar de trs a cinco vezes mais do que todos os outros
passos de engenharia de software combinados.
9
10
ndice de
falhas
curva real
curva idealizada
tempo
mudana
DEFININDO O TESTE DE SOFTWARE
Avaliar se o software est fazendo o que deveria fazer,
de acordo com os seu requisitos, e no est fazendo o que
no deveria fazer;
Qualquer atividade que, a partir da avaliao de um
atributo ou capacidade de um programa ou sistema, seja
possvel determinar se ele alcana os resultados
desejados. (Bill Hetzel 1988).
Processo de executar um programa ou sistema com a
inteno de encontrar defeitos (Glen Myers 1979);
11
Segundo Pressman, o teste de software um conjunto de
atividades que podem ser planejadas com antecedncia e
executadas sistematicamente.

Uma estratgia de teste de software deve acomodar testes
de baixo nvel, necessrios para verificar se um pequeno
segmento de cdigo fonte foi implementado corretamente,
bem como testes de alto nvel, que validam as funes
principais do sistema de acordo com os requisitos do cliente.
12
DEFININDO O TESTE DE SOFTWARE
A atividade de teste um passo do processo de Engenharia
de Software que visa encontrar/corrigir erros ao longo do
software que foi construdo.
Testes podem ser usados para descobrir a presena de
erros, mas no para mostrar a sua ausncia.
Testes de software o processo de executar o software de
uma maneira controlada com o objetivo de descobrir dife-
renas entre o comportamento previsto e o comportamento
observado.

13
DEFININDO O TESTE DE SOFTWARE
Todas estratgias fornecem um modelo para o teste e tm
basicamente as seguintes caractersticas:
Para executar um teste eficaz, proceder a revises
tcnicas eficazes. Fazendo isso, muitos erros sero
eliminados antes do comeo do teste.
O teste comea no nvel do componente e progride em
direo integrao do sistema computacional como um
todo.
14
ESTRATGIAS DE TESTE
Todas estratgias fornecem um modelo para o teste e tm
basicamente as seguintes caractersticas:
Diferentes tcnicas de teste so apropriadas para
diferentes abordagens de engenharia de software e em
diferentes momentos
O teste feito pelo desenvolvedor do software e (para
grandes projetos) por um grupo independente de teste.
O teste e a depurao so atividades diferentes, mas
a depurao ocorre em consequncia de um teste.
15
ESTRATGIAS DE TESTE
A atividade de teste o processo de executar um programa
com a inteno de descobrir um erro.

Um bom caso de teste aquele que possui uma elevada
probabilidade de revelar um erro ainda no descoberto.

Um teste bem-sucedido aquele que revela um erro ainda
no descoberto.
16
ESTRATGIAS DE TESTE
DIRETRIZES PARA O TESTE
Determinar quando o teste deve ser interrompido.
Atribuir a responsabilidade do teste a um testador.
Descrever os resultados esperados para cada caso de
teste.
Escrever casos de teste para condies de entrada
vlidas e invlidas.
Inspecionar o resultado de cada teste por completo.
Alocar os programadores mais criativos para teste.
17
O PROCESSO DE TESTE
O processo de teste de software deve basear-se em uma
metodologia aderente ao processo de desenvolvimento,
com pessoal tcnico qualificado, ambiente e ferramentas
adequadas.
Esta metodologia de teste deve ser o documento bsico
para organizar a atividade de testar aplicaes no contexto
da empresa. Assim como o processo de desenvolvimento de
software, teste de software tambm possui um ciclo de vida:
18
O PROCESSO DE TESTE
19
Procedimentos
Iniciais
Especificao Execuo Entrega
Planejamento
Preparao
O PROCESSO DE TESTE
Planejamento: Elaborao e reviso da Estratgia de teste
e do plano de teste;

Preparao: Preparao do ambiente de teste, incluindo
equipamentos, rede, pessoal, software e ferramentas.

20
O PROCESSO DE TESTE
Procedimentos iniciais: Consiste na elaborao de
documento com o estabelecimento de um acordo entre as
partes envolvidas no projeto de teste (usurios e tcnicos):
Objetivo do projeto de teste,
Pessoal a ser envolvido,
As responsabilidades de cada um;
O plano preliminar de trabalho;
Avaliao dos riscos;
Os nveis de servios acordados e etc.
21
O PROCESSO DE TESTE
Especificao: Elaborao e reviso dos casos de teste ,
scripts ( no caso de ferramentas de automao de testes)
e dos roteiros de Teste e execuo dos testes de verificao
da documentao do sistema (testes estticos).
Execuo: Execuo dos testes planejados conforme os
Casos de Teste, scripts e dos roteiros de Teste com os
correspondentes registros dos resultados obtidos.
Entrega: concluso do processo de testes com a entrega
do sistema para o ambiente de produo.
22
INTERAO ENTRE OS CICLOS DE VIDA
23
O PROCESSO DE TESTE
H muitas estratgias que podem ser utilizadas para testar
um software. Uma das estratgias de teste que preferida
pela maioria das equipes a viso incremental do teste,
comeando com o teste das unidades individuais de
programa, passando para os testes destinados a facilitar a
integrao de unidades e culminando com testes que usam
o sistema concludo.

Verificao: Nesta etapa so realizadas inspees/revises
sobre os produtos gerados.
24
O PROCESSO DE TESTE
Testes Unitrios: So realizados no estgio mais baixo da
escala de testes e so aplicados nas menores componentes
de cdigos criados, visando garantir que estes atendem as
especificaes, em termos de garantia e de funcionalidade.
Verificam o funcionamento de um pedao do sistema ou
software isoladamente ou que possam ser testado
separadamente.

Normalmente feito pelos desenvolvedores.
25
O PROCESSO DE TESTE
Testes de integrao: So executados em uma
combinao de componentes para verificar se ele funcionam
corretamente juntos, conforme as especificaes.
Componentes podem ser pedaos de cdigo, mdulos,
aplicaes distintas, clientes servidores. Normalmente
feito pelos desenvolvedores.
26
O PROCESSO DE TESTE
Teste de sistema: So realizados pela equipe de testes,
visando a execuo do sistema como um todo ou um
subsistema (parte de um sistema), dentro de um ambiente
operacional controlado, para validar a exatido e perfeio
na execuo de suas funes. Neste estgio de teste deve
ser simulada a operao normal do sistema, sendo testadas
todas as suas funes de forma mais prxima possvel do
que ir ocorrer no ambiente de produo. Esses testes so
feitos pela equipe de teste de software.
27
O PROCESSO DE TESTE
Teste de aceitao: So os testes finais de execuo do
sistema, realizados pelos usurios, visando verificar se a
soluo atende aos objetivos do negcio e aos seus
requisitos, no que diz respeito funcionalidade e
usabilidade, antes da sua utilizao no ambinete de
produo.
28
O PROCESSO DE TESTE
Ao tratar os testes como um processo organizado e muitas
vezes paralelo e integrado ao processo de desenvolvimento,
os custos de manuteno sero reduzidos. Segundo Myers,
o custo de correo de defeitos tende a aumentar quanto
mais tarde o defeito detectado. Defeitos encontrados
durante a produo tendem a custar muito mais que defeitos
encontrados em modelos de dados e em outros documentos
do projeto do software.
29
O PROCESSO DE TESTE
Os testes unitrios podem remover entre 30% e 50 %
dos defeitos dos programas;
Os testes de sistemas podem remover entre 30% e
50% dos defeitos remanescentes.
Desse modo, os sistemas podem ir para produo
ainda com aproximadamente 49% de defeitos.
Por ltimos, as revises de cdigos podem reduzir entre
20% e 30% desses defeitos.
30