Você está na página 1de 19

Tabelas de decisão e testes

Apresentação
O principal objetivo da atividade de testes é garantir que o software que está sendo desenvolvido
esteja em conformidade com o que foi especificado. Existem várias técnicas e abordagens para a
aplicação de testes no sentido de cumprir com esse objetivo e, para isso, as técnicas devem ser
aplicadas de maneira controlada.

Nesta Unidade de Aprendizagem, você aprenderá sobre o suporte para testes de software baseados
em tabelas de decisão, uma técnica que provê maior completude ao teste por proporcionar
fomento ao cruzar combinações de diversas situações diante de uma necessidade específica do
software.

Bons estudos.

Ao final desta Unidade de Aprendizagem, você deve apresentar os seguintes aprendizados:

• Identificar os tipos de tabelas de decisão de software para o suporte.


• Analisar as tabelas de decisão de software para o suporte à implementação dos casos de teste.
• Demonstrar a aplicação da tabela de decisão de software para o suporte à implementação dos
casos de teste.
Infográfico
O fluxo de trabalho para o uso de tabelas de decisão como apoio aos casos de teste funcionais é
simplificado, porém, demanda tempo, esforço e muito cuidado em certas fases do processo.
Existem etapas como, por exemplo: identificação e seleção de tabelas de decisão; análise e estudo
da tabela de decisão; adequação e estabilização da tabela de decisão; criação dos casos de teste de
acordo com a tabela de decisão; e agrupamentos dos casos de teste em um conjunto de casos de
teste que derivam da tabela de decisão selecionada.

Neste Infográfico, você vai entender o fluxo de trabalho comum para o uso das tabelas de decisão
em casos de teste.
Aponte a câmera para o
código e acesse o link do
conteúdo ou clique no
código para acessar.
Conteúdo do livro
Existem testes funcionais que fazem parte da abordagem caixa-preta. Quando a fase de testes
funcionais inicia, são levantados documentos de especificações para serem os insumos que darão a
base de informações para a criação dos casos de teste, os quais irão testar o sistema e assegurar a
sua qualidade.

Um dos primeiros artefatos, e também um dos mais importantes coletado pelos analistas de testes,
são as tabelas de decisão. O motivo dessa priorização é que essas tabelas são uma ótima alternativa
para criar casos de teste com boa fidelidade com a especificação, além de boa cobertura. Isso é
constatado porque uma tabela de decisão foi construída para modelar, em formato de tabela, os
requisitos que contemplam a estrutura de decisão da funcionalidade.

No capítulo Tabelas de decisão e testes, da obra Testes de software e gerência de configuração, base
teórica desta Unidade de Aprendizagem, você vai aprender sobre o suporte para testes de software
baseados em tabelas de decisão.

Boa leitura.
TESTES DE
SOFTWARE E
GERÊNCIA DE
CONFIGURAÇÃO

Breno Cristóvão Rocha


Tabelas de decisão e testes
Objetivos de aprendizagem
Ao final deste texto, você deve apresentar os seguintes aprendizados:

 Identificar os tipos de tabelas de decisão de software para o suporte.


 Analisar as tabelas de decisão de software para o suporte à imple-
mentação dos casos de teste.
 Demonstrar a aplicação da tabela de decisão de software para o
suporte à implementação dos casos de testes.

Introdução
Ao longo dos anos, os testes ganharam bastante relevância nas fábricas
de software que almejam produtos finais com mais qualidade e menor
número de correções. Assim, muitas técnicas e abordagens foram de-
senvolvidas por estudiosos, matemáticos e cientistas da computação
com o objetivo de testar os sistemas. Entretanto, as técnicas de testes às
vezes necessitam de suporte adicional. Isso faz com que elas ganhem
amplitude sem necessariamente uma mudança de abordagem ou a
criação de uma nova forma de testar sistemas.
O uso de tabelas de decisão é uma das técnicas adicionais ao teste de
software. Quando associada a uma abordagem adequada, essa técnica
proporciona a ampliação da cobertura de testes. Neste capítulo, você vai
conhecer e aprender a identificar as tabelas de decisão que dão suporte
aos testes de software. Além disso, vai analisar essas tabelas para utilizá-las
na implementação de casos de teste.

Tipos de tabelas de decisão


Vários artefatos produzidos a partir de um software são considerados para
a criação de testes. Isso inclui a documentação do sistema, os manuais, os
diagramas, as tabelas e até mesmo o código-fonte. Um dos primeiros artefatos
que um analista de teste aborda para a criação de testes baseados em especi-
2 Tabelas de decisão e testes

ficação é a tabela de decisão. Nesse sentido, qualquer caso de teste derivado


de uma documentação de especificação do sistema é considerado um teste
funcional (PEZZÈ; YOUNG, 2008).
De acordo com Molinari (2008), uma tabela de decisão já estabilizada pode
ser transformada em um caso de teste pois representa exatamente o que deve
ser testado. Assim, o caso de teste criado a partir dessa especificação tem o
foco nos resultados esperados com base na combinação de entrada representada
na tabela e no resultado esperado, também definido.
A seguir, veja como as tabelas de decisão apresentam um modelo de es-
trutura de decisões baseado na combinação de valores de entrada, regras,
condições e ações.

Combinações

R1 R2 R3 R4 R5 R6 R7 R8

A1 = 10 F F F F T T T T

Condições A2 = 20 F F T T F F T TT

A3 = 30 F T F T F T F

Ação 1 X X X X

Ações Ação 2 X X

Ação 3 X

A tabela que você acabou de ver pode ser usada para o suporte do caso de
teste na validação e na verificação do comportamento da funcionalidade alvo.
Após o analista de testes selecionar as tabelas definidas na documentação, ele
deve ter o cuidado de analisar a estrutura de decisão que a tabela apresenta
para estabilizá-la a fim de otimizar a criação dos casos de teste.
A tabela ainda pode ser minimizada. Isso quer dizer que o analista pode
reduzir seu tamanho consideravelmente apenas mesclando ou eliminando
combinações similares. Dessa forma, durante o teste, uma regra é capaz de
testar também aquela sua similar eliminada, já que a ação será a mesma. A
seguir, veja a tabela anterior minimizada e otimizada para uso em casos de teste.
Tabelas de decisão e testes 3

Combinações

A1 = 10 F F F T

Condições A2 = 20 F F T —

A3 = 30 F T — —

Ação 1 X

Ações Ação 2 X

Ação 3 X

A notação “—” é usada para definir dont’n care. Ou seja, quando há esse
sinal, o teste não precisa verificar se existe ou não um valor de entrada para a
combinação. O “—” entra nas lacunas das colunas omitidas em que existiam
valores díspares.

As primeiras técnicas para derivar casos de teste a partir de especificações aconteceram


no início dos anos 1970. Os primeiros modelos usados foram grafos de causa e efeito
(PEZZÈ; YOUNG, 2008).

Suporte à implementação dos casos de teste


Como você já sabe, as tabelas encontradas na documentação de requisitos
de um software podem ser muito úteis para o projeto de casos de teste. O
nível de dificuldade aumenta muito quando os testes de software não contam
com uma base de requisitos como insumo para a criação de casos de teste
(MOLINARI, 2008).
4 Tabelas de decisão e testes

Ao analisar uma tabela escolhida, você deve entender a finalidade dela


para avaliar se será adequada ao uso em casos de teste. Além disso, em tabelas
de decisão, existe a possibilidade da simplificação por meio de mescla e/ou
eliminação de combinações semelhantes, sem que o caso de teste seja afetado.
A seguir, analise a tabela de decisão a fim de aplicar uma minimização e
usá-la para a criação de um caso de teste. Considere o seguinte: T significa
true e F significa false.

Combinações

R1 R2 R3 R4 R5 R6 R7 R8

A1 = 10 F F F F T T T T

Condições A2 = 20 F F T T F F T T

A3 = 30 F T F T F T F T

Ação 1 X X X X

Ações Ação 2 X X

Ação 3 X

Veja que a tabela tem possibilidades para mesclar/eliminar colunas por ter
combinações de valores de entrada semelhantes que executam a mesma ação.
A análise deve ter como resultado a reestruturação da tabela de decisão. Veja:

 as colunas R3 e R4 têm combinações idênticas (T e T) que executam a


ação 2, ou seja, uma das colunas pode ser eliminada, já que as demais
combinações são desprezadas (F, F e F, T) pois não executam nenhuma
ação;
 as colunas R5, R6, R7 e R8 têm combinações idênticas (T e T) que
executam a ação 1, ou seja, três das colunas podem ser eliminadas,
já que as demais combinações são desprezadas (F, F e F, T) pois não
executam nenhuma ação.

Após o trabalho de análise e minimização da tabela de decisão, você vai


obter uma tabela de decisão simplificada, mas que cobre as necessidades dos
testes. Veja a seguir.
Tabelas de decisão e testes 5

Combinações

R1 R2 R3 R5

A1 = 10 F F F T

Condições A2 = 20 F F T —

A2 = 30 F T — —

Ação 1 X

Ações Ação 2 X

Ação 3 X

É importante analisar novamente o resultado obtido para avaliar se ainda


existe a possibilidade de minimização. Como está estabilizada, a tabela anterior
já está pronta para ser usada como suporte para a criação de casos de teste.
Perceba que a tabela de decisão minimizada tem quatro colunas em que
as combinações são cruzadas para a determinação da ação a ser executada.
Isso significa que, a partir dessa tabela, serão criados quatro casos de teste.

A seguir, confira uma lista de casos de teste possíveis para a tabela minimizada que
você acabou de ver.
 Caso de teste R1: aborda uma combinação de entrada como pré-requisito de
valores F, F, F, sendo que a especificação da regra R1 para quando as condições
forem combinadas dessa forma é não ter uma ação.
 Caso de teste R2: aborda uma combinação de entrada como pré-requisito de
valores F, F, T, sendo que a especificação da regra R2 para quando as condições
forem combinadas dessa forma é executar a ação 3.
 Caso de teste R3: aborda uma combinação de entrada como pré-requisito de
valores F, T, “—”, sendo que a especificação da regra R3 para quando as condições
forem combinadas dessa forma é executar a ação 2.
 Caso de teste R4: aborda uma combinação de entrada como pré-requisito de va-
lores T, “—”, “—”, sendo que a especificação da regra R4 para quando as condições
forem combinadas dessa forma é executar a ação 1.
6 Tabelas de decisão e testes

Aplicação da tabela de decisão


Para aplicar a tabela de decisão para a construção de um caso de teste, o tra-
balho de análise e estabilização deve ter sido concluído. Com base na análise
anterior, você vai agora trabalhar na produção de um caso de teste que utilize a
tabela como insumo principal para criar o caso de teste que tem como objetivo
validar e verificar os resultados obtidos. Observe a tabela a seguir.

Combinações

R1 R2 R3 R5

A1 = 10 F F F T

Condições A2 = 20 F F T —

A3 = 30 F T — —

Ação 1 X

Ações Ação 2 X

Ação 3 X

A partir da tabela de decisão, você deve criar o primeiro caso de teste,


que será a representação da regra R1. A seguir, veja como um caso de teste
simplificado pode ser construído.

Caso de teste CT-R1

Pré-condições Os valores de A1, A2 e A3 devem ser selecionados.

Regras A1 ≠ 10 e A2 ≠ 20 e A3 ≠ 30

Ações Nenhuma ação deve ser executada.

Resultado
Sem resultado.
esperado
Tabelas de decisão e testes 7

O caso de teste para a regra R2 será o seguinte:

Caso de teste CT-R2

Pré-condições Os valores de A1, A2 e A3 devem ser selecionados.

Regras A1 ≠ 10 e A2 ≠ 20 e A3 = 30

Ações A ação 3 deve ser executada.

Resultado
Resultado da ação 3 ocorrido.
esperado

O caso de teste para a regra R3 será o seguinte:

Caso de teste CT-R3

Pré-condições Os valores de A1 e A2 devem ser selecionados.

Regras A1 ≠ 10 e A2 = 20

Ações A ação 2 deve ser executada.

Resultado
Resultado da ação 2 ocorrido.
esperado

O caso de teste para a regra R5 será o seguinte:

Caso de teste CT-R5

Pré-condições O valor de A1 deve ser selecionado.

Regras A1 = 10

Ações A ação 1 deve ser executada.

Resultado
Resultado da ação 1 ocorrido.
esperado
8 Tabelas de decisão e testes

Um conjunto de casos de teste pode ser montado para representar o teste


completo da especificação representada pela tabela de decisão anterior. A
seguir, veja um exemplo de como agrupar esses casos de teste.

Caso de Resultado
Pré-condições Regras Ações
teste esperado

A1, A2, A3 A1 ≠ 10, A2 ≠


CT-R1 N/A OK
≠ nulo 20, A3 ≠ 30

A1, A2, A3 A1 ≠ 10, A2 ≠


CT-R2 Ação 3 OK
≠ nulo 20, A3 = 30

CT-R3 A1, A2 ≠ nulo A1 ≠ 10, A2 = 20 Ação 2 OK

CT-R5 A1 ≠ nulo A1 = 10 Ação 1 OK

Agora você sabe como uma tabela pode apoiar a criação de casos de teste.
Porém, os casos de teste não se limitam somente a essas especificações. É por
isso que as tabelas são suportes. Os casos de teste podem ser mais extensos
e a tabela de decisão pode, por exemplo, adicionar uma regra a um conjunto
de outras regras de um caso de teste mais complexo.

MOLINARI, L. Testes funcionais de software. Florianópolis: Visual Books, 2008.


PEZZÈ, M.; YOUNG, M. Teste e análise de software: processos, princípios e técnicas. Porto
Alegre: Bookman, 2008.
Dica do professor
As tabelas de decisão podem se transformar em casos de teste úteis para o analista de teste. Essa
técnica é importante quando se deseja testar regras que processam combinações de valores
diferentes de entrada.

Nesta Dica do Professor, você vai ver, de forma simplificada, como uma tabela de decisão pode ser
escrita como caso de teste.

Aponte a câmera para o código e acesse o link do conteúdo ou clique no código para acessar.
Na prática
Os casos de teste podem ser criados com suporte das tabelas de decisão confeccionadas para a
especificação de um software. Analisar a documentação para obter essa fonte de informação é uma
boa prática, pois as tabelas de decisão geram casos de teste funcionais muito eficientes em verificar
e validar as regras de comportamento definidas para o software.

Neste Na Prática, você vai ver o caso de um analista de testes de uma fábrica de softwares.
Aponte a câmera para o
código e acesse o link do
conteúdo ou clique no
código para acessar.
Saiba +
Para ampliar o seu conhecimento a respeito desse assunto, veja abaixo as sugestões do professor:

Testes caixa-preta 2
Nas páginas 10 a 14 do seguinte material, você vai ver exemplos sobre tabelas de decisão.

Aponte a câmera para o código e acesse o link do conteúdo ou clique no código para acessar.

Manual de boas práticas para especificação de casos de teste


Veja a seguir as boas práticas para a especificação de casos de teste.

Aponte a câmera para o código e acesse o link do conteúdo ou clique no código para acessar.

Tutorial - Tabelas de decisão


No seguinte material você vai ler sobre o que são e como se estruturam as tabelas de decisão.

Aponte a câmera para o código e acesse o link do conteúdo ou clique no código para acessar.

Você também pode gostar