A Técnica de Tabela de Decisão no mundo dos testes

Vanessa Redes
Revista eQAlizando (antiga Revista TSPI)
7 min readApr 20, 2020

A técnica que traz grandes benefícios na identificação dos casos de testes com combinações complexas.

Um grupo de técnicas fundamentais para a análise da base de testes é a baseada na especificação, que ajuda a extrair testes de requisitos de software. Uma das técnicas mais utilizadas em casos onde há regras complexas é a Tabela de Decisão. A principal característica é a sua eficiência em revelar combinações não identificadas ao descrever o próprio requisito, sendo então uma excelente escolha, tanto para quem escreve requisitos quanto para quem valida a solução construída a partir deles. Neste post apresentaremos um pouco mais sobre a técnica em si, resolvendo dois problemas com uso da técnica.

O que são técnicas de teste baseadas na especificação?

Técnicas baseadas em especificações são fundamentadas através da análise da base de testes (requisitos, documentos formais, especificações, casos de uso, estórias de usuários …), sem alusão à sua estrutura interna, ou seja, não leva em consideração a codificação do software para obter casos de testes referente a um componente.

Ao analisar a base de teste (especificação), a pessoa que testa aplicações encontra as condições de testes para o componente, as possíveis entradas de testes e as saídas esperadas.

Essa técnica de teste pode ser usada para testes funcionais e não funcionais e em todos os níveis de testes, sendo indicada para detectar erros de interface, de comportamento, entre outras.

Além disso, é eficiente para validar se os requisitos especificados atendem às expectativas do cliente.

O que é a Tabela de Decisão?

É uma técnica de teste combinatória para realizar a análise da lógica de condições complexas, sendo útil para planejar os testes de regras de negócios que especificam como as combinações de ações diferentes (entradas) podem levar a diferentes resultados (saídas).

Ou seja, é uma maneira de expressar, em forma de tabela, qual o conjunto de ações deve acontecer para se chegar a um determinado resultado esperado. O ponto principal de uma tabela de decisão é a regra de negócio, que define o conjunto de ações a serem tomadas a partir de um conjunto de condições.

Quando usar a Tabela de Decisão?

A utilização da Tabela de Decisão pode ser acionada, quando alguém que deseja testar a aplicação, se depara com regras de negócios complexas e precisa identificar as condições (entradas) e o resultado dessa combinação (saídas), com o intuito de identificar o comportamento do software em teste.

A estrutura base para um teste em tabela de decisão é:

Cada condição(entrada) é colocada em uma linha, geralmente no topo, e os resultados das combinações(saídas) nas linhas inferiores. Cada coluna se refere a um conjunto de condições que resultam em uma ação (cada coluna é um teste).

Os valores das condições e ações geralmente são representados como valores booleanos (Verdadeiro/ Falso), números, intervalo de números ou valores discretos (cores, atividades, etc).

Conforme a imagem exemplo acima, explicaremos como é simples calcularmos a quantidade de testes em uma Tabela de Decisão:

Para isso, devemos multiplicar a quantidade de partições de uma variável versus a quantidade de outra variável.

Nota-se que a variável 1 possui duas partições e a variável 2 também possui duas partições, sendo assim o cálculo a ser feito é: 2 x 2 = 4. Este resultado é a quantidade de testes a serem feitos cobrindo todas as permutações das entradas.

Também pode ocorrer de as variáveis possuírem mais de 2 partições, portanto, é importante ter atenção no que as regras de negócios informam, para realizar a multiplicação corretamente.

Há uma ferramenta simples, desenvolvida pelo Júlio de Lima, referência Nacional em Qualidade de Testes de Software, chamada X|Decision, onde ela permite que você informe todas as entradas e saídas possíveis, respondendo ao usuário quantos testes serão necessários e quais foram as possíveis combinações exercitadas.

Abaixo, segue o vídeo criado pelo Júlio de Lima no Youtube, explicando a facilidade da utilização desta ferramenta de Tabela de Decisão.

Ferramenta x|decision — http://www.juliodelima.com.br/xdecision/

Vídeo no Canal Youtube — https://www.youtube.com/watch?v=3wtavNon34A&feature=youtu.be

Uma tabela de decisão completa deve possuir colunas suficientes para permutar todas as possíveis combinações de entradas. A cobertura mínima para os testes é ter um caso de teste por regra de decisão da tabela.

Essa técnica de teste tem o poder de identificar todas as mais importantes combinações de condições, não deixando nenhuma regra ser negligenciada na especificação, o que ajuda na revisão do requisito encontrando regras que não permitem combinações ou a falta de dados.

Além disso, essa técnica de teste pode ser utilizada em todos os níveis.

Testes ou negócios?

<a href=”https://www.freepik.com/free-photos-vectors/business">Business vector created by pch.vector — www.freepik.com</a>

A Tabela de Decisão pode ser usada nas mais diversas fases do ciclo de vida do software, desde a ideação, o amadurecimento e a escrita dos requisitos, pois é possível apresentar de maneira simples as prováveis combinações para o negócio e qual deve ser a saída esperada, de acordo com cada variação, deixando o requisito mais compreensível e facilitando também a leitura pelo restante do time.

Exemplo de Requisito

1.1 — Caso o cliente possua a conta há dois anos ou mais, e possua saldo superior a R$ 2000,00 o mesmo deve considerado Cliente VIP.

1.2 — Caso o cliente possua a conta há dois anos ou mais, e possua saldo inferior a R$ 2000,00 o mesmo não deve considerado Cliente VIP.

1.3 — Caso o cliente não possua a conta há dois anos ou mais, o mesmo não deve considerado Cliente VIP independentemente do valor em conta.

Exemplo da Tabela de Decisão para requisitos

Já na etapa de desenvolvimento, dependendo do código, a técnica também poderá valer para testes de componentes, quando por exemplo for responsável por um conjunto de lógicas decisórias. Isso permitirá ter uma visão clara dos cenários previstos de acordo com cada entrada, conseguindo garantir que o código irá cobrir todos os cenários.

Durante a fase de testes, caso a documentação não possua a Tabela de Decisão, a pessoa que testa aplicações consegue realizar uma análise do requisito a fim de identificar as variáveis do requisito e as saídas esperadas, realizando a permutação das combinações de entradas possíveis, para que ao executar os testes consiga ter uma visão exata de quais são os cenários que devem ser testados e qual deve ser a saída de cada um. Essa técnica costuma ser aplicada aos níveis de teste de Integração, Sistema e Aceite.

Exemplo prático de aplicação da tabela de decisão em um requisito

Um exemplo prático da utilização da Tabela de Decisão pode ser observado na escrita do simples requisito, onde não deve permitir que seja vendido bebida alcoólica para menores de 18 anos.

Requisito 1 — Deve ser permitido a venda de bebida alcoólica somente para pessoas com 18 anos ou mais.

Um exemplo mais complexo, seria na utilização da regra de permissão de viagem ao exterior, onde uma combinação de variáveis definiria a possibilidade ou não da viagem ocorrer, onde a pessoa maior de idade (18 anos ou mais) necessita apenas do passaporte válido, e menor de idade, além de precisar de um passaporte válido, também precisará do acompanhamento de um responsável legal.

Requisito 2 — Deve ser permitido que a Pessoa Física viaje ao exterior apenas quando a mesma possua mais de 18 anos e passaporte válido, menores de 18 devem estar acompanhadas de um responsável legal e portar o passaporte válido.

Conclusão

Concluímos que a utilização da Tabela de Decisão pode fornecer e trazer grandes benefícios na identificação dos casos de testes, como a prevenção de omissões ou contradições nos requisitos, por exemplo, proporcionando o aumento de cobertura e qualidade perante aos exercícios combinatórios realizados no sistema, mesmo em decisões complexas de negócios, tendo em vista, a vantagem de ser simples sua representação e interpretação por todos, podendo ser utilizada por todas as áreas.

Por fim, recomendamos a utilização da técnica para todos os envolvidos no desenvolvimento de software, começando por análises de casos simples, até se sentir confiante e passar para as regras mais complexas, pois com certeza, dominando a técnica e a aplicado de forma antecipada seu projeto e equipe estarão cada vez mais potencializando a qualidade do produto a ser entregue ao cliente final.

Autores:

Abner Nunes Netto — abnernnetto@gmail.comLinkedIn
Jonathan Santiago Francisco —
jonathansantiagof@gmail.comLinkedIn
Vanessa Redes —
redesvanessa@gmail.comLinkedIn

Referências:

Teste de Software Para Iniciantes (TSPI) — Júlio de Lima.

Syllabus CTAL-TA 2012

Syllabus CTFL — 2018

--

--