Escolar Documentos
Profissional Documentos
Cultura Documentos
Fonte:
Profa. Maria Auxiliadora PRESSMAN, ROGER - Engenharia de Software - 6° Edição
SOMMERVILLE - Engenharia de Software - 8° Edição 1
Teste de software
• É uma atividade crítica na garantia de
qualidade de software;
• Quatro dimensões:
– Estado do teste (“o momento”);
– Técnica do teste (“como vou testar”);
– Metas do testes (“o que tenho que testar”);
– Onde será o teste (“ambiente do teste”).
Fonte:
Profa. Maria Auxiliadora PRESSMAN, ROGER - Engenharia de Software - 6° Edição
SOMMERVILLE - Engenharia de Software - 8° Edição 2
2
Objetivos da Atividade de Teste
• Projetar testes que descubram
sistematicamente diferentes classes
de erros e façam-o com uma
quantidade de tempo e esforço
mínimos.
• Se a atividade de teste for conduzida
com sucesso, ela descobrirá erros no
software. Fonte:
PRESSMAN, ROGER - Engenharia de Software - 6° Edição
Profa. Maria Auxiliadora
SOMMERVILLE - Engenharia de Software - 8° Edição 3
Objetivos da Atividade de Teste
• A atividade de teste não pode mostrar
a ausência de bugs; ela só pode
mostrar se defeitos de software estão
presentes.
• Se erros graves forem encontrados
com regularidade a qualidade e a
confiabilidade de software são
suspeitas. Fonte:
Profa. Maria Auxiliadora PRESSMAN, ROGER - Engenharia de Software - 6° Edição
SOMMERVILLE - Engenharia de Software - 8° Edição 4
Objetivos da Atividade de Teste
• Se erros facilmente corrigíveis forem
encontrados a qualidade e a confiabilidade do
software estão aceitáveis ou os testes são
inadequados para revelar erros graves.
Desenvolvedores: interesse em
demonstrar que o programa é isento de
erros.
Fonte:
Profa. Maria Auxiliadora PRESSMAN, ROGER - Engenharia de Software - 6° Edição
SOMMERVILLE - Engenharia de Software - 8° Edição 7
Verificação e Validação
Fonte:
Profa. Maria Auxiliadora PRESSMAN, ROGER - Engenharia de Software - 6° Edição
SOMMERVILLE - Engenharia de Software - 8° Edição 8
Verificação e Validação
• Validação: “Estamos construindo o produto
certo?”
– O software deve atender às necessidades
dos usuários.
• Verificação: “Estamos construindo o produto
corretamente?”
– O software deve estar de acordo com a sua
especificação.
Fonte:
Profa. Maria Auxiliadora PRESSMAN, ROGER - Engenharia de Software - 6° Edição
SOMMERVILLE - Engenharia de Software - 8° Edição 9
Metas do processo de
Verificação e Validação
• Função de software
– O nível de confiança depende de
quanto o software é para uma
organização.
• Expectativas de usuário
– Usuários podem ter poucas
expectativas em relação ao software.
Fonte:
Profa. Maria Auxiliadora PRESSMAN, ROGER - Engenharia de Software - 6° Edição
SOMMERVILLE - Engenharia de Software - 8° Edição 10
Metas do processo de
Verificação e Validação
• Ambiente de mercado
– verificar o momento exato de
colocar o produto no mercado
( com ou sem depuração e teste
do produto).
Fonte:
Profa. Maria Auxiliadora PRESSMAN, ROGER - Engenharia de Software - 6° Edição
SOMMERVILLE - Engenharia de Software - 8° Edição 11
Planejamento de
Verificação e Validação
• Um planejamento cuidadoso é
necessário para obter o melhor das
inspeções e dos testes e para controlar
os custos do processo de verificação e
validação.
• O planejando de V&V deve se iniciar
no começo do processo de
desenvolvimento. Fonte:
PRESSMAN, ROGER - Engenharia de Software - 6° Edição
Profa. Maria Auxiliadora
SOMMERVILLE - Engenharia de Software - 8° Edição 12
Planejamento de
Verificação e Validação
Especificação Especificação
Projeto de Projeto
de requisitos de sistema
sistema detalhado
Fonte:
Profa. Maria Auxiliadora PRESSMAN, ROGER - Engenharia de Software - 6° Edição
SOMMERVILLE - Engenharia de Software - 8° Edição 13
O que deve ser
verificado e validado?
• Fatores de Qualidade de Revisão
–Relacionados com a manutenção,
evolução e avaliação do software.
• Testes de software
–(V & V dinâmica)
Fonte:
Profa. Maria Auxiliadora PRESSMAN, ROGER - Engenharia de Software - 6° Edição
SOMMERVILLE - Engenharia de Software - 8° Edição 15
Inspeções de Software
• Interessadas na análise da
representação estática do sistema para
descobrir problemas
Pode ser suplementado por
ferramentas baseadas em documentos
e análise de códigos.
Fonte:
Profa. Maria Auxiliadora PRESSMAN, ROGER - Engenharia de Software - 6° Edição
SOMMERVILLE - Engenharia de Software - 8° Edição 16
Teste de Inspeção
Fonte:
Profa. Maria Auxiliadora PRESSMAN, ROGER - Engenharia de Software - 6° Edição
SOMMERVILLE - Engenharia de Software - 8° Edição 17
Inspeções de Programas
Fonte:
Profa. Maria Auxiliadora PRESSMAN, ROGER - Engenharia de Software - 6° Edição
SOMMERVILLE - Engenharia de Software - 8° Edição 20
Checagem de Inspeções
• Defeitos de entrada e saída
Fonte:
Profa. Maria Auxiliadora PRESSMAN, ROGER - Engenharia de Software - 6° Edição
SOMMERVILLE - Engenharia de Software - 8° Edição 24
24
Teste de Validação - escopo
• Objetivo: Avaliar a possibilidade de uso do
sistema
• Quem faz: Cliente ou usuário final
• O que é testado: Funções principais,
documentação e procedimentos
• Quando termina: Em geral, quando o
usuário se sente a vontade, ou quando o
teste proposto dá bom resultado.
Fonte:
Profa. Maria Auxiliadora PRESSMAN, ROGER - Engenharia de Software - 6° Edição
SOMMERVILLE - Engenharia de Software - 8° Edição 25
Teste de Programa
• Um teste próspero é um teste que
descobre um ou mais erros.
Fonte:
Profa. Maria Auxiliadora PRESSMAN, ROGER - Engenharia de Software - 6° Edição
SOMMERVILLE - Engenharia de Software - 8° Edição 26
Teste de Programa
• Podem ser classificados
Fonte:
Profa. Maria Auxiliadora PRESSMAN, ROGER - Engenharia de Software - 6° Edição
SOMMERVILLE - Engenharia de Software - 8° Edição 27
Tipos de Testes – (Método)
• Testes de defeitos
– Tem por objetivo encontrar defeitos –
inconsistências entre o programa e a
sua especificação.
– Verifica a correção – conhecido também
por testes de correção.
– Normalmente realizados com
protótipos funcionais.
Fonte:
Profa. Maria Auxiliadora PRESSMAN, ROGER - Engenharia de Software - 6° Edição
SOMMERVILLE - Engenharia de Software - 8° Edição 28
Tipos de Testes – (Método)
• Testes estatísticos
– Utilizados para avaliar o
desempenho e a confiabilidade –
checar como ele trabalha nas
condições operacionais
• Exemplos de medições:
–Número de falhas observadas
–Tempos de resposta
–Tempos de execução
Fonte:
Profa. Maria Auxiliadora PRESSMAN, ROGER - Engenharia de Software - 6° Edição
SOMMERVILLE - Engenharia de Software - 8° Edição 29
Teste de Programa
Fase de Categorias de Testes Características da Fase de
Validação Aplicadas Validação
Fonte:
Profa. Maria Auxiliadora PRESSMAN, ROGER - Engenharia de Software - 6° Edição
SOMMERVILLE - Engenharia de Software - 8° Edição 31
Tipos de Unicidade
Esquema
Fonte:
Profa. Maria Auxiliadora PRESSMAN, ROGER - Engenharia de Software - 6° Edição
SOMMERVILLE - Engenharia de Software - 8° Edição 32
Tipos de Unicidade
• É o processo de teste de componentes
individuais isoladamente.
Fonte:
Profa. Maria Auxiliadora PRESSMAN, ROGER - Engenharia de Software - 6° Edição
SOMMERVILLE - Engenharia de Software - 8° Edição 34
Testes de Integração
• Concentra-se no projeto e na
construção da arquitetura de software.
• Conhecidos como testes em ponto
grande.
• Os componentes são integrados e o
conjunto maior é testado – módulo e
subsistemas.
Fonte:
Profa. Maria Auxiliadora PRESSMAN, ROGER - Engenharia de Software - 6° Edição
SOMMERVILLE - Engenharia de Software - 8° Edição 35
Testes de Integração
• Tipos de interfaces
Fonte:
Profa. Maria Auxiliadora PRESSMAN, ROGER - Engenharia de Software - 6° Edição
SOMMERVILLE - Engenharia de Software - 8° Edição 36
Testes de Integração
• Quem faz: Geralmente o programador.
• O que é testado: A integração entre os
módulos.
• Quando termina: Quando o
programador verifica que a
interligação entre os módulos se
encontra bem definida.
Fonte:
Profa. Maria Auxiliadora PRESSMAN, ROGER - Engenharia de Software - 6° Edição
SOMMERVILLE - Engenharia de Software - 8° Edição 37
Testes de Integração
• Não-Incremental: As unidades são
combinadas e o programa completo é
testado como um todo.
• Incremental: Combina o módulo
seguinte a ser testado com o conjunto de
módulos já testados, existem alguns
tipos:
– Integração Top-down.
– Integração Bottom-up. Fonte:
Profa. Maria Auxiliadora PRESSMAN, ROGER - Engenharia de Software - 6° Edição
SOMMERVILLE - Engenharia de Software - 8° Edição 38
Integração Top-down
Fonte:
Profa. Maria Auxiliadora PRESSMAN, ROGER - Engenharia de Software - 6° Edição
SOMMERVILLE - Engenharia de Software - 8° Edição 39
Integração Top-down
Fonte:
Profa. Maria Auxiliadora PRESSMAN, ROGER - Engenharia de Software - 6° Edição
SOMMERVILLE - Engenharia de Software - 8° Edição 40
Integração Bottom-up
• Início da construção e dos testes com
módulos atômicos (localizados no nível
mais baixo da estrutura do sistema).
Ma Mb
D1 D2 D3
Cluster 3
Cluster 1
Cluster 2
Fonte:
Profa. Maria Auxiliadora PRESSMAN, ROGER - Engenharia de Software - 6° Edição
SOMMERVILLE - Engenharia de Software - 8° Edição 42
Testes de Integração
Vantagens e desvantagens
• Integração Top-down:
– Vantagem: Testar logo no início as funções principais
do software.
– Desvantagem: necessidade de simuladores.
• Integração Bottom-up:
– Vantagem: permite que as unidades mais básicas
sejam testadas mais cedo.
– Desvantagem: O módulo principal não existe até que
todos os módulos estiverem testados.
Fonte:
Profa. Maria Auxiliadora PRESSMAN, ROGER - Engenharia de Software - 6° Edição
SOMMERVILLE - Engenharia de Software - 8° Edição 43
Teste de Sistema
• Verificar se as funções estão de acordo com a
especificação e se todos os elementos do
sistema combinam-se adequadamente.
Fonte:
Profa. Maria Auxiliadora PRESSMAN, ROGER - Engenharia de Software - 6° Edição
SOMMERVILLE - Engenharia de Software - 8° Edição 44
Teste de Sistema
Fonte:
Profa. Maria Auxiliadora PRESSMAN, ROGER - Engenharia de Software - 6° Edição
SOMMERVILLE - Engenharia de Software - 8° Edição 45
Teste de Sistema
• Envolve uma série de diferentes testes,
cujo propósito primordial é pôr
completamente à prova o sistema
baseado em computador.
• Se divide em quatro testes:
– Teste de Recuperação;
– Teste de Estresse;
– Teste de Desempenho;
– Teste de Segurança.
Profa. Maria Auxiliadora
Fonte:
PRESSMAN, ROGER - Engenharia de Software - 6° Edição
SOMMERVILLE - Engenharia de Software - 8° Edição 46
Teste de Sistema
• Teste de Recuperação
−É um teste de sistema que força o
software a falhar de diversas
maneiras e verifica se a
recuperação é adequadamente
executada.
Fonte:
Profa. Maria Auxiliadora PRESSMAN, ROGER - Engenharia de Software - 6° Edição
SOMMERVILLE - Engenharia de Software - 8° Edição 47
Teste de Sistema
• Teste de Estresse
–Confronta os programas com
situações anormais de frequência,
volume ou recursos em
quantidade.
–Pode ser utilizada uma lista com
situações padrão de provocação
de “estresse do sistema”.
Fonte:
Profa. Maria Auxiliadora PRESSMAN, ROGER - Engenharia de Software - 6° Edição
SOMMERVILLE - Engenharia de Software - 8° Edição 48
Teste de Sistema
• Teste de Desempenho
−Testa o tempo de resposta do
sistema e é aplicado geralmente
para sistemas de tempo real.
−Preocupa-se com o rendimento,
tempo de resposta e capacidade
( especialmente a capacidade do
banco de dados.)
Fonte:
Profa. Maria Auxiliadora PRESSMAN, ROGER - Engenharia de Software - 6° Edição
SOMMERVILLE - Engenharia de Software - 8° Edição 49
Teste de Sistema
• Teste de Segurança
– Tenta verificar se todos os mecanismos de
proteção embutidos num sistema o
protegerão, de fato, de acessos indevidos.
– A estratégia de teste deve ser feita por
programadores que não desenvolveram o
software.
– Os testadores devem tentar invadir o sistema
de várias formas: obtenção ilegal de senhas,
desarme do sistema e outros.
Fonte:
Profa. Maria Auxiliadora PRESSMAN, ROGER - Engenharia de Software - 6° Edição
SOMMERVILLE - Engenharia de Software - 8° Edição 50
Teste de Aceitação
• Objetivo: Avaliar a possibilidade de uso do
sistema;
Fonte:
Profa. Maria Auxiliadora PRESSMAN, ROGER - Engenharia de Software - 6° Edição
SOMMERVILLE - Engenharia de Software - 8° Edição 52
Teste de Aceitação
• Tipos:
– Alfa: É feito por um cliente nas
instalações do desenvolvedor. O
software é usado num ambiente
controlado com o desenvolvedor
"olhando sobre os ombros“ do usuário e
registrando erros e problemas de uso.
Fonte:
Profa. Maria Auxiliadora PRESSMAN, ROGER - Engenharia de Software - 6° Edição
SOMMERVILLE - Engenharia de Software - 8° Edição 53
Teste de Aceitação
• Tipos....
− Beta: É realizado nas instalações do
cliente pelo usuário final do
software. O desenvolvedor não está
presente, e o cliente registra os
problemas que são encontrados e
relata-os ao desenvolvedor
posteriormente.
Fonte:
Profa. Maria Auxiliadora PRESSMAN, ROGER - Engenharia de Software - 6° Edição
SOMMERVILLE - Engenharia de Software - 8° Edição 54
Projeto de Casos de Teste
– Oferece uma abordagem
sistemática ao teste;
Entradas
Entrada de dados I que provocam
de teste e comportamento anômalo
Sistema
Fonte:
Profa. Maria Auxiliadora PRESSMAN, ROGER - Engenharia de Software - 6° Edição
SOMMERVILLE - Engenharia de Software - 8° Edição 59
Teste Funcional (caixa preta)
• Problemas:
−Dificuldade em quantificar a
atividade de teste: não se pode
garantir que partes essenciais ou
críticas do software foram
executadas.
−Dificuldade de automatização.
Fonte:
Profa. Maria Auxiliadora PRESSMAN, ROGER - Engenharia de Software - 6° Edição
SOMMERVILLE - Engenharia de Software - 8° Edição 60
Teste estrutural (caixa branca)
Fonte:
Profa. Maria Auxiliadora PRESSMAN, ROGER - Engenharia de Software - 6° Edição
SOMMERVILLE - Engenharia de Software - 8° Edição 62
Teste estrutural (caixa branca)
Dados de teste
testa Deriva
Saídas do
Código de
teste
componente
Fonte:
Profa. Maria Auxiliadora PRESSMAN, ROGER - Engenharia de Software - 6° Edição
SOMMERVILLE - Engenharia de Software - 8° Edição 63
Teste de Caminho Básico
O teste de caminho básico
possibilita que o projetista do caso
de teste derive uma medida de
complexidade lógica de um projeto
procedimental e use essa medida
como guia para definir um conjunto
básico de caminhos de execução.
Fonte:
Profa. Maria Auxiliadora PRESSMAN, ROGER - Engenharia de Software - 6° Edição
SOMMERVILLE - Engenharia de Software - 8° Edição 64
Teste de Caminho Básico
Fonte:
Profa. Maria Auxiliadora PRESSMAN, ROGER - Engenharia de Software - 6° Edição
SOMMERVILLE - Engenharia de Software - 8° Edição 65
Fluxograma e Grafo de Fluxo
1
1
2
2
3
3 6 4, 5
8
7
6 4
9
7 8 5 10
9
10 11
11
Configuração
Esquema
de Software
Depuração
Resultados Erros
Atividades
de Teste dos Testes
Correções
Avaliação
Dados da Confiabilidade
Configuração Resultados Taxa de Prevista
de Teste Esperados Erros
Modelo de
Confiabilidade
Fonte:
Profa. Maria Auxiliadora PRESSMAN, ROGER - Engenharia de Software - 6° Edição
SOMMERVILLE - Engenharia de Software - 8° Edição 67
Ferramentas de Automatização
• Uma ferramenta de teste reduz
a intervenção humana nos
resultados obtidos, aumentando
a qualidade e a produtividade
da atividade de teste. Influencia
diretamente a confiabilidade do
software testado.
Fonte:
Profa. Maria Auxiliadora PRESSMAN, ROGER - Engenharia de Software - 6° Edição
SOMMERVILLE - Engenharia de Software - 8° Edição 68
Tipos de Ferramentas
• Estáticas: verificam portabilidade, estilo e são
independentes da qualidade dos casos de
teste.
• Dinâmico – Monitoram a execução do
programa. Adiciona código a um programa
para contar o número de vezes que cada
declaração foi executada.
• Simulador – simulam a máquina em que o
programa deve ser executado.
Fonte:
Profa. Maria Auxiliadora PRESSMAN, ROGER - Engenharia de Software - 6° Edição
SOMMERVILLE - Engenharia de Software - 8° Edição 69