Engenharia de Software II - UFFbianca/engsoft2/index_arquivos/Aula10-EngSoft2.pdf · Texto de...

22
Aula 10 - 24/05/2006 1 Engenharia de Software II Aula 10 http://www.ic.uff.br/~bianca/engsoft2/

Transcript of Engenharia de Software II - UFFbianca/engsoft2/index_arquivos/Aula10-EngSoft2.pdf · Texto de...

Page 1: Engenharia de Software II - UFFbianca/engsoft2/index_arquivos/Aula10-EngSoft2.pdf · Texto de Documento Seleção menu gera Contém É representado como (tempo de geração < 1,0

Aula 10 - 24/05/2006 1

Engenharia de Software II

Aula 10

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

Page 2: Engenharia de Software II - UFFbianca/engsoft2/index_arquivos/Aula10-EngSoft2.pdf · Texto de Documento Seleção menu gera Contém É representado como (tempo de geração < 1,0

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

Page 3: Engenharia de Software II - UFFbianca/engsoft2/index_arquivos/Aula10-EngSoft2.pdf · Texto de Documento Seleção menu gera Contém É representado como (tempo de geração < 1,0

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

Page 4: Engenharia de Software II - UFFbianca/engsoft2/index_arquivos/Aula10-EngSoft2.pdf · Texto de Documento Seleção menu gera Contém É representado como (tempo de geração < 1,0

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.

Page 5: Engenharia de Software II - UFFbianca/engsoft2/index_arquivos/Aula10-EngSoft2.pdf · Texto de Documento Seleção menu gera Contém É representado como (tempo de geração < 1,0

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?

Page 6: Engenharia de Software II - UFFbianca/engsoft2/index_arquivos/Aula10-EngSoft2.pdf · Texto de Documento Seleção menu gera Contém É representado como (tempo de geração < 1,0

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

Page 7: Engenharia de Software II - UFFbianca/engsoft2/index_arquivos/Aula10-EngSoft2.pdf · Texto de Documento Seleção menu gera Contém É representado como (tempo de geração < 1,0

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.

Page 8: Engenharia de Software II - UFFbianca/engsoft2/index_arquivos/Aula10-EngSoft2.pdf · Texto de Documento Seleção menu gera Contém É representado como (tempo de geração < 1,0

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

Page 9: Engenharia de Software II - UFFbianca/engsoft2/index_arquivos/Aula10-EngSoft2.pdf · Texto de Documento Seleção menu gera Contém É representado como (tempo de geração < 1,0

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.

Page 10: Engenharia de Software II - UFFbianca/engsoft2/index_arquivos/Aula10-EngSoft2.pdf · Texto de Documento Seleção menu gera Contém É representado como (tempo de geração < 1,0

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

Page 11: Engenharia de Software II - UFFbianca/engsoft2/index_arquivos/Aula10-EngSoft2.pdf · Texto de Documento Seleção menu gera Contém É representado como (tempo de geração < 1,0

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.

Page 12: Engenharia de Software II - UFFbianca/engsoft2/index_arquivos/Aula10-EngSoft2.pdf · Texto de Documento Seleção menu gera Contém É representado como (tempo de geração < 1,0

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

Page 13: Engenharia de Software II - UFFbianca/engsoft2/index_arquivos/Aula10-EngSoft2.pdf · Texto de Documento Seleção menu gera Contém É representado como (tempo de geração < 1,0

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

Page 14: Engenharia de Software II - UFFbianca/engsoft2/index_arquivos/Aula10-EngSoft2.pdf · Texto de Documento Seleção menu gera Contém É representado como (tempo de geração < 1,0

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

Page 15: Engenharia de Software II - UFFbianca/engsoft2/index_arquivos/Aula10-EngSoft2.pdf · Texto de Documento Seleção menu gera Contém É representado como (tempo de geração < 1,0

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.

Page 16: Engenharia de Software II - UFFbianca/engsoft2/index_arquivos/Aula10-EngSoft2.pdf · Texto de Documento Seleção menu gera Contém É representado como (tempo de geração < 1,0

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

Page 17: Engenharia de Software II - UFFbianca/engsoft2/index_arquivos/Aula10-EngSoft2.pdf · Texto de Documento Seleção menu gera Contém É representado como (tempo de geração < 1,0

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.

Page 18: Engenharia de Software II - UFFbianca/engsoft2/index_arquivos/Aula10-EngSoft2.pdf · Texto de Documento Seleção menu gera Contém É representado como (tempo de geração < 1,0

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

Page 19: Engenharia de Software II - UFFbianca/engsoft2/index_arquivos/Aula10-EngSoft2.pdf · Texto de Documento Seleção menu gera Contém É representado como (tempo de geração < 1,0

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.

Page 20: Engenharia de Software II - UFFbianca/engsoft2/index_arquivos/Aula10-EngSoft2.pdf · Texto de Documento Seleção menu gera Contém É representado como (tempo de geração < 1,0

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

Page 21: Engenharia de Software II - UFFbianca/engsoft2/index_arquivos/Aula10-EngSoft2.pdf · Texto de Documento Seleção menu gera Contém É representado como (tempo de geração < 1,0

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.

Page 22: Engenharia de Software II - UFFbianca/engsoft2/index_arquivos/Aula10-EngSoft2.pdf · Texto de Documento Seleção menu gera Contém É representado como (tempo de geração < 1,0

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.