Técnica de Teste — Particionamento de Equivalência

O particionamento de equivalência é uma técnica de testes com base em requisitos (também conhecida como caixa preta), que significa que ao utilizar esta técnica, a pessoa que testa aplicações passa a ter noção clara de cobertura de testes a partir de requisitos e especificações. Este tipo de técnica não requer conhecimento dos caminhos internos, estrutura ou implementação do software sob teste.

Esta técnica é usada para reduzir o número de casos de teste a um nível gerenciável, mantendo ainda uma cobertura razoável do teste. Esta técnica simples é usada intuitivamente por quase todos os testadores, embora eles possam não estar cientes disso como um método formal de design de teste. Isso faz com que seus testes sejam menos eficazes, gerando duplicidades, ambiguidades ou ausência de cobertura de algumas faixas de valores. Muitos testadores logicamente deduziram sua utilidade, enquanto outros descobriram simplesmente por falta de tempo para testar mais detalhadamente.

Mas como funciona esta técnica?

O particionamento de equivalência divide as entradas do usuário na aplicação em partições (também conhecidas como classes de equivalência) e então as divide em faixas de valores possíveis, para que então, um desses valores seja eleito como base para o teste. Existem partições de equivalência para valores válidos e inválidos.

Valores válidos são valores que devem ser aceitos pelo sistema. Uma partição de equivalência contendo este tipo de valor é chamada de “partição de equivalência válida”. Valores inválidos são valores que devem ser rejeitados pelo sistema. Uma partição de equivalência contendo estes valores é chamada de “partição de equivalência inválida”.

Considere que na sua empresa há um sistema de recursos humanos que processa pedidos de emprego com base na idade de uma pessoa e que possui as seguintes regras de negócio:

  • Pessoas menores de 16 anos não devem trabalhar
  • Pessoas entre 16 e 60 anos podem trabalhar
  • Pessoas com mais de 60 anos não podem trabalhar

Dividindo estas regras em entradas possíveis para o sistema, teremos

Dado este conjunto de regras, é claro que não teremos tempo de testar tudo. Por isso, o particionamento de equivalência te orienta a escolher subconjuntos de testes que encontrarão mais defeitos do que um número equivalente de testes criados aleatoriamente.

Então qual valor escolher?

Qualquer um dentro da partição é tão bom quanto qualquer outro. Dados que pertencem à mesma partição devem ser tratados da mesma forma pelo sistema ou devem produzir o mesmo resultado, logo, qualquer valor dentro de uma classe é equivalente, em termos de teste, a qualquer outro valor.

Para obter uma cobertura de 100% com essa técnica, os casos de teste devem cobrir todas as partições identificadas (incluindo partições inválidas)* usando no mínimo um valor de cada partição. Para exemplificar, tomemos como base o exemplo acima para a criação dos casos de testes a seguir:

Com esses valores, esperamos que:

  • Se um caso de teste em uma classe de equivalência detectar um defeito, todos os outros casos de teste na mesma classe de equivalência provavelmente detectarão o mesmo defeito.
  • Se um caso de teste em uma classe de equivalência não detectar um defeito, nenhum outro caso de teste na mesma classe de equivalência é provável que detecte o defeito.

* Quando partições de equivalência inválidas são usadas em casos de teste, elas devem ser testadas individualmente, ou seja, não podem ser combinadas com outras partições de equivalência inválidas, para garantir que as falhas não sejam mascaradas. Falhas podem ser mascaradas quando várias falhas ocorrem ao mesmo tempo, mas apenas uma é visível, fazendo com que as outras falhas não sejam detectadas

O uso desta técnica é simples e ela pode ser usada como base para outras técnicas de teste. Sua utilização consiste basicamente em dois passos:

  • Identifique as classes de equivalência
  • Crie um caso de teste para cada classe de equivalência

É importante ressaltar que esta técnica baseia-se em requisitos e não na tela. Usar a tela como foco para definir as entradas, faz com que um número maior de testes sejam escritos e dificulta a eficiência na validação de requisitos. A criação de casos adicionais pode fazer você se sentir mais seguro, mas eles raramente descobrem defeitos que os primeiros não encontram. E ai, você tem tempo e dinheiro para criar novos casos de teste?

Referências

--

--