No post sobre cenários de teste, citei
que uma das formas de derivá-los é utilizando tabelas de decisão.
Vejamos detalhes sobre a técnica.
As tabelas de decisão são utilizadas
para testar a interação entre as combinações de condições. As
tabelas de decisão são um método claro para verificar a realização
de testes com todas as combinações de condições pertinentes e
para garantir que todas as possíveis combinações sejam tratadas
pelo software em teste.
Uma tabela de decisão é composta de:
1. Condições: cada condição é
descrita numa linha da Tabela de Decisão e deve ter seus possíveis
valores conhecidos e descritos.
2. Ações: as ações também são
descritas nas linhas da Tabela de Decisão e indicam declarações
do que é realizado no processo.
3. Regras ou normas: as regras são as
combinações dos valores das condições atreladas da Tabela de
Decisão. Cada regra consiste em um conjunto de valores possíveis
das condições, envolvendo um único valor para cada condição. As
regras devem esgotar todas as possibilidades de combinações de
valores resultantes das condições da Tabela de Decisão. Cada
regra é representada em uma coluna da Tabela de Decisão.
O projeto de uma Tabela de Decisão
implica em formar uma tabela com quatro quadrantes, sendo um para a
exposição das condições, outro para a exposição das ações,
outro para a descrição das regras e o último para relacionar as
ações que são executadas para cada regra. A Figura abaixo mostra
a disposição dos quadrantes na tabela.
A tabela pode ser construída seguindo
os seguintes princípios:
1. Todas as condições devem ser
identificadas e descritas no primeiro quadrante da tabela (cada
condição deve ser descrita em uma linha).
2. Para condição, deve ser
identificado o número de valores possíveis para ela e estes
valores devem ser descritos na frente da variável da condição no
primeiro quadrante.
3. Todas as ações possíveis para o
processo devem ser identificadas e descritas no terceiro quadrante
(cada ação deve ser descrita em uma linha). As ações devem ser
descritas por sentenças que iniciam com verbo no infinitivo ou por
fórmulas.
4. O número de regras deve ser
calculado, sendo o resultante do número possível de combinações
que podem ser feitas com os valores de cada condição. O cálculo do
número de regras é feito multiplicando-se os números de valores
possíveis das condições.
Por exemplo, se todas as condições
forem binárias, ou seja, puderem assumir apenas dois valores
(por exemplo: verdadeiro ou falso; sim
ou não; 0 ou 1; etc), o número de regras será 2N, onde o número
2 representa o fato das condições serem binárias e N representa o
número de condições. Se houver uma Tabela de Decisões onde há
três condições com dois valores possíveis e uma
condição com três valores possíveis,
o número de regras é obtido pela multiplicação de 23
(que representa as três condições
binárias) por 3 (ou 31, que representa uma condição ternária).
Neste caso, o número de regras será 24.
5. Para cada regra, uma coluna deve ser
desenhada no segundo quadrante, sendo numerada na extremidade
superior para identificar cada regra.
6. As linhas do primeiro quadrante
(condições) devem ser prolongadas até o final do segundo quadrante
7. O cruzamento entre linhas e colunas
do segundo quadrante deve ser preenchido por todas as combinações
de valores possíveis das condições que formam cada regra. Uma
forma de evitar se perder neste preenchimento, quando há um grande
número de regras, é começar pela última condição preenchendo,
na sequência, cada valor possível em uma coluna e repetindo este
procedimento até o final da linha. Em seguida utiliza-se o mesmo
procedimento para a penúltima condição, mas ao invés de repetir
uma vez cada valor, ele é repetido seqüencialmente tantas vezes
quanto for o número de valores possíveis da condição já
representada na tabela. Depois, repete-se o
procedimento para a antepenúltima
condição, repetindo o mesmo valor da condição tantas vezes quanto
for o resultado da multiplicação entre o número de valores
possíveis das condições já expressas na tabela. E assim
sucessivamente, até completar a linha da primeira condição.
8. As colunas do segundo quadrante
devem ser prolongadas até o final do quarto quadrante.
9. Para cada regra, deve(m) ser
identificada(s) a(s) ação(ões) que são executadas no caso da
combinação respectiva de valores das condições ocorrer. As
combinações impossíveis de acontecer ensejam a marcação de toda
a coluna, no quarto quadrante, do símbolo “–“.
10. As omissões, contradições e
ambiguidades devem ser identificadas e discutidas com o usuário para
o aperfeiçoamento da especificação. Uma omissão ocorre quando não
há ação definida para uma regra possível. Uma contradição
ocorre quando duas ações contraditórias são executadas para uma
mesma regra. E uma ambiguidade ocorre quando há muitas regras
diferentes definindo a execução das mesmas ações.