Nous avons vu dans le premier article de cette série qu’il existe actuellement de beaux référentiels visant à évaluer le niveau de maturité des tests indépendamment du contexte.
Ces modèles aussi bien soient-ils ont des limites. Ces limites sont par exemple:
- Une non adaptation au contexte qui inclue une certaine rigidité
- Des décisions « arbitraires » (il a fallu faire des choix)
- Une relative complexité à mettre en place
- Une couverture parfois trop importante par rapport au besoin
Afin de répondre à ces problématiques et rendre une évaluation de la maturité plus simple, ou de manière plus pragmatique juste permettre de prioriser les actions d’amélioration à mettre en place de son côté, de nombreux professionnels du test proposent des alternatives plus facile à mettre en place.
Cet article vous présentera 3 de ces initiatives afin de vous offrir des pistes de réflexion sur ce sujet.
Travailler sur la maturité des pratiques
Cette approche est la plus proche des référentiels comme le TMMI et le TPI. Si je devais m’engager, je dirais qu’elle est en fait assez proche du TPI même si je l’ai imaginé suite à l’étude du TPI.
Je tiens également à préciser que le périmètre de cette approche est purement Agile et inadapté à un contexte Agile. De même, elle liste des pratiques, il est toujours possible d’en ajouter de nouvelles!
Voici comment elle s’illustre:
Développement | Collaboration | Tests | Non fonctionnel | US | |
Niv 5 | Mutation testing Mob programming TCR (Test Commit Revert) | Présentations intermédiaires | Contenu campagnes adaptées (sélection et priorisation) | Toutes les compétences pour les tests NF sont dans l’équipe Tests NF effectués au plus tôt | Déploiement continu des US Mesure de l’impact des US |
Niv 4 | TDD Pair coding Sondes en production Qualité de code adaptée | ATDD Partage des tests (ou chartes) avant livraison | Tests en production (type sonde) Tests priorisés à chaque campagne Evolution des tests des campagnes de TV et TR Tests exploratoires en fonction des revues Pair testing Gestion du versioning des tests | Tests non-fonctionnel (NF) inclut à la CI Certains tests NF inclus dans les campagnes de TV et TR | Documentation basée sur les US, traçabilité sur les US pour la validation, sur la documentation (et historique US) sur la régression |
Niv 3 | TU inclus dans la chaîne d’intégration continue (CI) Normes de codage | BDD Suivi et mesure de l’impact des actions des Rétrospective | Intégration tests vitaux dans la chaine d’intégration continue Tests de régression (TR) Tests exploratoires Revues des tests Tests Vitaux intégrés à la CI | Tests non-fonctionnels à exécuter identifiés Moment d’exécution de campagnes de tests non-fonctionnel identifié dans le processus | Critères d’entrée (Definition of Ready) US avec un but lié au Sprint goal US servant de documentation et permettant une traçabilité |
Niv 2 | Revues de code Tests unitaires (TU) Qualité du code évaluée | 3 amigos Backlog refinement incluant tous les rôles Entraide (ne fait pas que sa spécialité) | Tests vitaux (TV) Revue des tests | Certains tests non-fonctionnels implémentés | Definition of Done établie Critères d’acceptation définit Valeur métier identifiée INVEST |
Niv 1 | X | X | X | X | X |
L’idée est de faire des regroupements de pratiques par thème. Les thèmes sont peu nombreux afin de proposer une lecture lisible (je trouve que TPI peut vite se retrouver complexe à appréhender avec ses nombreux axes). Vous pouvez également remarquer l’influence de TMMI proposant un Niveau 1 « vide ».
Contrairement à TPI et TMMI, le but n’est pas d’évaluer un niveau de maturité de chaque axe ou de l’ensemble du processus. La philosophie est ici toute autre. Ce tableau de classification des pratiques est là pour aider à savoir quoi implémenter dans son contexte. Les thèmes permettent de choisir le sujet que l’on souhaite améliorer.
Les pratiques quant à elles sont classées par niveau en fonction du niveau de difficulté d’implémentation. Il est plus simple, en général, d’implémenter une pratique niveau 2 d’un thème qu’une pratique niveau 3 ou 4 du même thème.
Grâce à cela on sait que si l’on souhaite améliorer la « US » et que l’on a des DoD bien identifiées et que l’on ne sait pas s’il faut mieux travailler sur les DoR ou travailler sur l’identification de la valeur métier alors il est préférable (meilleur ROI) de travailler sur la valeur métier.
A noter: il est tout à fait possible de réorganiser ce tableau ou de créer son propre tableau. Le tableau ci-dessus est assez vieux (2 ans) et mériterait d’être réactualisé.
Travailler sur la proximité des pratiques
Une autre piste possible est de se concentrer encore plus sur les pratiques et de travailler sur leur proximité. Le modèle présenté ci-dessous a été imaginé par Christophe Moustier. Comme pour le tableau précédent, il est issu d’une conversation vieille de 2 ans peut s’avérer nécessaire:
La première chose à faire avec ce graphique est d’identifier les pratiques déjà mises en place. Grâce à cela il est aisé d’identifier les pratiques proches (reliées directement à nos pratiques actuelles). Ces dernières ont une proximité de philosophie et de mise en œuvre qui permettent de les mettre en place plus aisément. Il est alors plus simple de les intégrer en tant que nouvelle pratique.
Tout l’intérêt de ce graphique est sa construction et l’organisation imaginée et implémentée par Christophe Moustier un peu sous la forme de « lignes de métro » (comme le sommaire de ses livres) permettant de rendre visuel la proximité des pratiques. De même l’on peut voir que, comme dans le premier exemple, chaque « ligne » ou zone propose un « thème ». Vers le bas on est plus sur des pratiques de développement.
Travailler sur les pratiques qui intéressent le plus l’équipe
Christophe Moustier n’a pas arrêté là sa réflexion sur la maturité des tests. Il a également imaginé de totalement laisser le choix aux équipes de mettre en place les pratiques qui leurs semblent les plus intéressantes dans leur contexte en partant du principe Agile qu’une équipe est auto-suffisante mais aussi que l’équipe est la mieux placer pour savoir ce dont elle a le plus besoin.
Les pratiques étant très nombreuses il semble nécessaire que l’équipe ait au moins connaissances de leur existence et de ce à quoi elles correspondent. Christophe a donc imaginé un « set » de cartes à utiliser lors d’un atelier (par exemple un rétro) nommant (les explications se retrouvant sur internet) les pratiques et propose aux équipes de sélectionner elles mêmes, grâce à cette connaissance et ce travail de référencement, les pratiques qu’elles souhaitent.
Là encore les pratiques sont classées par thème.
Voici des exemples de cartes:
Si vous souhaitez en savoir plus sur cette démarche je vous invite à vous rendre sur cette page. Il me semble également important de mettre en avant Agilitest qui a permis à ce set de carte de voir le jour.
Conclusion
Comme vous pouvez le constater de nombreuses initiatives existent et ont souvent (à ma connaissance) comme but principal de simplifier la sélection des pratiques à mettre en place. Elle sont donc très axées sur les pratiques. Cela ne vient pas sans inconvénients. Un des principaux est que des nouvelles pratiques fleurissent quasiment tous les jours et que la maintenance de ces « modèles » peut vite d’avérer complexe. Ils peuvent néanmoins servir leur but en proposant un outil simple qui peut aiguiller les équipes.
Pensez à rejoindre le groupe « Le métier du test » si vous souhaitez échanger sur le test
Merci à tous ceux qui mettent « j’aime », partagent ou commentent mes articles
N’hésitez pas à faire vos propres retours d’expérience en commentaire.