Sie sind auf Seite 1von 22

Engenharia de Software II

Aula 10

http://www.ic.uff.br/~bianca/engsoft2/

Aula 10 - 24/05/2006 1
Ementa
• Processos de desenvolvimento de software

• Estratégias e técnicas de teste de software (Caps. 13


e 14 do Pressman)

• Métricas para software

• Gestão de projetos de software: conceitos, métricas,


estimativas, cronogramação, gestão de risco, gestão de
qualidade e gestão de modificações

• Reengenharia e engenharia reversa

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

Seleção menu gera Janela de


Arquivo
Novo (tempo de geração Documento
< 1,0 segundos)
Possibilita a
É representado edição de
como Contém
Relação Bi-direcional Texto de
Relação Paralela
Documento

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

• Uma classe de equivalência válida e duas


inválidas são definidas.
2. Se uma condição de entrada exige um
valor específico: inválida 1 válida inválida 2
• Uma classe de equivalência válida e duas
inválidas são definidas.

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

• Uma classe de equivalência válida e uma


inválida são definidas.
4. Se uma condição de entrada é booleana:
• Uma classe de equivalência válida e uma
inválida são definidas.

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

• Casos de teste com o valores a e b, e


imediatamente acima e abaixo são planejados.
2. Se uma condição de entrada especifica vários
valores:
• Casos de teste devem ser desenvolvidos para
exercitar o mínimo e o máximo.
• Valores imediatamente acima e abaixo também
devem ser testados.

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

Teste Singular Matriz Ortogonal Teste Exaustivo

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

Das könnte Ihnen auch gefallen