Le référentiel TMMi : un outil pour l’amélioration de l’activité de test

Lorsqu’elle souhaite satisfaire ses clients, une organisation doit veiller à améliorer la qualité des produits qu’elle fournit. Pour garantir cette qualité, les organisations se sont mises à tester leurs produits avant de les fournir aux clients. Oui, mais comment et à quel prix ?

Lorsque cette organisation fournit des logiciels, ou des produits à forte dépendance logicielle, la qualité du logiciel est un élément primordial. Beaucoup utilisent des méthodes ad hoc et au bout de quelques années de pratique s’aperçoivent qu’une évolution est nécessaire. Le référentiel TMMi a été conçu pour répondre à cette problématique. Cet article illustre en quoi il constitue un outil de travail très intéressant pour toute organisation qui souhaite améliorer son activité de test, et par conséquent la qualité de ses produits, et présente quelques retours d’expérience sur son utilisation

1. Comment organiser les tests de manière à garantir un niveau de qualité suffisant ?
Le test est aujourd’hui une pratique reconnue comme étant nécessaire pour garantir la qualité d’un produit logiciel aux personnes qui l’utilisent.
S’il est quasiment impossible de trouver une organisation qui ne vérifie pas ses produits ou ses applications, il n’est pas rare non plus d’avoir des défauts dans le produit fini. Certes, l’objectif du test n’est pas de garantir le zéro défaut, et dans la pratique il est illusoire de penser que l’on peut tout tester. Se pose alors la question de comment organiser les tests de manière à garantir un niveau de qualité suffisant, tout en respectant les contraintes de délai et de coût.
Si une large majorité d’entreprises a bien pris conscience de l’importance du test, elle n’a pas pour autant franchi le pas de le structurer comme une activité à part entière. Souvent, elles ont une idée claire de l’objectif à atteindre mais ne savent pas par quoi commencer ou par quelles étapes passer. Nous allons illustrer dans cet article comment une approche pragmatique, basée sur une analyse de maturité et sur la mise en place de bonnes pratiques de test, permet d’y répondre.
Et nous allons étudier en quoi le référentiel TMMi (Test Maturity Model Integration) peut accompagner cette démarche.

2. Quid du référentiel TMMi ?
Comment améliorer l’activité de test ? Pour éviter de réinventer la roue à chaque intervention, je préconise une approche basée sur des référentiels. Et quand on parle de niveaux de maturité et de bonnes pratiques, un référentiel comme le TMMi trouve toute sa place. À l’instar du CMMi (Capability Maturity Model Integration), le référentiel TMMi a été développé dans l’objectif de structurer l’activité de test en un ensemble de processus et de les définir par des bonnes pratiques.
Initialement conçu par l’Illinois Institute of Technology, ce modèle a été élaboré sous sa forme actuelle par la fondation TMMi [5]. C’est une organisation à but non lucratif basée en Irlande et qui est composée de professionnels du métier de test issus d’horizons divers et variés. Elle a élaboré le référentiel TMMI en 2007 et l’a complété en 2010.

Le référentiel TMMi est construit autour des notions suivantes :
Niveaux de maturité : structure l’approche autour de cinq niveaux de maturité, ce qui facilite la compréhension du référentiel par les personnes extérieures à l’activité de test.
Processus : structure les activités de test comme un ensemble de domaines de processus qui doivent être mis en place pour atteindre chaque niveau de maturité.
Objectifs : ils décrivent pour chaque processus les caractéristiques à respecter. Ces objectifs sont, soit spécifiques à un domaine de processus, soit génériques pour l’ensemble des processus.
Bonnes pratiques : elles décrivent l’ensemble des activités qu’il faut mettre en œuvre pour atteindre chaque objectif.

Les cinq niveaux de maturité représentent à la fois l’état dans lequel une organisation se trouve et la prochaine étape à atteindre. Ainsi, le TMMi fournit non seulement un modèle de référence des processus mais aussi un modèle de référence de leur contenu. En d’autres termes, le modèle peut être utilisé comme cadre de référence lors d’une évaluation pour déterminer les aptitudes d’une organisation.
Il peut être également utilisé, une fois l’évaluation effectuée, pour définir les objectifs d’amélioration.

Le niveau 1 de maturité (Initial) est celui dans lequel se trouve toute organisation au départ. Le test n’est pas un processus défini. Les activités de test sont faites de manière non structurée, non contrôlée et souvent par les clients eux-mêmes (utilisateurs finaux).
Le niveau 2 (Géré)
est un niveau orienté projet : le test est une activité planifiée et utilise des méthodes pour la création et l’exécution des tests.
Au niveau 3 (Défini), la pratique du test est institutionnalisée dans l’entreprise et les méthodes sont déployées de manière uniforme sur les projets. On rencontre souvent une entité de test formée de testeurs professionnels, c’est-à- dire ayant reçu une formation de testeur. Les deux derniers niveaux, 4 (Mesuré) et 5 (Optimisé), ne peuvent être atteints que si l’organisation est capable de mesurer et analyser l’efficacité et la productivité des tests et l’améliorer de façon continue.

Pour illustrer le lien entre la maturité et les domaines de processus, regardons par exemple les domaines de processus à satisfaire pour qu’une organisation soit au niveau 2 de maturité (Géré) :

1- Politique et stratégie de test,
2- Planification des tests,
3- Surveillance et contrôle des tests,
4- Conception et exécution des tests,
5- Gestion des environnements de test.

L’atteinte des objectifs génériques et spécifiques de ces processus sera assurée respectivement par la mise en œuvre de pratiques génériques et des pratiques spécifiques. Les produits de sortie ou livrables sont aussi des éléments constitutifs de cette démarche. Ils permettent de vérifier la bonne mise en œuvre des différentes pratiques (pratiques génériques et pratiques spécifiques) afin d’atteindre ces objectifs spécifiques et génériques.

Par exemple, pour satisfaire le domaine de processus « PA 2.1 – Politique et stratégie de tests », l’un des objectifs à atteindre est « SG2 – Établir une stratégie de test ». Le livrable produit est un document intitulé « Stratégie de test » et pour le construire il suffit de suivre les pratiques spécifiques dans le chapitre correspondant du référentiel, comme :

1- Définir les risques génériques du produit,
2- Déterminer le cycle de vie à mettre en place pour développer le produit (cycle en V, agile…),
3- Définir les niveaux de test (unitaire, intégration, recette fonctionnelle…),
4- Définir les rôles et responsabilités des acteurs.

3. les avantages du référentiel

3.1 - Le vocabulaire commun
Comme tout référentiel, il peut y avoir un risque de mauvaise interprétation des termes qui sont utilisés.
Dans le cas du TMMi, l’énorme avantage est que le glossaire est entièrement repris de celui développé par l’ISTQB (International Software Testing Qualifications Board [3]). Il y a deux avantages à se baser sur un glossaire international ISTQB.
D’une part, pour une organisation qui met en place des bonnes pratiques de test, ceci garantit une meilleure compréhension et appropriation du référentiel pour les personnes qui sont familières ou certifiées avec l’ISTQB. D’autre part, pour une organisation qui souhaite réaliser des évaluations de maturité sur la base de référentiel, le vocabulaire commun permet de comparer différentes organisations entre elles.

3.2 - La complémentarité avec le CMMi
Sur la forme, il utilise le même modèle et la même approche étagée par niveaux de maturité. Il reprend également la même numérotation entre les objectifs et activités génériques ou spécifiques. Ceci facilite énormément le travail de comparaison pour les organismes qui adopteraient conjointement les deux modèles. Sur le fond, ce modèle a été développé spécifiquement pour se focaliser sur les activités de test logiciel et fournit une vision nettement plus spécifique que ce qui est fourni par le CMMi dans les processus de vérification et validation par exemple. On trouve, pour un niveau de maturité donné dans TMMi, des références vers des domaines de processus correspondants dans CMMi.

3.3 - Le modèle d’évaluation et de certification
La structure du TMMi par processus, objectifs et bonnes pratiques, permet une utilisation du référentiel dans les deux sens. Soit comme un guide de mise en œuvre des bonnes pratiques, soit comme un outil d’évaluation. La liste des bonnes pratiques se transforme assez facilement en points de contrôle pour fournir une grille d’audit très complète. Cette évaluation peut même aller jusqu’à la certification. De même que le CMMi pour les organisations de développement, le TMMi offre la possibilité à une organisation de test d’être certifiée pour un niveau de maturité donné. Il peut donc fournir une approche complémentaire à l’ISTQB qui propose un parcours de certification pour les testeurs.

4. Les risques & inconvénients

4.1 - La nouveauté
Bien que basé sur des règles de bon sens, des pratiques existantes depuis des années et sur des référentiels déjà connus et pratiqués, le TMMi n’existe dans sa version 1.3 que depuis 2010, et souffre sans doute d’une méconnaissance de la part des sociétés, dont le test n’est pas le métier principal. Il suffit de regarder sur le site de la fondation TMMi pour s’apercevoir que quatre sociétés uniquement ont passé avec succès une certification. Pourtant, des grands acteurs du conseil, comme Accenture ou KPMG, ont des offres de services sur TMMi. On peut donc s’attendre ce qu’il soit plus répandu d’ici deux ou trois ans. Pour la France par contre, il présente un autre inconvénient, dans la mesure où il n’a pas été traduit. L’effort fait par le CFTL (Comité Français des Tests Logiciels [1]) pour traduire le référentiel ISTQB n’a pas encore trouvé d’équivalent pour le TMMi. Ceci pourrait en retarder l’adoption sur le marché français.

4.2 - La complexité
Il suffit de regarder ce qui est requis pour passer au niveau 2 de maturité. Il faut satisfaire 5 processus, 18 objectifs et pas loin de 70 bonnes pratiques. Pour une évaluation de maturité, cela se traduit par des questionnaires assez longs et complexes, et donc une analyse et un traitement qui vont demander un temps assez significatif, avant de mettre en évidence des résultats significatifs. Pour une mise en place, il n’y a pas vraiment de feuille de route ni de modèle applicable.

4.3 - La spécificité
Il s’agit d’un référentiel spécifique à l’activité de test et qui apporte les éléments essentiels pour améliorer cette activité. Cependant, le test est partie intégrante d’un cycle de vie élargi, couramment appelé ALM (Application Lifecycle Management) qui va de l’expression d’un besoin client jusqu’à la livraison, ou mise en production, du produit correspondant.
Peut-on alors améliorer uniquement l’activité de test, indépendamment des autres phases de l’ALM ? Le risque est d’être confronté à des niveaux de maturité différents entre les équipes de test, de développement, d’exploitation etc… Ainsi, le référentiel TMMi ne peut garantir à lui seul la qualité du produit fini. En revanche, combiner le TMMi aux autres référentiels comme CMMi ou même ITIL devrait améliorer l’ensemble du cycle de vie et donc apporter de meilleures garanties sur la qualité.

5. Retours d’expérience sur l’utilisation du référentiel
Il faut tout d’abord remarquer que les activités de test dans la plupart des sociétés sont relativement éloignées des niveaux de maturité du référentiel TMMi. Si l’on se réfère au livre blanc publié en 2010 par la société de conseil britannique Experimentus [4], seulement 25% des sociétés seraient au niveau 2 de maturité. Comment utiliser ce référentiel pour améliorer les activités de test ?
Nous l’avons utilisé à plusieurs reprises dans le cadre de nos projets pour réaliser des évaluations de maturité. En tenant compte des avantages et inconvénients cités plus haut, et de notre expérience dans le métier du test, nous avons ainsi développé une méthode visant à guider notre analyse en nous focalisant sur les bonnes pratiques qui reviennent le plus souvent. En voici quelques éléments clés.

5.1 - Faire une évaluation préliminaire
Il est souvent utile de questionner le client sur le niveau de maturité auquel il pense être. Pour cela, il suffit de présenter les domaines de processus et voir ceux qui semblent correspondre à des pratiques existantes. Par exemple, si les expressions « stratégie de test » ou « surveillance » ne semblent pas claires, il est inutile dans un premier temps de viser le niveau 3 et il vaut mieux se restreindre aux processus du niveau 2.

5.2 - Cibler le périmètre
Sur la base de l’étude préliminaire, il faut ensuite définir le périmètre de l’évaluation. Théoriquement, il faut parcourir toutes les domaines de processus d’un niveau de maturité. Or, il nous est souvent demandé une évaluation de maturité qui puisse être réalisée en quelques jours. Il est donc illusoire de vouloir parcourir toutes les bonnes pratiques (il y en a 70 au niveau 2) et il faut donc filtrer les éléments essentiels. Deux manières d’y parvenir : soit parcourir tous les domaines de processus et cibler les bonnes pratiques prioritaires, soit cibler les processus et garder toutes les bonnes pratiques.
Encore une fois, le fait de présenter les domaines de processus au client permet de définir avec lui le périmètre le mieux adapté à son cas particulier. Par exemple, un client qui serait au niveau 1 de maturité dans tous les domaines pourrait s’intéresser en premier lieu aux domaines comme la planification, la conception et l’exécution. Un client, chez qui ces activités sont déjà gérées, par exemple au travers d’une gestion de projet, d’un référentiel de test et d’anomalies, pourrait au contraire s’intéresser à l’amélioration de la définition des objectifs de l’activité de test.

5.3 - Réaliser l’évaluation
Sur le principe, le référentiel TMMi laisse une grande liberté d’action. En effet, il autorise deux types d’évaluation, formelle pour la certification, ou informelle dans les autres cas. Il en décrit les principes dans un guide méthodologique appelé TAMAR (TMMi Assessment Method Application Requirements) qui est issu de la norme ISO 15504 [2] et est une source d’inspiration pour toute personne souhaitant réaliser une évaluation informelle. Celle-ci va essentiellement se passer par le biais d’interviews. Une fois le périmètre bien ciblé, il est nécessaire de choisir les questions et les personnes à qui elles doivent être posées.
Les questions s’obtiennent très facilement à partir du référentiel, encore faut-il veiller à donner au questionnaire une structure et une cohérence pour collecter un maximum d’informations. Tout d’abord, les personnes sont choisies en concertation avec le client et sont forcément concernées par les processus définis dans le périmètre. Ensuite, si l’on souhaite obtenir une vision exhaustive du processus de test, il est utile de mélanger des acteurs internes du processus (testeurs, gestionnaires de test, etc.) aux acteurs externes, clients (maîtrises d’ouvrage, utilisateurs, managers) et fournisseurs (développeurs, chefs de projet).
D’après le guide TAMAR, pas besoin d’être un auditeur certifié, ni de collecter des preuves sous forme de documents, ni d’utiliser l’échelle de mesure des objectifs proposée par le référentiel (N – Non atteint, P – Partiellement atteint, L – Largement atteint, F – Complètement atteint). On peut, en revanche, s’en inspirer pour fournir une évaluation factuelle.

6. TMMi : dégager les axes d’amélioration et mettre en œuvre les bonnes pratiques pour la mise en œuvre de ces améliorations
La question de départ était de savoir comment aider une organisation à améliorer son activité de test et donc à parvenir à une meilleure qualité des produits fournis. Pour y parvenir, une approche par évaluation des bonnes pratiques et définition d’un plan d’action est souvent utilisée.
Pour garder une approche objective et factuelle, ces bonnes pratiques doivent être comparées à un standard. Le référentiel TMMi, de par la liste très précise et exhaustive des bonnes pratiques de test qu’il fournit, est un candidat idéal pour réussir cette évaluation. Au premier abord, comme tout référentiel, il peut déconcerter et décourager de par sa structure rigide et sa complexité.
Cependant, après l’avoir manipulé et utilisé sur de nombreux projets, nous avons élaboré une méthode de travail qui, basée sur le référentiel TMMi, permet d’adapter ce dernier à de nombreux cas de figure.
D’une part, la méthode d’évaluation informelle constitue un bon point de départ pour avoir une vision claire du niveau de maturité de l’activité de test et dégager les axes d’amélioration principaux.
D’autre part, le référentiel contient toutes les bonnes pratiques pour la mise en œuvre de ces améliorations. Enfin, cette évaluation peut être étendue à un objectif de certification de l’activité de test.

---------------------

[1] CFTL – Comité Français des Tests Logiciels : www.cftl.net

[2] ISO – International Organization for Standardization : www.iso.org

[3] ISTQB – International Software Testing Qualifications Board : www.istqb.org

[4] Experimentus Ltd : www.experimentus.com

[5] TMMi Foundation : www.tmmifoundation.org