• Nenhum resultado encontrado

02-testescxpreta1

N/A
N/A
Protected

Academic year: 2021

Share "02-testescxpreta1"

Copied!
44
0
0

Texto

(1)

Testes baseados na

especificação

Abril 2001

(2)

Referências

R.Binder. “Testing OO Systems”, 2000.

P.Jalote. “An Integrated Approach to Sw Engineering”, 2ª ed.,

1997, cap9.2.3

R.S.Pressman. “Engenharia de Software”, 3ª edição, 1995,

cap. 18.5.3.

(3)

Tópicos

• Introdução

• Importância da análise de requisitos

• Partição de equivalência

• Testes de valores-limite

• Grafo causa-efeito

(4)

Classificação dos testes

Modelo de base

Modelo de teste Tipo de teste

requisitos modelo do testes baseados

projeto sistema na especificação

(caixa preta)

código modelo do testes baseados na

fonte programa implementação

(caixa branca)

falhas modelo de testes baseados

(5)

Testes baseados na especificação

• Também chamados de testes caixa preta

• Objetivos dos testes: demonstrar cobertura da especificação

• Modelos de teste obtidos das especificações:

– requisitos – arquitetura especificação saídas esperadas dados de teste

=

(6)

Importância da Análise de Requisitos

• Detecção de falhas depende da especificação

F especificações ambíguas, incompletas, incorretas e

inconsistentes são perigosas para os testes

Fespecificações devem ser validadas

• Uma especificação deve ser

testável

, isto é, deve

conter informações suficientes para os testes

(7)

Exercício

• Dada a especificação abaixo

[Som96, c.7]

:

Um sistema para emissão automática de passagens de trem deve ser construído. Os usuários selecionam o destino desejado e fornecem um número de cartão de crédito. O bilhete é emitido e seu preço é descontado no cartão de crédito fornecido. Quando o usuário aperta o botão «início» é mostrado um menu com vários destinos possíveis e mensagem solicitando ao usuário que escolha um destino. Depois que o destino foi escolhido, é solicitado ao usuário que entre com o cartão de crédito. A validade do cartão é verificada e em seguida é

solicitado ao usuário um número de identidade (CPF ou RG). O bilhete é emitido após a transação de crédito ter sido validada.

• Descubra ambigüidades e omissões.

(8)

Técnicas

• Particionamento em classes de equivalência

• Análise de valor limite

• Grafo causa-efeito

(9)

Partições de equivalência: princípio

entradas válidas entradas inválidas

domínio de entrada

domínio de saída

(10)

Partições de equivalência

• O domínio de entrada (ou saída) do programa/função é

dividido em um número finito de partições (ou classes) de

equivalência

– supõe-se que dados pertencentes a uma partição têm capacidade de revelar as mesmas falhas

– partições válidas e inválidas são consideradas

• Geração de testes: selecionar um ou mais dados de cada

partição

(11)

Partição de equivalência: passos

Œ Decompor o programa em funções

 Identificar as variáveis que determinam o comportamento de

cada função

Ž Particionar os valores de cada variável em classes de

equivalência (válidas e inválidas)

 Especificar os casos de teste:

– eliminar as classes impossíveis ou os casos desinteressantes

– selecionar casos de testes cobrindo as classes válidas das diferentes variáveis

– para cada classe inválida escolha um caso de teste que cubra 1 e somente 1 de cada vez

(12)

Determinação das classes de equivalência

Definição da variável de entrada

Classes de equivalência

Intervalo • Uma classe válida para valores pertencentes ao intervalo

• Uma classe inválida para valores menores que o limite inferior

• Uma classe inválida para valores maiores que o limite superior

Lista de valores

válidos • Uma classe válida para os valores incluídos nalista • Uma classe inválida para todos os outros

(13)

Determinação das classes de equivalência

Definição da variável de

entrada

Classes de equivalência

Número de valores válidos • Uma classe válida para número de valores igual ao número previsto • Uma classe inválida para número de

valores = 0

• Uma classe inválida para número de valores maior ou menor que o valor previsto

Restrições

(expressão lógica; sintaxe; valor específico;

compatibilidade com outras variáveis)

• Uma classe válida para os valores que satisfazem às restrições

• Uma classe inválida para os outros valores

(14)

Exemplo 1

• Função:

Considere uma função que aceita como entradas de 4 a 6 valores inteiros de 2 dígitos maiores do que 10.

• Identificação das variáveis de entrada e das condições que

estas devem satisfazer:

– nro_entradas ∈ [ 4, 6 ] – valor ∈ [ 10, 99 ]

(15)

Exemplo 1

• Determinação das classes de equivalência:

Variável Classes Válidas Classes Inválidas nro_entradas C1. 4 ≤ nro_entradas ≤ 6 C3. nro_entradas < 4

C4. nro_entradas > 6 valor C2. 10 ≤ valor ≤ 99 C5. valor < 10

(16)

Exemplo 1

• Casos de teste:

– selecionar casos de testes cobrindo as classes válidas

das diferentes variáveis

nro_entradas 4 ... 6 < 4 > 6 valor 10 ... 99 < 10 > 99 C1 C2 C3 C4 C5 C6 ü ü nro_entradas valores 5 11, 12, 45, 78, 95

(17)

Exemplo 1

• Casos de teste:

– para cada classe inválida escolha um caso de teste que

cubra 1 e somente 1 de cada vez

nro_entradas 4 ... 6 < 4 > 6 valor 10 ... 99 < 10 > 99 C1 C2 C3 C4 C5 C6 ü ü ü nro_entradas valores 1. 5 11, 12, 45, 78, 95 2. 3 11, 12, 45

(18)

Exemplo 1

• Casos de teste:

– para cada classe inválida escolha um caso de teste que

cubra 1 e somente 1 de cada vez

nro_entradas 4 ... 6 < 4 > 6 valor 10 ... 99 < 10 > 99 C1 C2 C3 C4 C5 C6 ü ü ü ü ü ü nro_entradas valores 1. 5 11, 12, 45, 78, 95 2. 2 11, 12 3. 8 11, 12, 45, 78, 95, 67, 77, 54 4. 5 5, 11, 12, 45, 6

(19)

Exemplo 1

Matriz de testes

1 2 3 4 5

1

ü ü ü

2

ü

ü ü

3

ü

4

ü

5

ü

6

ü casos de teste classes de equivalência

(20)

Exemplo 2

• Considere o teste do procedimento: Valida_Nova_Senha que

recebe como entrada uma senha e valida-a conforme as

seguintes regras:

– uma senha deve ter de 6 a 10 caracteres

– o primeiro caracter dever ser alfabético, numérico ou um “?” – os outros caracteres podem ser quaisquer, desde que não sejam

caracteres de controle

(21)

Exemplo 2 - Classes de Equivalência

Variáveis Válidas Inválidas

tamanho C1. tamanho∈ [6, 10] C7. tamanho < 6 C8. tamanho > 10

1° caracter C2. Car1 alfabético C9. Car1 ∈ {caract. controle} (Car1) C3. Car1 numérico C10. Car1 ∉{letras, dígitos, ?}

C4. Car1 é “?”

outros caract C5. Outro ∉ {caract. C11. Outro ∈ {caract. de controle} (Outro) de controle }

(22)

Exemplo 2

1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 10 casos de teste classes de equivalência casos de teste 1. 2. 3. 4. 5. 6. 7. 8.

(23)

Análise de valores-limite

• Critério de seleção que identifica valores nos limites das

classes de equivalência

• Exemplos:

– valor mínimo (máximo) igual ao mínimo (máximo) válido – uma unidade abaixo do mínimo

– uma unidade acima do máximo – arquivo vazio

– arquivo maior ou igual à capacidade máxima de armazenamento – cálculo que pode levar a “overflow” (“underflow”)

(24)

Exemplo 3

• Casos de teste:

– para cada classe inválida escolha um caso de teste que

cubra 1 e somente 1 de cada vez

nro_entradas valores 1. 4 10, 11, 98, 99 2. 6 10, 11, 50, 55, 98, 99 3. 3 10, 11, 98 4. 7 10, 11, 50, 55, 98, 99, 45 5. 4 9, 10, 11, 99 nro_entradas 4 ... 6 < 4 > 6 valor 10 ... 99 < 10 > 99 C1 C2 C3 C4 C5 C6 ü ü ü ü ü ü

(25)

Limitação

ÜTestes baseados em partições de equivalência ou

análise de valores-limite:

consideram cada valor de entrada isoladamente

s e se existirem combinações de valores que

constituam situações interessantes a serem

testadas?

(26)

Análise causa - efeito

• Necessária quando se deseja testar combinações

de entradas

• Utiliza tabelas de decisão e árvores de decisão

(27)

Definições

• Causas:

– condições de entrada (valor lógico)

• Efeitos

– ações realizadas em resposta às diferentes

condições de entrada

ex.:

causa: preço

≥ 50 ∧ 0 ≤ qtd ≤ 99

efeito: fornecer 5% de desconto

(28)

Árvore de decisão

preço

qtd

≥ 50

< 50

∈ [ 0, 99 ]

∉ [ 0, 99 ]

dar desconto

cobrar

preço

normal

emitir msg

de erro

(29)

Tabela de decisão

Condições de entrada

(causas)

Ações

(efeitos)

c1 ... V ... F

e1

...

X

(30)

Construção da tabela de decisão

preço

≥ 50

V

F

×

0

≤ qtd ≤ 99

V

V

F

dar desconto

ü

cobrar preço normal

ü

(31)

Limitação das tabelas de decisão

• Tamanho: nº de regras = 2

N

, onde N é o nº de

(32)

Exemplo

Supor um sistema bancário que trate somente duas transações

:

depósito nº da conta quantia

saque nº da conta quantia Requisitos:

– se o comando é depósito e o nº da conta é válido então a quantia é depositada

– se o comando é saque e o nº da conta é válido e a quantia é válida (0 < quantia ≤ saldo) então a quantia sacada

– se o comando ou nº da conta ou a quantia for inválido então exibir mensagem de erro apropriada

(33)

• Causas:

c1. Comando é depósito c2. Comando é saque c3. Nº da conta é válido c4. Quantia é válida

• Efeitos:

e1. Exibir “comando inválido” e2. Exibir “nº da conta inválido” e3. Exibir “quantia inválida” e4. Depositar a quantia

e5. Sacar a quantia

nº de regras = 2 4 = 16

(34)

Grafo causa-efeito: notação básica

c1

e1

Identidade

c1

e1

Negação

c1

e1

c2

c1

e1

Ou

E

(35)

Exemplo: grafo causa-efeito

c1

e1

c2

c3

c4

e2

e3

e4

e5

(36)

Conversão em tabela de decisão

 Escolher um efeito como ação a ser executada, ie,

marcar um “

ü

ü

ü

ü” na regra correspondente a este efeito.

‚ Rastrear no grafo quais as combinações de causas que

levam a esse efeito e marcar um “V” ou “F” na

posição correspondente na tabela

ƒ Para cada combinação criada, verificar se ocorrem ou

não os outros efeitos

(37)

Conversão: OU

• Se e1 = x1

∨ x2:

– não escolha x1 = x2 =V

• Se e1 =

¬ (x1∨ x2):

– considere todas as combinações que façam com

que x1

∨ x2 = F

(38)

Exemplo: tabela de decisão

Id. 1 2 3 4 5 c1 F c2 F c3 × c4 × e1 ü e2 e3 c1 e1 c2 ∨

(39)

Conversão: E

• Se e1 = x1

∧ x2:

– considere todas as combinações que façam com que

x1 = x2 = V

• Se e1 =

¬ (x1 ∧ x2):

– considere somente uma combinação que faça com que

x1

∧ x2 = F

– para a combinação escolhida inclua uma e somente

uma combinação que leve ao resultado desejado

(40)

Exemplo: tabela de decisão

Id. 1 2 3 4 5 c1 F V c2 F × c3 × F c4 × × e1 ü e2 ü e3 e4 e5 c1 c2 e2 ∧

(41)

Exemplo: tabela de decisão

Id.

1

2

3

4

5

c1

F

V

× ×

V

c2

F

×

V

V

×

c3

×

F

V

V

V

c4

× ×

F

V

V

e1

ü

e2

ü

e3

ü

e4

ü

e5

ü

(42)

Geração de testes

• Tabela de decisão

critério: exercitar cada regra pelo menos 1 vez

• Árvore de decisão

critério: exercitar cada caminho da raiz até a folha

pelo menos 1 vez

(43)

Exemplo: casos de teste

• Regra 1:

comando

∉ {depósito, saque}, ∀ nº conta, ∀ quantia

• Regra 2:

comando = depósito, nº de conta inválido,

∀ quantia

• Regra 3:

comando = saque, nº de conta válido, quantia inválida

(44)

Exercício

Considere uma função com duas variáveis de entrada: Cliente e

Qtd, e uma variável de saída, Desconto. Cliente pode ser do

tipo A, B ou C e Qtd pode variar de 1 a 1000. A função

calcula Desconto de acordo com as seguintes regras:

– Clientes do tipo A não recebem desconto se nº de itens comprados for inferior a 10; recebem 5% desconto para compras entre 10 e 99 itens; 10% de desconto acima de 100 itens.

– Clientes do tipo B recebem 5% de desconto para compras abaixo de 10 itens; 15% de desconto entre 10 e 99 itens; 25% de desconto

acima de 100 itens.

Referências

Documentos relacionados

Conclusão- Podemos concluir que há uma alta incidência de lombalgia entre serventes de pedreiro destacando como principais fatores de risco o manuseio de carga, adoção de

A Tabela 6 identifica as categorias de CI mais empregadas nos estudos investigados. Percebe-se que as categorias empregadas referem-se a categorias que mesclam a

Examinamos as demonstrações financeiras individuais da Klabin S/A (“Companhia”), que compreendem o balanço patrimonial em 31 de dezembro de 2016 e as respectivas demonstrações

Neste contexto, consideramos importante a investigação dos efeitos dos organocalcogêneos PhSe2 e PhTe2, e também do composto quelante ditiólico BAL, em modelos de convulsão

Curvas de rarefação (Coleman) estimadas para amostragens de espécies de morcegos em três ambientes separadamente (A) e agrupados (B), no Parque Estadual da Ilha do Cardoso,

Quando entramos em Deus por meio da oração a fim de permanecer Nele, recebemos o Espírito Santo como nosso suprimento de vida (representado pelos pães, o peixe e o ovo), de maneira

Desta forma, além de retardar a oxidação lipídica, o preparado desenvolvido apresentou benefícios como estabilização da cor e manutenção das características sensoriais

Embora seja ela a mais simples das quatro variáveis básicas para se analisar alternativas de investimentos, ela é, também, a primeira das variáveis a. ser definida e um erro