Glossaire · Conception des tests
Test pairwise
En anglais : Pairwise testing
Également appelé : all-pairs testing, test toutes paires, test par paires, pairwise
Définition
Technique combinatoire qui sélectionne un petit jeu de cas de test où chaque paire de valeurs de paramètres apparaît ensemble au moins une fois.
Le test pairwise (test toutes paires, ou all-pairs testing) réduit le nombre de combinaisons nécessaires lorsqu’une fonctionnalité a plusieurs paramètres. Au lieu de tester toutes les combinaisons possibles, il choisit un ensemble de tests dans lequel chaque valeur de chaque paramètre est associée au moins une fois à chaque valeur de chacun des autres paramètres. L’idée repose sur une observation pratique : la plupart des défauts liés à la configuration sont déclenchés par un seul paramètre ou par l’interaction de deux, et bien moins nécessitent trois valeurs précises ou plus en même temps.
Exemple
Une application web doit fonctionner avec ces options :
- Navigateur : Chrome, Firefox, Safari
- OS : Windows, macOS, Linux
- Langue : anglais, allemand, japonais
Toutes les combinaisons représentent 3 x 3 x 3 = 27 tests. Un jeu pairwise n’en demande que 9 :
| # | Navigateur | OS | Langue |
|---|---|---|---|
| 1 | Chrome | Windows | Anglais |
| 2 | Chrome | macOS | Allemand |
| 3 | Chrome | Linux | Japonais |
| 4 | Firefox | Windows | Allemand |
| 5 | Firefox | macOS | Japonais |
| 6 | Firefox | Linux | Anglais |
| 7 | Safari | Windows | Japonais |
| 8 | Safari | macOS | Anglais |
| 9 | Safari | Linux | Allemand |
Prenez deux colonnes au hasard : chaque paire est présente. Chrome avec Linux est à la ligne 3, macOS avec le japonais à la ligne 5, Safari avec l’allemand à la ligne 9. Avec davantage de paramètres, le gain augmente vite. Dix paramètres à trois valeurs chacun donnent 59 049 combinaisons, alors qu’un jeu pairwise peut couvrir toutes les paires en 15 à 20 tests environ, selon le générateur.
Contraintes
Les systèmes réels comportent des combinaisons impossibles. Safari n’existe pas sous Linux : la ligne 9 doit donc être remplacée. Les bons générateurs permettent de déclarer ce type de contrainte puis de reconstruire le jeu pour que chaque paire valide reste couverte. Parmi les outils qui génèrent des jeux pairwise figurent PICT de Microsoft et la famille de scripts AllPairs.
Quand ne pas s’y fier
- Combinaisons à risque connues. Si une combinaison précise de trois valeurs compte (moyen de paiement, devise et pays), ajoutez-la explicitement.
- Règles qui dépendent de plusieurs entrées à la fois. Utilisez une table de décision pour capturer la logique métier ; le pairwise sert à couvrir des configurations et des options indépendantes.
- Paramètres critiques isolés. Le pairwise ne remplace pas les classes d’équivalence ni les valeurs limites pour les valeurs propres à chaque paramètre.
Les variantes de force supérieure (3-wise, ou t-wise en général) couvrent chaque triplet ou n-uplet plus grand, au prix d’un plus grand nombre de tests.