Buscar

Teste de Software RESUMO

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 15 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 15 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 15 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Testes Essenciais 1
UERJ – CTC/IME – Engenharia de Software 09-1 © Prof. A Padua Oliveira
Tópicos:
1. Introdução
2. Método Funcional (Método da CAIXA PRETA)
3. Método Estrutural (Método da CAIXA BRANCA)
4. Exercícios propostos
TESTES DE SOFTWARE
UERJ – CTC/IME – Engenharia de Software 09-1 © Prof. A Padua Oliveira
2/40
1. Introdução
1.1 Definições
1.2 Psicologia e Economia em Testes de Programas
1.3 Considerações usadas durante a fase de testes
1.4 Abordagens para projetos de casos de testes
2. Método Funcional (Método da CAIXA PRETA)
2.1 Análise de participações de equivalência
2.2 Análise de valores limites
2.3 Análise por gráficos de causa-efeito
2.4 Análise por conjeturas do erro
3. Método Estrutural (Método da CAIXA BRANCA)
3.1 Testes de cobertura de instruções
3.2 Testes de cobertura de loops
3.3 Testes de cobertura de caminhos
4. Exercícios propostos
Tópicos TESTES DE SOFTWARE
Testes Essenciais 2
UERJ – CTC/IME – Engenharia de Software 09-1 © Prof. A Padua Oliveira
3/40
DEFINIÇÕES:
TESTAR SOFTWARE:
Processo de executar um programa 
com a finalidade de encontrar erros;
ERRO: item de informação ou estado de funcionamento 
defeituoso ou inconsistente com as especificações;
DEFEITO: deficiência de implementação que, se ativada, 
pode provocar uma falha no sistema;
FALHA: evento em que o sistema viola as especificações ou 
os requisitos originais.
DEFEITOERRO FALHA
1. Introdução TESTES DE SOFTWARE
UERJ – CTC/IME – Engenharia de Software 09-1 © Prof. A Padua Oliveira
4/40
1. As falhas aparecem durante o uso do sistema.
2. A maior parte dos defeitos é de origem humana. 
3. Quanto mais cedo os defeitos forem 
encontrados maior a chance do acerto e menor o 
custo da correção. 
4. A melhor estratégia é a prevenção:
Verificações: a equipe de desenvolvimento deve revisar 
cada artefato produzido;
Validações: os clientes podem participar da aceitação dos 
artefatos produzidos;
Testes: é um mecanismo eficaz para a prevenção de 
defeitos.
Constatações 1:
1. Introdução TESTES DE SOFTWARE
Testes Essenciais 3
UERJ – CTC/IME – Engenharia de Software 09-1 © Prof. A Padua Oliveira
5/40
1. As falhas do sistema afetam a confiabilidade.
2. A maior parte dos defeitos são encontradas em 
situações pouco executados.
3. Existem 10 defeitos por 1.000 linhas de código.
4. Uma ferramenta automatizada torna mais 
eficiente o processo de testar software.
5. Sitio de ferramentas:
http://www.sqa-test.Com/toolpage.html.
Constatações 2:
1. Introdução TESTES DE SOFTWARE
UERJ – CTC/IME – Engenharia de Software 09-1 © Prof. A Padua Oliveira
6/40
Custo de 
alterações:
B. Bohem:
1987: 100x
2001: 5x
1. Introdução TESTES DE SOFTWARE
Testes Essenciais 4
UERJ – CTC/IME – Engenharia de Software 09-1 © Prof. A Padua Oliveira
7/40
O Processo:
Testar Software
“fluxo de trabalho”
Avaliação
Depuração
Planejamento
Preparação
Analista Testador
Execução
Programador
[ OK ]
SIM
NÃO
1. Introdução TESTES DE SOFTWARE
UERJ – CTC/IME – Engenharia de Software 09-1 © Prof. A Padua Oliveira
8/40
� Testar:
Objetivos errados ou incompletos:
"Testar é o processo que leva a se confiar que um programa 
faz o que se supõe que deva fazer”.
"Testar é demonstrar que não existem erros no programa”.
"A finalidade é mostrar que o programa realiza 
corretamente as funções esperadas“.
� "Depurar é o processo de corrigir os erros encontrados."
1. Introdução TESTES DE SOFTWARE
Testes Essenciais 5
UERJ – CTC/IME – Engenharia de Software 09-1 © Prof. A Padua Oliveira
9/40
Princípios gerais dos testes
Um bom caso de teste é aquele que tem uma chance elevada de 
encontrar um erro ainda não descoberto.
Um caso de teste com êxito é aquele que descobre um erro novo.
A economia dos testes
Teste exaustivo: - uso de todas as possíveis situações de teste.
O teste exaustivo é impraticável devido ao custo e ao tempo para 
sua realização.
Projetos típicos consomem até 50% do tempo de desenvolvimento do 
software, nas tarefas de testar e depurar.
Motivo: Falta de um plano de testes.
1. Introdução TESTES DE SOFTWARE
UERJ – CTC/IME – Engenharia de Software 09-1 © Prof. A Padua Oliveira
10/40
1. Introdução
Considerações usadas durante a fase de testes
1) A definição do resultado esperado é uma parte integrante e 
necessária.
2) Para se evitar erros de interpretação, o programador deve 
evitar testar seu próprio programa (mas deve corrigir os erros 
encontrados).
� A busca de falhas na própria tarefa parece estar contra a 
psicologia humana.
3) Deve-se inspecionar cuidadosamente o resultado de cada teste. 
A experiência mostra que em cada caso de teste com problema 
ficam muitos sintomas de erros ainda por descobrir.
4) Os casos de teste devem ser escritos tanto para as condições de 
entrada inválidas e inesperadas como para as condições válidas e 
esperadas.
5) O teste deve investigar se o programa faz o que se supõe que 
faça e se também faz o que não tem que fazer.
TESTES DE SOFTWARE
Testes Essenciais 6
UERJ – CTC/IME – Engenharia de Software 09-1 © Prof. A Padua Oliveira
11/40
Considerações usadas durante a fase de testes
6) Os casos de teste devem ser documentados com todos os dados 
previamente preparados para sua realização. 
7) Não planejar um caso de teste com a suposição de que não serão 
encontrados erros. 
8) A probabilidade de se encontrar erros adicionais em um trecho 
do programa é proporcional ao número de erros já encontrados 
no mesmo trecho. 
9) Os casos de teste planejados e não executados devem ser 
justificados. 
10) O teste é uma tarefa altamente criativa, é um desafio 
intelectual. 
• A criatividade requerida para testar programas grandes 
pode superar a criatividade necessária de implementação.
Não altere o programa durante os testes.
1. Introdução TESTES DE SOFTWARE
UERJ – CTC/IME – Engenharia de Software 09-1 © Prof. A Padua Oliveira
12/40
Objetivo: selecionar um conjunto mínimo de casos de teste.
A. Método Funcional (Teste Caixa Preta)
Características:
O elaborador da massa de testes não considera os detalhes de
implementação da estrutura interna do módulo ou programa.
Se baseia em encontrar circunstâncias nas quais o programa não se
comporta de acordo com suas especificações ou requisitos.
Deseja encontrar os erros testando, de forma sistemática e organizada,
o comportamento do software, através dos seus dados de entrada.
B. Técnica Estrutural (Teste Caixa Branca) 
Características:
O elaborador da massa de testes não considera a especificação do
programa. Baseia-se apenas na estrutura interna da implementação, ou
seja, nos algoritmos e nas estruturas de dados, para encontrar situações
de erro.
Deseja-se encontrar os erros em um programa testando a execução da 
lógica de suas linhas de código. No teste, faz-se que cada linha de código 
seja executada pelo menos uma vez.
C. Teste Caixa Cinza (Técnica funcional e estrutural)
• Abordagem que combina os dois métodos anteriores. 
2. Métodos Abordagens para projetos de casos de testes
Testes Essenciais 7
UERJ – CTC/IME – Engenharia de Software 09-1 © Prof. A Padua Oliveira
13/40
Possui as seguintes as técnicas:
a) Participações de equivalência
b) Análise de valores limites
c) Gráficos de causa-efeito
d) Conjecturas do erro. 
a) Análise das participações de equivalência
1º Passo: Identificar as classes de equivalência (válidas e inválidas)
para as entradas e para as saídas.
Método Funcional (Teste Caixa Preta)
Entrada Classes sugeridas 
um intervalo
ex.: inteiros [1,5]
uma classe válida e duas inválidas
] - ∞ ; 0 ] , [ 1; 5] , [ 6; + ∞ [ 
um valor uma classe válida e duas inválidas
valor abaixo, o próprio, valor acima 
elemento de um conjunto uma classe válida e uma inválida
uma condição lógica uma classe válida e uma inválida
2.1a Partições
UERJ – CTC/IME – Engenharia de Software 09-1 © Prof. A Padua Oliveira
14/40
Recomendações:
• As entradas com classes complexas devem ser
desmembradas em classes mais simples, fazendo-sedepois a combinação entre os casos mais simples
elaborados.
• Prever casos de saída e de processamento anormal.
• Criar casos de teste para valores muito grandes
(overflow), e para valores muito pequenos (underflow).
• Simular casos de divisão por zero, e de valores
indeterminados como: tan (90), log 0.
• Prever casos para valores especiais de estruturas de
dados, tais como: vetor nulo, matriz unitária, fila ou pilha
vazia, etc.
Método Funcional (Teste Caixa Preta)2.1a Partições
Testes Essenciais 8
UERJ – CTC/IME – Engenharia de Software 09-1 © Prof. A Padua Oliveira
15/40
a) Análise das participações de equivalência
2º Passo: Definir os casos de teste, a partir das classes de
equivalência identificadas.
1) Numerar as classes de equivalência;
2) Estabelecer os casos de teste para a cobertura das
classes válidas;
- cada caso de teste deve cobrir o maior número
possível de classes válidas;
3) Estabelecer os casos de teste para a cobertura das
classes inválidas;
- cada caso de teste deve cobrir uma e somente uma
das classes inválidas ainda não cobertas.
Método Funcional (Teste Caixa Preta)2.1a Partições
UERJ – CTC/IME – Engenharia de Software 09-1 © Prof. A Padua Oliveira
16/40
2.1b Limites Método Funcional (Teste Caixa Preta)
b) Análise de valores limites
A técnica da análise de valores limites seleciona os casos de
teste que valorizam as condições de contorno das classes de
equivalência.
• selecionar as situações limites de cada partição de 
equivalência;
• explorar as situações limites de entrada como também as 
situações limites de saída.
Fato: "Um número maior de erros tende a aparecer nos 
limites, ou contornos, das classes de equivalência do 
módulo testado.“
------------------------------------------------------------
Sugestões de casos de teste: intervalo de datas: [ a, b [ 
� imediatamente abaixo de a;
� valor de a;
� imediatamente acima de a;
� imediatamente abaixo de b;
� valor de b;
� imediatamente acima de b;
Testes Essenciais 9
UERJ – CTC/IME – Engenharia de Software 09-1 © Prof. A Padua Oliveira
17/40
2.1c Causa-efeito Método Funcional (Teste Caixa Preta)
c) Análise de causa-efeito
A técnica de análise de causa e efeito, recomenda a
representação das condições de entrada e as ações
correspondentes através de “grafos”. A posterior identificação
dos casos de teste é feita com o uso de uma tabela de decisão.
São os seguintes os passos recomendados:
1. Identificar as condições de entrada e as partições de 
equivalência; 
2. Identificar as ações correspondentes provenientes das 
condições de entrada identificadas;
3. Construir o grafo de causa e efeito ou uma tabela de 
decisão para as associações das condições e ações; 
4. Elaborar os casos de teste. 
UERJ – CTC/IME – Engenharia de Software 09-1 © Prof. A Padua Oliveira
18/40
2.1d Conjecturas
d) Análise por conjecturas de erro 
A "técnica" se baseia na intuição (suposição sem fundamento
preciso) ou na experiência do “testador”. Ele deve elaborar uma
relação de casos de teste para prováveis erros, os quais ele
supõe que possam ocorrer.
• Deve ser visto como um recurso complementar e não
como uma técnica.
Exemplos:
teste de um módulo para atualização de um arquivo;
- inclusão do primeiro registro;
- exclusão de todos os registros;
teste de interrupção do programa em pontos escolhidos.
- falta de energia;
- falta de comunicação;
Método Funcional (Teste Caixa Preta)
Testes Essenciais 10
UERJ – CTC/IME – Engenharia de Software 09-1 © Prof. A Padua Oliveira
19/40
3.2 Caixa Branca Método Estrutural (Teste Caixa Branca)
Os casos de teste, neste método, são escolhidos de modo que:
• todas as decisões sejam executadas;
• todos os "loops" sejam executados, nos seus limites
de especificação;
• todos os caminhos sejam considerados;
• todas as estruturas de dados sejam utilizadas.
Motivação:
Os erros de software ocorrem com mais freqüência nos
casos especiais, normalmente nos casos eventuais e pouco
executados.
UERJ – CTC/IME – Engenharia de Software 09-1 © Prof. A Padua Oliveira
20/40
São três as principais abordagens técnicas :
a) Testes de cobertura de instruções.
b) Testes de cobertura de loops.
c) Testes de cobertura de caminhos.
a) Testes de cobertura de instruções.
Técnica elementar para determinação geral de casos de teste.
Examina o comportamento de um módulo através do teste
isolado de cada linha de código sob o efeito das operações
elementares de "seleção ou repetição (loop)", não considerando
os testes da operação completa com estes componentes.
3.2a Instruções Método Estrutural (Teste Caixa Branca)
Testes Essenciais 11
UERJ – CTC/IME – Engenharia de Software 09-1 © Prof. A Padua Oliveira
21/40
3.2a Instruções
X = 1
X = X+10 X = X+20
a
a
Y < 10
Y = Y+1
X = X+30
VF
V
F
Possibilidades:
1) X falso X = 5
2) X verdadeiro X = 1
3) Y verdadeiro Y = 9
4) Y falso Y = 20
Obs.: Devido a combinações impróprias de hipóteses, a técnica pode sugerir 
casos de teste para situações impossíveis de ocorrer. Estes casos não devem 
ser selecionados. A utilização do "bom senso" recusa a seleção destes casos.
Exemplo de testes de cobertura de instruções
UERJ – CTC/IME – Engenharia de Software 09-1 © Prof. A Padua Oliveira
22/40
b) Testes de cobertura de loops
Técnica para determinação de casos de teste para
repetições/loops. Examina o comportamento de um módulo
através de testes sob o efeito da associação combinada, ou não,
das operações de "repetição (loop)".
Tipos de loops:
i) Simples ii) Aninhados iii)Seqüenciais
Método Estrutural (Teste Caixa Branca)3.2b Loops
Testes Essenciais 12
UERJ – CTC/IME – Engenharia de Software 09-1 © Prof. A Padua Oliveira
23/40
iv) Loops não estruturados
Devem ser convertidos em loops estruturados.
A técnica:
Loops simples: ( número máximo de iterações = n )
1) não executar o loop
2) apenas uma execução
3) duas execuções
4) m execuções (m < n)
5) execuções para as situações: n - 1; n; n +1;
total de casos de teste: 6 + 1 (não executar)
Obs.: Esta técnica usa o artifício de indução matemática
para produzir os casos de teste.
Método Estrutural (Teste Caixa Branca)3.2b Loops
UERJ – CTC/IME – Engenharia de Software 09-1 © Prof. A Padua Oliveira
24/40
Loops aninhados:
Estratégia sugerida:
i. Iniciar pelo laço (loop) mais interno e operar os
demais loops com os valores mínimos;
ii. Elaborar os casos de teste de loop simples;
iii. Trabalhar sucessivamente do loop mais interno para
o loop externo seguinte;
Loops seqüenciais:
Estratégia sugerida:
i. Quando os loops são independentes, ou seja, a
expressão de controle do 2 loop não é afetada pelo
primeiro, então usar a abordagem para elaborar
casos de teste para loop simples;
ii. Quando os loops não são independentes, então
elaborar casos de teste da mesma forma que para
loops aninhados;
Método Estrutural (Teste Caixa Branca)3.2b Loops
Testes Essenciais 13
UERJ – CTC/IME – Engenharia de Software 09-1 © Prof. A Padua Oliveira
25/40
Método Estrutural (Teste Caixa Branca)3.2c Caminhos
c) Testes de cobertura de caminhos.
Técnica para definição de casos de teste com base nos critérios
anteriormente definidos, de modo que, o conjunto de casos de
teste escolhido seja relativamente pequeno (minimizado).
Os casos de teste são produzidos com base em um "grafo de
fluxo de controle".
Grafo de Fluxo de Controle:
a) Características principais:
� Possuem como elementos básicos: o nó e o ramo.
� Cada nó representa um ou mais comandos
seqüenciais do módulo.
� Cada ramo inicia e termina em um nó.
� As áreas delimitadas pelos ramos são denominadas
regiões.
UERJ – CTC/IME – Engenharia de Software 09-1 © Prof. A Padua Oliveira
26/40
Método Estrutural (Teste Caixa Branca)3.2c Caminhos
Grafo de Fluxo de Controle: 
b) Notação: 
c) Determinação da complexidade de 
um grafo: 
� pelo número de regiões do 
grafo ou;
� pela expressão: 
C = NR - NN + 2
NR = número de ramos
NN = número de nós
A complexidade de um grafo, 
fornecida pela expressão, é 
equivalente ao grau de 
complexidade,ou a dificuldade 
de construção, do módulo que 
gerou o grafo. 
Nó Seqüência Decisão
Do 
While
Repeat 
Until Case
. . .
Ramo
Testes Essenciais 14
UERJ – CTC/IME – Engenharia de Software 09-1 © Prof. A Padua Oliveira
27/40
Exemplo de testes de cobertura de caminhos
3.2c Caminhos
1
2
3
4
8
9 106
5
7
11
y
x
z
O fluxograma do módulo: O grafo associado:
complexidade = número de regiões = 4 
c = 12 - 10 + 2 = 4
UERJ – CTC/IME – Engenharia de Software 09-1 © Prof. A Padua Oliveira
28/40
Exemplo do planejamento de testes combinados
3.2 Caixa Branca
Testes Essenciais 15
UERJ – CTC/IME – Engenharia de Software 09-1 © Prof. A Padua Oliveira
29/40
X = 1
X = X+10 X = X+20
a
a
Y < 10
Y = Y+1
X = X+30
VF
V
F
Exemplo de testes combinados
C = 3
Casos de Teste
 entrada saida
1) X =1 , Y = 20; X =11, Y = 20
2) X =21, Y = 20; X =41, Y = 20
3) X =1, Y = 9; X =41, Y = 10
• Aplicação da Cobertura de Caminhos:
• Aplicação da combinação das 
técnicas:
Combinando as técnicas 
anteriores 
⇒ O número mínimo de casos 
de teste segundo o método da 
caixa branca é de 13 casos de 
teste. Serão dois grupos de 
casos para teste de loop 
simples, então 2 x 6 + 1= 13.
3.2 Caixa Branca
UERJ – CTC/IME – Engenharia de Software 09-1 © Prof. A Padua Oliveira
30/40
Beizer, B.; Software Testing Techniques; Van Nostrand
Reinhold Company, New York, 1983.
Fairley, Richard E.; Software Engineering Concepts;
McGraw-Hill Book Co., 1985.
Myers G. J.; The Art of Software Testing; John Wiley,
New York, 1979.
Pressman, Roger S.; Software Engineering: A
Practioner's Approach; McGraw-Hill Book Co. New York,
1982.
Staa, Arndt von; Engenharia de Programas; 2ed., LTC -
Rio de Janeiro, 1987.
Weinberg G. M.; The Psycology of Computer
Programming; Van Nostrand Reinhold Co., 1971.
Bibliografia

Outros materiais