Glossário · Projeto de testes
Teste de tabela de decisão
Em inglês: Decision table testing
Também chamado de: tabela de decisão, tabelas de decisão, técnica de tabela de decisão, tabela de causa e efeito
Definição
Técnica de projeto de teste que lista as combinações de condições e a ação que cada uma deve disparar, para que toda regra de negócio tenha um teste.
O teste de tabela de decisão modela regras de negócio que dependem de uma combinação de condições. Você lista as condições como linhas, cada combinação relevante dos seus valores como colunas (regras) e a ação esperada para cada regra. Cada coluna vira pelo menos um caso de teste. É a forma mais confiável de garantir que nenhuma combinação de uma regra complexa seja esquecida.
Exemplo: aprovação de empréstimo
Regras: um solicitante é aprovado se tiver score de crédito de 700 ou mais e renda de pelo menos US$ 40.000. Score de 700 ou mais com renda menor é encaminhado para análise manual. Clientes existentes com score abaixo de 700 também são encaminhados. Todos os demais são recusados.
Três condições de sim/não geram 2 x 2 x 2 = 8 regras:
| Condição / Ação | R1 | R2 | R3 | R4 | R5 | R6 | R7 | R8 |
|---|---|---|---|---|---|---|---|---|
| Score de crédito >= 700 | S | S | S | S | N | N | N | N |
| Renda >= US$ 40.000 | S | S | N | N | S | S | N | N |
| Cliente existente | S | N | S | N | S | N | S | N |
| Aprovar | X | X | ||||||
| Encaminhar | X | X | X | X | ||||
| Recusar | X | X |
Montar a tabela obriga a fazer perguntas que o requisito não respondeu com clareza. Por exemplo, R5 e R7 são ambos encaminhados, então para um cliente existente com score baixo a renda não faz diferença. Isso era intencional, ou score baixo com renda baixa deveria ser recusado mesmo para clientes existentes? A tabela torna a pergunta visível para que ela seja confirmada com o product owner antes dos testes.
Reduzindo a tabela
Quando uma condição não afeta o resultado, as regras podem ser unidas usando “-” para “tanto faz”. R1 e R2 aprovam independentemente de ser cliente ou não, então viram uma única regra: score S, renda S, cliente -. Reduzir a tabela diminui o número de testes, mas mantenha pelo menos um teste para cada caminho de ação distinto.
Combinando com outras técnicas
Cada condição continua tendo limites. “Score >= 700” deve ser testado com 699 e 700, e “renda >= US$ 40.000” com US$ 39.999 e US$ 40.000. Use a tabela de decisão para cobrir as combinações e a análise de valor limite para escolher os valores concretos.
Quando usar
Tabelas de decisão servem para regras com várias condições que interagem: preços e descontos, elegibilidade, permissões, cotações de seguro, impostos. Com muitas condições a tabela cresce na ordem de 2^n; então agrupe condições, elimine as irrelevantes ou passe para o teste pairwise no caso de opções de configuração independentes.