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 utilisation1.
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