Glossário · Projeto de testes
Teste pairwise
Em inglês: Pairwise testing
Também chamado de: all-pairs testing, teste de pares, testes pairwise, teste combinatório
Definição
Técnica combinatória que seleciona um pequeno conjunto de casos de teste no qual cada par de valores de parâmetros aparece junto pelo menos uma vez.
O teste pairwise (all-pairs testing, ou teste de todos os pares) reduz o número de combinações necessárias quando uma funcionalidade tem vários parâmetros. Em vez de testar todas as combinações possíveis, ele escolhe um conjunto de testes em que cada valor de cada parâmetro aparece pareado com cada valor de todos os outros parâmetros pelo menos uma vez. A ideia se apoia em uma observação prática: a maioria dos defeitos relacionados a configuração é disparada por um único parâmetro ou pela interação de dois, e bem poucos exigem três ou mais valores específicos ao mesmo tempo.
Exemplo
Uma aplicação web precisa funcionar com estas opções:
- Navegador: Chrome, Firefox, Safari
- Sistema operacional: Windows, macOS, Linux
- Idioma: inglês, alemão, japonês
Todas as combinações dão 3 x 3 x 3 = 27 testes. Um conjunto pairwise precisa de apenas 9:
| # | Navegador | SO | Idioma |
|---|---|---|---|
| 1 | Chrome | Windows | Inglês |
| 2 | Chrome | macOS | Alemão |
| 3 | Chrome | Linux | Japonês |
| 4 | Firefox | Windows | Alemão |
| 5 | Firefox | macOS | Japonês |
| 6 | Firefox | Linux | Inglês |
| 7 | Safari | Windows | Japonês |
| 8 | Safari | macOS | Inglês |
| 9 | Safari | Linux | Alemão |
Confira quaisquer duas colunas: todos os pares aparecem. Chrome com Linux está na linha 3, macOS com japonês na linha 5, Safari com alemão na linha 9. Com mais parâmetros, a economia cresce rapidamente. Dez parâmetros com três valores cada somam 59.049 combinações, enquanto um conjunto pairwise consegue cobrir todos os pares em cerca de 15 a 20 testes, dependendo do gerador.
Restrições
Sistemas reais têm combinações impossíveis. O Safari não existe para Linux, então a linha 9 precisa ser substituída, e bons geradores permitem declarar restrições como essa e depois reconstruir o conjunto para que todos os pares válidos continuem cobertos. Entre as ferramentas que geram conjuntos pairwise estão o PICT, da Microsoft, e a família de scripts AllPairs.
Quando não depender dele
- Combinações sabidamente arriscadas. Se uma combinação específica de três fatores importa (meio de pagamento, moeda e país), adicione-a explicitamente.
- Regras que dependem de várias entradas ao mesmo tempo. Use uma tabela de decisão para capturar a lógica de negócio; o pairwise serve para cobrir configurações e opções independentes.
- Parâmetros críticos isolados. O pairwise não substitui a partição de equivalência e a análise de valor-limite para os valores de cada parâmetro.
Variantes de força maior (3-wise ou, de forma geral, t-wise) cobrem todas as triplas ou tuplas maiores, ao custo de mais testes.