Beruflich Dokumente
Kultur Dokumente
Aula 10
http://www.ic.uff.br/~bianca/engsoft2/
Aula 10 - 24/05/2006 1
Ementa
• Processos de desenvolvimento de software
Aula 10 - 24/05/2006 2
Testes Caixa-Preta e
Caixa-Branca
• Testes Caixa-Preta Software
– São conduzidos na interface do Entrada Saída
software, sem preocupação com
a estrutura lógica interna do
software.
• Testes Caixa-Branca
Software
– São baseados em um exame
rigoroso do detalhe Entrada Saída
procedimental.
– Caminhos lógicos e
colaborações entre componentes
são testadas.
Aula 10 - 24/05/2006 3
Teste Caixa Preta
• Também chamado de teste comportamental.
– Focaliza os requisitos funcionais do software.
– É complementar ao teste caixa branca.
• Deve ser aplicado durante os últimos estágios
de teste.
• Ignora de propósito a estrutura de controle para
focalizar o domínio da informação.
Aula 10 - 24/05/2006 4
Projeto de Teste Caixa Preta
• Deve responder às seguintes perguntas:
– Como a validade funcional é testada?
– Como o comportamento e o desempenho do sistema são
testados?
– Que classes de entrada vão constituir bons casos de teste?
– O sistema é particularmente sensível a certos valores de
entrada?
– Como são isolados os limites de uma classe de dados?
– Que taxas e volumes de dados o sistema pode tolerar?
– Que efeito as combinações específicas de dados vão ter na
operação do sistema?
Aula 10 - 24/05/2006 5
Tipos de Teste Caixa Preta
1. Teste baseado em grafos
2. Particionamento de equivalência
3. Análise de valor-limite
4. Teste de matriz ortogonal
Aula 10 - 24/05/2006 6
Métodos de Teste
Baseados em Grafos
• O primeiro passo no teste é entender os
objetos que estão modelados no software
e as relações entre eles.
– Para isso, o engenheiro cria um grafo onde
cada nó representa um objeto e cada aresta
representa uma relação entre os objetos.
• Depois disso, uma série de testes é criada
para cobrir o grafo de modo que cada
objeto e cada relação seja exercitada.
Aula 10 - 24/05/2006 7
Exemplo
Atributos:
-Dimensões iniciais
-Cor de fundo
Relação Direcional -Cor de texto
Aula 10 - 24/05/2006 8
Tipos de modelagem
usando grafos
• Modelagem de fluxo de transação
– Nós representam passos em alguma transação.
– Arestas representam as conexões lógicas entre os passos.
• Modelagem de estado finito
– Nós representam diferentes estados do software observáveis pelo
usuário.
– Arestas representam transições de um estado para outro.
• Modelagem de fluxo de dados
– Nós representam os objetos de dados.
– Arestas representam as transformações que ocorrem para traduzir um
objeto em outro.
• Eg: FTW = 0,62 x GW
• Modelagem de tempo
– Nós representam objetos do programa.
– Arestas representam ligações seqüenciais entre esses objetos.
• Pesos são usados para especificar os tempos de execução.
Aula 10 - 24/05/2006 9
Tipos de Teste Caixa Preta
1. Teste baseado em grafos
2. Particionamento de equivalência
3. Análise de valor-limite
4. Teste de matriz ortogonal
Aula 10 - 24/05/2006 10
Particionamento de Equivalência
• Busca definir casos de teste que
descobrem classes de erros, reduzindo o
número total de casos de teste.
– Divide o domínio de entrada de um programa
em classes de dados.
– Uma classe de equivalência representa um
conjunto de estados válidos ou inválidos para
a entrada.
Aula 10 - 24/05/2006 11
Diretrizes para
Classes de Equivalência
1. Se uma condição de entrada especifica
um intervalo: inválida 1 válida inválida 2
Aula 10 - 24/05/2006 12
Diretrizes para
Classes de Equivalência
3. Se uma condição de entrada especifica
o membro de um conjunto: válida
inválida
Aula 10 - 24/05/2006 13
Tipos de Teste Caixa Preta
1. Teste baseado em grafos
2. Particionamento de equivalência
3. Análise de valor-limite
4. Teste de matriz ortogonal
Aula 10 - 24/05/2006 14
Análise de Valor-limite (BVA)
• Há uma tendência de ocorrência de erros
nas fronteiras do domínio de entrada.
– Por esse motivo, foram desenvolvidas as
técnicas BVA (boundary-value analysis).
– Em vez de selecionar qualquer elemento de
uma classe de equivalência, a BVA leva a
escolha de casos de testes nas “bordas” da
classe.
Aula 10 - 24/05/2006 15
Diretrizes para BVA
1. Se uma condição de entrada especifica um
intervalo: a b
Aula 10 - 24/05/2006 16
Diretrizes para BVA
3. Aplique as diretrizes 1 e 2 às condições
de saída.
• Exemplo: a saída de um programa é uma
tabela de dados. Casos de teste devem ser
criados para gerar tabelas com o mínimo e
o máximo de linhas e colunas.
4. Se as estruturas de dados internas do
programa têm limites definidos, testes
devem ser projetados para exercitar os
limites internos.
Aula 10 - 24/05/2006 17
Tipos de Teste Caixa Preta
1. Teste baseado em grafos
2. Particionamento de equivalência
3. Análise de valor-limite
4. Teste de matriz ortogonal
Aula 10 - 24/05/2006 18
Teste de Matriz Ortogonal
• Se o domínio de entrada é limitado, é possível realizar
testes exaustivos de todos as combinações de valores
de entrada.
– Exemplo: três parâmetros que assumem três valores discretos
cada um (3×3×3 = 27 casos de teste).
• Para domínios de entrada muito grandes, uma
abordagem comum é variar um parâmetro de cada vez.
– Não detecta interações entre parâmetros
• O teste de matriz ortogonal é um meio termo, aplicável a
problemas com domínio de entrada relativamente
pequeno, mas grande demais para testes exaustivos.
Aula 10 - 24/05/2006 19
Exemplo
• Três itens de entrada:
– X, Y, Z com três valores cada.
Z Z Z
Y Y Y
X X X
Aula 10 - 24/05/2006 20
Propriedades da
Matriz Ortogonal
• Casos de teste ficam espalhados
uniformemente pelo domínio de teste.
• Detecta e isola todas as falhas de modo
singular.
– Pela análise da informação sobre quais testes
revelam erros, pode-se identificar quais valores de
parâmetro causam a falha.
• Detecta todas as falhas de modo duplo.
• Falhas multi-modo podem ou não ser
detectadas.
Aula 10 - 24/05/2006 21
Métodos de Teste
Orientados a Objetos
• Métodos de teste caixa branca e caixa preta são
aplicáveis, mas surgem algumas complicações:
– O encapsulamento torna difícil o acesso ao estado do
objeto.
• Torna-se necessário criar métodos para relatar os valores
dos atributos da classe.
– A herança múltipla aumenta o número de contextos
para os quais o teste é necessário.
• Se a subclasse é usada um contexto diferente da
superclasse, um novo conjunto de testes para a superclasse
precisa ser projetado.
• Mesmo os métodos que não foram redefinidos tem que ser
testados.
Aula 10 - 24/05/2006 22