Glossaire · Conception des tests
Test par table de décision
En anglais : Decision table testing
Également appelé : table de décision, tables de décision, technique de la table de décision, table cause-effet
Définition
Une technique de conception de tests qui liste les combinaisons de conditions et l’action que chacune doit déclencher, afin que chaque règle métier ait son test.
Le test par table de décision modélise une logique métier qui dépend d’une combinaison de conditions. Vous listez les conditions en lignes, chaque combinaison pertinente de leurs valeurs en colonnes (les règles), et l’action attendue pour chaque règle. Chaque colonne devient au moins un cas de test. C’est la manière la plus fiable de s’assurer qu’aucune combinaison d’une règle complexe n’est oubliée.
Exemple : approbation d’un prêt
Règles : un demandeur est approuvé s’il a un score de crédit d’au moins 700 et un revenu d’au moins 40 000 $. Un score d’au moins 700 avec un revenu inférieur est transmis pour examen manuel. Les clients existants dont le score est inférieur à 700 sont également transmis. Tous les autres sont refusés.
Trois conditions oui/non donnent 2 x 2 x 2 = 8 règles :
| Condition / Action | R1 | R2 | R3 | R4 | R5 | R6 | R7 | R8 |
|---|---|---|---|---|---|---|---|---|
| Score de crédit >= 700 | O | O | O | O | N | N | N | N |
| Revenu >= 40 000 $ | O | O | N | N | O | O | N | N |
| Client existant | O | N | O | N | O | N | O | N |
| Approuver | X | X | ||||||
| Transmettre | X | X | X | X | ||||
| Refuser | X | X |
La rédiger fait surgir des questions auxquelles l’exigence ne répondait pas clairement. Par exemple, R5 et R7 sont toutes deux transmises : pour un client existant avec un score faible, le revenu ne change donc rien. Était-ce voulu, ou un score faible avec un revenu faible devrait-il être refusé même pour un client existant ? La table rend la question visible, ce qui permet de la faire confirmer par le product owner avant de tester.
Réduire la table
Quand une condition n’influe pas sur le résultat, on peut fusionner des règles en utilisant « - » pour « indifférent ». R1 et R2 approuvent toutes deux quel que soit le statut du client : elles se réduisent donc à une seule règle : score O, revenu O, client -. Réduire la table diminue le nombre de tests, mais gardez au moins un test par chemin d’action distinct.
Combiner avec d’autres techniques
Chaque condition a toujours ses valeurs limites. « Score >= 700 » doit être testé avec 699 et 700, et « revenu >= 40 000 $ » avec 39 999 $ et 40 000 $. Utilisez la table de décision pour couvrir les combinaisons et l’analyse des valeurs limites pour choisir les valeurs concrètes.
Quand l’utiliser
Les tables de décision conviennent aux règles comportant plusieurs conditions qui interagissent : tarifs et remises, éligibilité, permissions, devis d’assurance, fiscalité. Avec beaucoup de conditions, la table grossit en 2^n : regroupez les conditions, éliminez celles qui ne comptent pas, ou passez au test pairwise pour des options de configuration indépendantes.