…

Técnicas de caixa preta: Particionamento de Equivalência

novembro 9, 2022

Na técnica de teste funcional (também conhecida como técnica de caixa preta) os testes são derivados a partir dos requisitos. O sistema é uma caixa preta cujo comportamento interno é ignorado. Nesta abordagem, são usados critérios de refinamento para a geração de casos de teste com o objetivo de avaliar a aderência, ou conformidade do software implementado em relação aos seus requisitos.

Um critério de teste é uma diretriz formal que tem o objetivo de auxiliar na seleção de um conjunto de casos de testes  que tenham a maior probabilidade de revelar um defeito ou, no mínimo, aumentar o nível de confiança da cobertura dos testes.

O particionamento de equivalência é um critério de refinamento que tem o objetivo de auxiliar a seleção e redução dos casos de testes que potencialmente podem revelar um erro em relação ao universo de casos de testes possíveis.

Com base no pressuposto de que o domínio dos dados de entrada de uma aplicação pode ser infinito ou, no melhor caso, muito grande, utilizamos o particionamento de equivalência para refinar o domínio de entrada em classes de equivalência válidas e inválidas com o intuito de revelar tipos distintos de erros.

De modo geral, os dados de entrada de um programa se dividem em uma série de diferentes classes que têm características comuns, por exemplo, números positivos, números negativos, strings, etc. Os programas normalmente se comportam de maneira semelhante para todos os membros de uma classe. Dessa forma, não é necessário criar um caso de teste para cada valor possível de uma classe de equivalência. Para cada classe de equivalência identificada, podemos escolher apenas um único valor em virtude do pressuposto que um único valor tem representativamente o mesmo potencial de descobrir um erro em relação ao universo dos outros valores possíveis.

 

Os domínios de entrada são representados tipicamente por um valor numérico, um intervalo de valores, um conjunto de valores relacionados ou uma condição booleana. Assim, as classes de equivalência podem ser criadas de acordo com as diretrizes:

  • Se o domínio de entrada exigir um valor específico, uma classe de equivalência válida e duas classes de equivalência inválidas são criadas;
  • Se o domínio de entrada especificar um intervalo, uma classe de equivalência válida e duas classes de equivalência inválidas são criadas;
  • Se o domínio de entrada especificar um membro de um conjunto, uma classe de equivalência válida e uma classe de equivalência inválida são criadas;
  • Se o domínio de entrada for booleana, uma classe de equivalência válida e uma classe inválida são criadas.

 

Nessa estratégia, você deverá seguir os seguintes passos para particionar o domínio dos dados de entrada de uma aplicação em classes de equivalência:

  • Decompor a aplicação em entradas;
  • Identificar os domínios de cada entrada;
  • Identificar as condições/restrições de cada entrada;
  • Particionar os valores de cada entrada em classes de equivalência (válidas e inválidas);
  • Criar os casos de testes (criar um caso de teste para apenas um valor possível de cada classe de equivalência e eliminar as classes impossíveis ou redundantes)

 

Para ilustrar, consideremos um exemplo prático. Suponha que seja necessário criar casos de testes para validar o mecanismo de simulação de crédito imobiliário de uma instituição financeira. Neste exemplo, o usuário deverá preencher os dados da simulação num formulário e então executar a simulação. No entanto, existe um requisito que restringe a idade do proponente por meio do campo Data de Nascimento, como pode ser observado na figura abaixo:

Considerando o que foi exposto anteriormente, podemos decompor o domínio de entrada em classes de equivalência com base nas condições impostas (75<= idade >= 18), como pode ser visto no exemplo apresentado abaixo:

Se fossemos testar todos os valores possíveis, teríamos 57 casos de testes para a classe de equivalência dos valores válidos e infinitos casos de testes para as classes de equivalência dos valores inválidos. No entanto, conforme discutido anteriormente, para cada classe de equivalência identificada devemos escolher apenas um único valor, como pode ser visto na tabela abaixo:

Com apenas 3 casos de testes seria possível realizar os testes para validar a regra relacionada à data de nascimento da simulação de crédito imobiliário proposto anteriormente com um alto grau de confiança em relação à cobertura e à probabilidade de encontrar um erro.

Continua no próximo post

 

Time MeloQA

Posts relacionados