segunda-feira, 16 de dezembro de 2013

Tabelas de decisão

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.

domingo, 1 de dezembro de 2013

Cenário de Teste

Cenários de teste, informalmente, podem ser definidos como uma estória sobre o sistema e é útil para ajudar o Testador no momento da execução dos testes.Assim, o cenário não descreve passos para efetuar os teste, descreve "o que" deve ser testado, divergindo do caso de teste onde se descreve "como" deve ser testado o software.

Um cenário de teste pode ser visto também como um caminho ou uma determinada situação a ser testada. Cada cenário poderá ser composto  por um ou por um  conjunto de casos de testes.

Exemplo de Lista de Cenários do Requisito A




Mas como gerar esses tais cenários?

- Identificar o fluxo principal de um caso de uso
- Localizar os fluxos alternativos
- Localizar os fluxos de exceção
- Se o requisito contiver operações de manutenção levante os fluxos para cada uma delas.
- Usar técnicas como a Tabela de decisão, Grafos de transição de estado, e também o Pairwise.