Engenharia de Software II - UFFbianca/engsoft2/index_arquivos/Aula10-EngSoft2.pdf · Texto de...
Transcript of Engenharia de Software II - UFFbianca/engsoft2/index_arquivos/Aula10-EngSoft2.pdf · Texto de...
Aula 10 - 24/05/2006 1
Engenharia de Software II
Aula 10
http://www.ic.uff.br/~bianca/engsoft2/
Aula 10 - 24/05/2006 2
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 3
Testes Caixa-Preta e Caixa-Branca
• Testes Caixa-Preta– São conduzidos na interface do
software, sem preocupação com a estrutura lógica interna do software.
• Testes Caixa-Branca– São baseados em um exame
rigoroso do detalhe procedimental.
– Caminhos lógicos e colaborações entre componentes são testadas.
Software
Entrada Saída
Software
Entrada Saída
Aula 10 - 24/05/2006 4
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ágiosde teste.
• Ignora de propósito a estrutura de controle para focalizar o domínio da informação.
Aula 10 - 24/05/2006 5
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 6
Tipos de Teste Caixa Preta
1. Teste baseado em grafos2. Particionamento de equivalência3. Análise de valor-limite4. Teste de matriz ortogonal
Aula 10 - 24/05/2006 7
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 8
Exemplo
ArquivoNovo
Janela deDocumento
Texto deDocumento
Seleção menu gera
Contém
É representadocomo
(tempo de geração< 1,0 segundos)
Relação Direcional
Relação ParalelaRelação Bi-direcional
Possibilita aedição de
Atributos:-Dimensões iniciais-Cor de fundo-Cor de texto
Aula 10 - 24/05/2006 9
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 10
Tipos de Teste Caixa Preta
1. Teste baseado em grafos2. Particionamento de equivalência3. Análise de valor-limite4. Teste de matriz ortogonal
Aula 10 - 24/05/2006 11
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 12
Diretrizes para Classes de Equivalência
1. Se uma condição de entrada especifica um intervalo:
• 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:
• Uma classe de equivalência válida e duas inválidas são definidas.
válidainválida 1 inválida 2
válidainválida 1 inválida 2
Aula 10 - 24/05/2006 13
Diretrizes para Classes de Equivalência
3. Se uma condição de entrada especifica o membro de um conjunto:
• 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.
válidainválida
Aula 10 - 24/05/2006 14
Tipos de Teste Caixa Preta
1. Teste baseado em grafos2. Particionamento de equivalência3. Análise de valor-limite4. Teste de matriz ortogonal
Aula 10 - 24/05/2006 15
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 16
Diretrizes para BVA
1. Se uma condição de entrada especifica um intervalo:
• 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.
a b
Aula 10 - 24/05/2006 17
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 18
Tipos de Teste Caixa Preta
1. Teste baseado em grafos2. Particionamento de equivalência3. Análise de valor-limite4. Teste de matriz ortogonal
Aula 10 - 24/05/2006 19
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 20
Exemplo
• Três itens de entrada:– X, Y, Z com três valores cada.
X
Y
Z
X
Y
Z
X
Y
Z
Teste ExaustivoMatriz OrtogonalTeste Singular
Aula 10 - 24/05/2006 21
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 22
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.