Glossaire · Fondamentaux du test
Pyramide des tests
En anglais : Test pyramid
Également appelé : pyramide de tests, pyramide de Cohn, testing pyramid, pyramide d'automatisation des tests
Définition
Modèle pour équilibrer une suite automatisée : beaucoup de tests unitaires rapides à la base, moins de tests d'intégration au milieu et peu de tests end-to-end au sommet.
La pyramide des tests (test pyramid) est un principe directeur pour répartir les tests automatisés entre les niveaux. La large base est constituée des tests unitaires, rapides, peu coûteux et précis. Le milieu correspond aux tests d’intégration ou de services. Le sommet étroit regroupe les tests end-to-end passant par l’interface, qui donnent la confiance la plus réaliste mais sont les plus lents et les plus fragiles. L’idée, popularisée par Mike Cohn, est de pousser chaque vérification au niveau le plus bas capable de détecter le problème.
Exemple
Prenons une règle : « les commandes de plus de 100 $ bénéficient de la livraison gratuite ».
- Unitaire : tester la fonction de calcul des frais de port avec 99,99 $, 100,00 $ et 100,01 $. Quelques millisecondes chacun, sans navigateur.
- Intégration/API : appeler
POST /ordersavec un panier de 120 $ et vérifier que la réponse contientshipping: 0. Cela prouve que la règle est bien branchée dans le service. - End-to-end : un seul test d’interface qui valide un panier éligible et voit « Livraison gratuite » sur la page de confirmation.
Inutile d’avoir dix tests d’interface pour les valeurs limites. Les tests unitaires prouvent déjà le calcul.
Pourquoi la forme compte
Les tests de plus haut niveau touchent davantage de composants : un échec vous en dit donc moins sur l’endroit où se trouve le bug. Ils ont aussi besoin de navigateurs, d’environnements et de données de test, ce qui les rend plus lents et plus sujets aux tests flaky. Une suite composée surtout de tests d’interface (l’anti-pattern du « cornet de glace ») tourne pendant des heures, échoue pour des raisons sans rapport avec la modification et finit par être ignorée.
Critiques et alternatives
La pyramide est une heuristique, pas un quota. Des alternatives comme le « testing trophy » (trophée des tests) donnent plus de poids aux tests d’intégration, au motif que des tests unitaires très mockés peuvent passer alors que le vrai système est cassé. Les deux modèles s’accordent sur l’essentiel : gardez peu de tests d’interface lents et larges, concentrés sur les parcours critiques, et tirez l’essentiel de votre confiance des couches plus rapides. Choisissez l’équilibre en fonction de l’origine réelle de vos bugs, pas d’un ratio figé.