Quel modèle de présentation de type de test utiliser dans sa stratégie de test ?
Lorsqu’il s’agit de définir une stratégie de test efficace, il est primordial de choisir un modèle de présentation des types de tests qui soit en adéquation avec le contexte et les objectifs du projet. En effet, il n'existe pas de stratégie de test unique ou universelle. Chaque projet est unique, tant par son architecture logicielle que par ses exigences métiers, ses objectifs de qualité, ou encore les compétences des équipes. Dès lors, la stratégie de test doit être agile et adaptable, et ce choix de modèle est une composante clé de cette adaptation.
Explorons les principaux modèles de présentation des types de test, leurs spécificités et leurs usages dans le cadre d’une stratégie de test.
Le modèle “traditionnel” en pyramide inversée ou en "cornet de glace"
Le modèle en pyramide inversée est une représentation classique, mais souvent mal comprise, des tests dans les projets où les tests end-to-end (ou de bout en bout) dominent. Cette situation est fréquente dans les environnements peu industrialisés, où les équipes testent principalement via des tests manuels de type end-to-end et négligent les niveaux inférieurs.
Or, ce modèle pose des défis. Il repose souvent sur des processus de test longs, coûteux et difficilement maintenables. En conséquence, cette stratégie peut manquer d’efficacité, en raison de la faible couverture assurée par les tests unitaires ou d’intégration. Pour cette raison, la pyramide inversée ou "cornet de glace" est souvent citée pour illustrer l’importance de rééquilibrer l’effort de test, en redonnant de l’importance aux tests unitaires et d’intégration.
La pyramide de test : le modèle de référence en évolution
La pyramide de test, popularisée par Mike Cohn en 2009, est sans doute l’un des modèles les plus connus pour structurer les tests dans un projet. Cette pyramide proposait une répartition des tests en trois niveaux :
- Tests unitaires (à la base) : petits tests de fonction qui valident des portions de code isolées et sont souvent automatisés.
- Tests d’intégration (au milieu) : tests vérifiant le bon fonctionnement des interactions entre différents composants.
- Tests end-to-end (en sommet) : tests plus longs et coûteux, couvrant le fonctionnement de l'application dans sa globalité.
Avec le temps, cette pyramide a évolué. Un autre modèle populaire s’est développé qui définit des tests unitaires (composants), des tests d'intégration (intégration de composants) et des tests bout en bout. D'autres niveaux de test peuvent également être utilisés.
Cette représentation encourage à concentrer les efforts sur les tests unitaires, rapides et fiables, tout en gardant des tests end-to-end pour vérifier l’ensemble du flux utilisateur.
Le modèle en diamant
Le modèle en diamant, aussi appelé losange, reprend les fondements de la pyramide mais accorde une place plus importante aux tests d’intégration qui représente la réalité de certains projet avec peu de test unitaire. Ce modèle est particulièrement adapté aux systèmes où les tests d’intégration entre services jouent un rôle crucial pour la qualité globale.
La répartition est ainsi modifiée :
- Tests unitaires (base),
- Tests d’intégration (centre, plus large),
- Tests end-to-end ou d’acceptation (en haut).
Le modèle en diamant vise à réduire la complexité des tests end-to-end tout en assurant une bonne couverture des interactions, d’où l’importance d’un investissement plus significatif dans les tests d’intégration. Ce modèle peut être recommandé dans des environnements où les systèmes dépendent d’interactions entre services et avec des sources de données complexes.
Le "Testing Trophy" de Kent C. Dodds
Le Testing Trophy de Kent C. Dodds est un modèle récent qui, comme la pyramide de test, repose sur plusieurs niveaux de test avec un accent particulier sur les tests d’intégration. Cependant, il se distingue en mettant en avant les tests de composant pour les applications front-end.
Les niveaux du trophée sont :
- Tests statiques : Forment la base du trophée.
- Tests unitaires : Occupent une place réduite par rapport à la pyramide classique.
- Tests d'intégration : Constituent la partie la plus importante du trophée.
- Tests end-to-end (E2E) : Occupent le sommet du trophée.
Ce modèle met l’accent sur les test d’intégration de la même manière que le modèle en diamant. il incluant sur sa base les test statiques comme les linters et les vérificateurs de types à la base de la stratégie de test.
Le quadrant de test agile
Le quadrant de test agile, introduit par Lisa Crispin et Janet Gregory en 2008, ne propose pas une hiérarchie de tests, mais plutôt une classification par objectifs en fonction de la phase du cycle de développement. Il repose sur quatre quadrants :
- Tests technologiques : validation de la base technique (tests unitaires et d’architecture).
- Tests business : validation des exigences métier (tests fonctionnels).
- Tests d’évaluation : couverture des aspects de qualité non fonctionnels (performance, sécurité).
- Tests de support : validation de l’interface utilisateur, d’accessibilité.
Ce modèle est particulièrement adapté aux projets agiles, où la collaboration entre développeurs, testeurs et autres parties prenantes est essentielle. Le quadrant permet d’organiser les tests selon des objectifs de qualité précis, et non selon leur niveau technique. Il devient ainsi plus facile pour les équipes de répondre aux attentes des clients tout en assurant une qualité technique optimale.
Le Round Earth Test Strategy
Le Round Earth Test Strategy, introduit par James Black, est une métaphore de la Terre pour illustrer une stratégie de test en "trois dimensions". Contrairement aux modèles linéaires ou pyramidaux, il invite à une vision holistique des tests, intégrant des éléments de qualité dans chaque étape du cycle de développement.
James Black encourage à envisager la stratégie de test comme une "Terre ronde", où tous les aspects du test, de l’unitaire au bout en bout en passant par la performance, s’interconnectent. Ce modèle met en lumière l’importance de l’adoption de tests collaboratifs et interconnectés qui couvrent tout le spectre de la qualité, et qui engagent toutes les parties prenantes à chaque étape du projet.
Adapter le modèle au contexte et partager les responsabilités
Bien que la pyramide de test soit le modèle le plus souvent évoqué, il existe une diversité de modèles de présentation des types de tests qui peuvent répondre aux spécificités de chaque projet. De la pyramide inversée au Testing Trophy, en passant par le modèle en losange ou le Round Earth Test Strategy, chaque approche possède des atouts et des limitations.
L’important est de choisir le modèle qui résonne avec l’architecture, les objectifs qualité et les besoins du projet. Les modèles de tests ne sont pas des solutions universelles ; ils doivent être adaptés et contextualisés pour maximiser leur efficacité. Par ailleurs, l’adoption d’un modèle de tests bien choisi est un levier puissant pour partager la responsabilité de la qualité entre toutes les parties prenantes du projet. En définitive, une stratégie de test réussie est celle qui gagne l’adhésion de l’équipe et garantit que les responsabilités en matière de tests et de qualité sont partagées, comprises et co-construites par tous.