L’évolution est quelque chose d’assez imprévisible et capricieux. Si l’on écoute les prévisions d’évolution pour le test depuis 10 ans on pourrait croire que le test serait:
- Majoritairement automatisé
- Se servant de l’IA pour optimisé ses choix et la qualité
- Avec des testeurs experts dans de nombreux domaines
- Avec création des environnements à la volée
- 100% en Agile
Si l’on revient même avant la démocratisation de l’Agile on pouvait même penser à plus de processus, plus de suivi, plus de traçabilité!
Comme vous le savez il n’en est rien! Ce qui semble une évolution claire est au final quelque chose qui évolue peu, qui peine à avancer.
Pourquoi ces « non évolutions » ?
Nous avons tendance lorsque l’on parle d’évolution à penser amélioration de ce que nous connaissons déjà. Néanmoins pour juger une amélioration nous ne nous concentrons que sur quelques indicateurs qui seraient améliorés… et oublions d’autres aspects / indicateurs qui sont grandement détériorés par ces évolutions considérées comme amélioration. Si l’on reprend les évolutions précédentes cela donne:
- Tests 100% automatisé
Gains: temps d’exécution, tester tôt, tester plus souvent
Pertes: potentiellement de l’argent (c’est un investissement), avoir les environnements dédiés et stables, vision « humaine » pour le non fonctionnel et l’ergonomie, potentiellement du temps avec la maintenance ou l’automatisation de tests non ré-exécutés…
Difficultés: avoir des outils pouvant faire tous les tests souhaités, avoir les compétences au sein de l’équipe pour faire cette automatisation, avoir le temps pour initier l’automatisation…
- IA
Gains: trouver des bugs au plus tôt, avoir des tests plus pertinents, aide à la décision
Pertes: beaucoup d’argent pour la mise en place
Difficultés: avoir des données pertinentes pour entraîner les algorithmes, mettre en place des use case ayant un vrai intérêt tout en étant efficace
- Testeurs experts dans de nombreux domaines
Gains: avoir 1 personne pour répondre à tout
Pertes: toute personne ne pouvant pas être bon sur un domaine alors que très bons sur d’autres (manque de diversité), coûts de formation
Difficultés: manque de motivation des « super testeurs » étant amenés à travailler sur des tâches qui ne les intéresse pas, capacité à trouver des profils
- Création des environnements à la volée
Gains: gestion facilité des tests, limitation des faux positifs et faux-négatifs, facilitation de l’automatisation, limitation des pertes de temps liés aux environnements instables ou non disponibles
Pertes: coûts de gestion, infrastructure, potentiellement pertinence/représentativité des échantillons des données
Difficultés: mise en place technique, bien identifier l’ensemble des besoins
- 100% des développements en Agile
Gains: adaptabilité, capacité à avoir rapidement des retours d’expérience et un produit fonctionnel, relation avec le client
Pertes: du temps avec de nombreuses vérifications liées à la construction itérative, une vision « finale » du produit, potentiellement de la traçabilité, équipes de spécialistes (dans une équipe il y a souvent 1 seul testeur)
Difficultés: changement d’état d’esprit de l’ensemble des acteurs, besoin d’une grande autonomie, besoin de créer des communautés pour s’entraider et ne pas réinventer la roue
Comme vous pouvez le voir bien que les évolutions semblent alléchantes d’un certain point de vue elles peuvent l’être beaucoup moins d’un autre… c’est d’ailleurs ce qui s’est passé avec les processus et la traçabilité… A force de pousser dans ce sens nous avons pris un virage à 180° avec l’Agile et son manifeste (les individus et leurs interactions plus que les processus et les outils) ou encore les tests exploratoires.
Au final l’évolution est une adaptation à un contexte
Comme nous pouvons le voir avec les exemples précédents rien n’est très simple et toute évolution dépend de nombreux paramètres. Certaines évolutions peuvent même sembler être des régressions. Dans le monde animal on peut penser aux descendants des tyrannosaures qui sont les poules!
Comment un animal au sommet de la chaîne alimentaire, avec des dents de 20 cm, une puissance impressionnante, une longue durée de vie et une aura telle que l’on en fait des films peut évoluer en une poule: animal « stupide, qui se fait exploiter par les hommes et mangé par le premier renard venu ?
Simplement car nous ne prenons pas en compte tous les paramètres et l’ensemble du contexte: les poules se reproduisent plus vite et ont besoin de moins d’énergie pour survivre… ce qui est un vrai avantage dans une optique où la nourriture vient à manquer et que l’espoir de vivre plus que quelques années est très faible.
L’évolution peut donc être surprenante:
Et cette surprise n’est pas exclusive au monde animal et peut s’appliquer aussi au test… comme je l’ai déjà vécu!
J’étais dans une équipe qui était passé de 25 à 8 personnes. Le patrimoine de test était à environ 25 000 tests (tests backends) mais suite à la diminution du nombre de personnes ces tests ne pouvaient plus être maintenus. Le choix de sélectionner de sortir des tests de la campagne n’a pas été pris et au final on a eu une bug critique en production car l’ensemble des tests sur une fonctionnalité n’étaient plus à jour. Au final l’évolution aurait été ici de passer de 25 000 tests à moins de 5 000! Notre campagne « Dracofeu » aurait du évoluer en campagne « poule »
Conclusion
Il est important de vouloir évoluer et de se tenir informé des dernières innovations. Néanmoins ce n’est pas parce qu’il y a des nouveautés formidables qu’elles sont forcément adaptés à notre contexte ou qu’elles doivent être poussées au maximum (le 100% de tests automatisés n’est pas une solution dans la très grande majorité des contextes!).
De même il ne faut pas hésiter, lorsque cela devient nécessaire, à faire des sacrifices afin d’assurer un fonctionnement pérenne des tests… Gardez à l’esprit que l’évolution ultime (à ce jour) du tyrannosaure, c’est la poule. Le plus simple et plus court est parfois le choix à faire. N’oubliez pas que le mieux peut vite devenir l’ennemi du bien.
Je ne peux pas vous indiquer avec certitudes de quoi sera fait le test de demain. Je peux par contre vous assurer que le test sera divers et qu’il n’y aura pas une technologie ou méthodologie qui révolutionnera 100% des développements de logiciel.
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.