GRAFO CAUSA-EFEITO


Esse critério de teste verifica o efeito combinado de dados de entrada. As causas (condições de entrada) e os efeitos (ações) são identificados e combinados em um grafo a partir do qual é montada uma tabela de decisão, e a partir desta, são derivados os casos de teste e as saídas (ROCHA et al., 2001).

Aplicação da Técnica:

    Passo 1:
  • Dividir a especificação do software em partes, pois a construção do grafo para grandes especificações torna-se bastante complexa. Identificar as causas e efeitos na especificação.

  • Passo 2:
  • As causas correspondem às condições de entrada, ou uma particular classe de equivalência, estímulos, ou qualquer coisa que provoque uma resposta do sistema em teste. Os efeitos correspondem às saídas, mudanças no estado do sistema ou qualquer resposta observável.

  • Passo 3:
  • Uma vez identificados, a cada um deve ser atribuído um único número.

  • Passo 4:
  • a semântica da especificação e transformar em um grafo booleano – o Grafo Causa-Efeito – que liga as causas e os efeitos.

LIGAÇÃO DE CAUSA - EFEITO


Identidade: o efeito 2 ocorre se a condição 1 é verdade.



Negação: o efeito 2 ocorre se a condição 1 não é verdade.



Conjunção: 3 ocorre se 1, 2 são verdades



Disjunção: o efeito 4 ocorre se pelo menos uma das causas 1, 2 ou 3 é verdade


RESTRIÇÃO DE CAUSA - EFEITO


Restrição E: no máximo um entre “1” e “2” pode ser igual verdade (1) (ou seja, “1” e “2” não podem ser verdade (1) simultaneamente)



Restrição I: no mínimo um entre “1”, “2” e “3” deve ser igual a verdade (1) (ou seja, “1”, “2” e “3” não podem ser falso (0) simultaneamente).



Restrição O: um e somente um entre “1” e “2” deve ser igual a verdade(1).



Restrição R: para que “1” seja igual a 1, “2” deve ser igual a verdade (1) (ou seja, é impossível que “1” seja verdade (1) se “2” for falso(0)).



Restrição M: se o efeito “1” é verdade (1) o efeito “2” é forçado a ser falso (0).


TABELA DE DECISÃO

Construção da Tabela de Decisões:
  • Para cada efeito, percorra o grafo no sentido efeito-causa e selecione as combinações de causas que produzem o efeito considerado
  • Crie uma coluna na tabela de decisões para cada combinação de causas

EXEMPLO

“Em um programa de compras pela Internet, a cobrança ou não do frete é definida seguindo tal regra: Se o valor da compra for maior que R$ 80,00 e foram comprados menos que 3 produtos, o frete é gratuito. Caso contrário, o frete deverá ser cobrado.”

A partir da especificação identificamos as causas e efeitos:

  • Obs.: “C” será as causas e “E” o efeitos, logo depois será usado um numerador para identificar cada item.
Causas:
  • C1 - Valor da compra > R$ 80,00
  • C2 - Quantidade de produtos < 3
Efeitos:
  • E1 - Frete Grátis
  • E2 - Cobrar Frete

Com as causas e efeitos identificados e listados, vamos para a construção do grafo como dado abaixo:


Em seguida, temos que transforma esse grafo na tabela de decisões, como feito abaixo:

Causa Valor da compra >80 >80 <=80
Produto <3 >=3 -
Efeito Frete Grátis V
Cobrar Frete V V


A partir da tabela de decisão é derivado os casos de teste, na qual cada coluna representa um caso de teste, como na tabela abaixo:

Casos de Teste Entrada Saída Esperada
CT01 Valor: R$ 81,00 Produtos: 2 Frete Grátis
CT02 Valor: R$ 81,00 Produtos: 3 Cobrar Frete
CT03 Valor: R$ 79,00 Produto: 1 Cobrar Frete
CT04 Valor: -1 Produto:3 Inválido
CT05 Valor: R$ 80,00 Produto:-1 Inválido
CT06 Valor: R$ 80,00 Produto:0 Inválido