La taverne du testeur

L’évolution n’est pas forcément ce que l’on croit!

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:

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.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Agilité

10 : Spécifications graphiques du produit en BML

Rappelons que la spécification des exigences fonctionnelles concerne le produit tel qu’il est ou tel qu’il sera  à l’instant t et donc les artefacts à considérer ne sont pas les tickets de réalisation mais ceux de l’architecture fonctionnelle, par exemple les cas d’utilisation (UC composés de tâches métiers)  ou un

Lire la suite »
culture générale

Le rôle des tests d’acceptation par l’exemple

Le rôle de cet article est de montrer, par une analogie éprouvée, l’importance des tests d’acceptation mais surtout la différence entre les tests système et les tests d’acceptation.Pour rappel, tests système et tests d’acceptation sont des niveaux de test. Le contexte: Le client, un commerçant spécialisé dans la vente de

Lire la suite »