Le testeur Agile, un vaste sujet
Ces dernières années les méthodes agiles impactent fortement le métier de testeur. Comme toute transformation il est impossible de savoir où ces changements vont nous mener, il est par contre important d’essayer d’anticiper un maximum ces modifications de notre travail afin de s’y adapter. Ce n’est d’ailleurs pas un hasard si mon 3ème article, écrit fin 2016 parlait du testeur dans la méthode Scrum, s’il existe de nombreux livres (dont celui du CFTL et de Christophe Moustier) traitant du sujet ainsi que de nombreuses conférences.
L’ensemble de ces articles, conférences, discussions, tables rondes, événements a , en plus du partage et de le développement de nos connaissance, un but commun: définir le métier actuel de testeur et ses prochaines évolutions.
Le CFTL a d’ailleurs fait l’exercice il y a maintenant quelque temps en proposant des « fiches métiers » sur différents métier du test. La fiche « testeur Agile » n’étant pas présente (le métier s’étant démocratisé trop récemment) je me suis prêté à cet exercice en 2018 pour proposer cette fiche. Le but de cet article n’est pas de proposer une nouvelle fiche mais bien de vous proposer un nouvel article avec une réflexion plus à jour que mon article de 2016 sur le métier de testeur Agile.
Le testeur Agile a de nombreux rôles
Si je devais définir maintenant le travail de testeur Agile selon plusieurs rôles principaux, je dirais que le testeur Agile est:
- Un coach en qualité
- Un membre de l’équipe Agile
- Un testeur
- Un test manager
- Un automaticien
- Un éternel apprenti…
Le testeur Agile est un coach en qualité
Si je devais retenir un seul rôle du testeur Agile c’est bien celui-ci! Le testeur Agile travaille dans une équipe pluri-disciplinaire qui construit un produit. Il doit profiter de cette opportunité pour échanger avec l’équipe et insuffler l’esprit de la qualité. Cette appartenance à une même équipe facilite la mise en place du shift left à travers des méthodologies comme le BDD (avec la réunion des « 3 amigos« ) ou l’ATDD mais aussi l’exécution plus fréquentes de campagnes de tests avec l’intégration de certains des tests de régression dans les chaînes d’intégration continue.
Les principes de la qualité ne s’arrêtent pas à la qualité habituellement faite par un testeur non agile! Le testeur Agile se doit d’aider les développeurs à construire un code de qualité en leur faisant prendre conscience de l’importance de construire un produit avec un code de qualité. Pour cela le testeur peut aider à l’implémentation des code review, du pair coding, de ou encore du TDD mais aussi à la mise en place (au moins en partie) du Software Craftsmanship comme le préconise « Uncle Bob« . Je parle ici des développeurs mais la qualité ne se fait pas uniquement là, le testeur doit contribuer et insuffler cet état d’esprit à l’ensemble des membres de l’équipe représentant l’ensemble des rôles dont le produit a besoin pour être construit (ex: analyste métier, représentant métier, UX designer, ops…)
Pour réussir à insuffler cet état d’esprit et mettre en place certaines de ces bonnes pratiques, le testeur doit agir comme un véritable coach en convainquant son équipe de l’apport de ces pratiques et en leur donnant l’envie de les expérimenter!
Le testeur Agile est un membre de l’équipe Agile
On ne le répète souvent mais peut être pas assez!
Le testeur Agile est avant tout un membre de l’équipe Agile à part entière. En Agile on ne considère par comme « done » ou « terminé » une fonctionnalité non testée. Cela peut sembler évident mais je vois encore trop de « développements agiles » avec les tests en dehors du sprint!
Au delà de cette intégration du test, le testeur doit également, en tant que membre de l’équipe aider cette dernière à atteindre son but. C’est un peu comme au foot, pour former une bonne équipe il faut de la cohésion et de la solidarité! Les attaquants doivent défendre et les défenseurs attaquer. Dans une équipe Agile c’est pareil. Le fait de développer avec les méthodes Agiles n’enlève pas les pics de charge. Le testeur Agile se retrouvera donc forcément à avoir des « creux » où il pourra aider son équipe. De plus, l’absence de « creux » ne veut pas dire l’absence de priorisation! Dans certains cas, le testeur se devra d’aider l’équipe sur des tâches qui ne sont pas du test mais prioritaires! En tant que testeur Agile j’ai souvent été amené à travailler sur des spécifications ou de la documentation. Il est également possible pour un testeur d’aider sur des tâches de développement, de UX design…
Dans tous les cas il faut garder à l’esprit que l’important c’est l’équipe et pas les tests même pour un testeur Agile. Cette nécessité de pouvoir faire autre chose que du test explique l’importance des compétences en « T » avec une spécialités sur 1 compétence et des connaissances sur d’autres compétences.
Le testeur Agile est un testeur
Cela peut paraître évident mais le testeur Agile est un testeur! Le test se doit d’être sa spécialité dans le T des compétences en T.
Un testeur Agile doit être capable de concevoir des tests, de les exécuter, de faire des bilans de campagnes, de communiquer sur les résultats, de créer des fiches d’anomalie de qualité… Bref, un testeur Agile se doit de savoir bien faire tout ce que fait un testeur.
Le testeur Agile est un test manager
Cette affirmation peut paraître assez surprenante mais elle prend tout son sens lorsque l’on s’attarde sur les tâches usuelles d’un test manager et de son rôle. En effet, le test manager doit, sur son/ses projet(s) définir (en fait plutôt co-construire mais il reste le « responsable) le plan de test maître, la sélection et la priorisation des tests. De même, le test manager est en charge du planning des campagnes de test (qui teste quoi et quand) et de la stratégie d’automatisation.
Pour le testeur Agile c’est pareil. A la différence que l’on parle de produit (ou partie d’un produit) et que les « ressources » pour l’exécution des campagnes ne sont pas des testeurs mais des membres de l’équipe Agile. Enfin, le testeur Agile se doit d’initier le plan de test, le co-construire avec son équipe, s’assurer de son suivi et bien sûr le faire vivre. Ce plan de test peut d’ailleurs prendre de très nombreuses formes, certains le rapproche fortement de la Definition of Done, je pense de mon côté que la « Definition of Done » fait évidemment partie de ce plan de test mais que ce dernier se doit d’aller plus loin.
Le testeur Agile est un automaticien
Cela représente probablement un des plus changements les plus impactant du métier de testeur car ce dernier se doit d’avoir ou d’acquérir des compétences techniques non nécessaires avant l’Agile.
Avec la multiplication des livraisons, l’impact de l’exécution des tests (de régression) est trop importante pour que l’on puisse les faire efficacement de manière manuelle. L’automatisation s’est donc imposée et cette automatisation des tests doit être réalisée dans l’équipe et donc, au moins en partie, gérée par le testeur. Ce dernier est évidemment aidé par les autres membres de l’équipe mais étant le testeur c’est lui qui porte le sujet et assure la validité des tests (car des tests automatisés ne veut pas dire des tests automatisés pertinents et bien construits). Il est donc au minimum moteur dans les activités de choix de l’outil, de structure et d’implémentation de l’automate afin d’éviter un échec de ce projet d’automatisation.
Le testeur Agile ce n’est pas que des rôles
Les rôles ont leur limite
Cette énumération de rôle peut faire peur! Il ne faut cependant pas que cela voue effraie et ce pour plusieurs raisons:
- Très peu de testeurs ont les capacités de bien remplir tous ces rôles
- Le testeur Agile fait partie d’une équipe. Et une équipe ça se sert les coudes, ça s’entraide, ça apprend ensemble!
- Le testeur Agile n’est pas seul. Il y a certaines équipes avec plus qu’un testeur mais aussi des communautés de test actives (intra ou inter entreprises).
Néanmoins il reste important de savoir qu’il est plus complexe d’être un bon testeur Agile qu’un bon testeur, notamment car cela demande une meilleure maîtrise des bases du test (le testeur Agile est « l’expert test » de l’équipe). C’est pourquoi je considère qu’il est mieux d’avoir déjà une expérience dans le test avant de commencer le test Agile quand c’est possible.
Le testeur Agile c’est avant tout quelqu’un avec le bon état d’esprit
Au delà des rôles, ce que l’on cherche dans une équipe Agile c’est avant tout un co-équipier! Quelqu’un sur qui on peut compter, quelqu’un sur qui s’appuyer, quelqu’un qui sait faire et donner confiance!
Un testeur Agile se doit d’avoir un état d’esprit Agile irréprochable. J’entends par là qu’un le testeur Agile doit:
- Avoir une attitude constructive et une démarche collaborative (cette collaboration se voit très bien avec le BDD)
- Penser à l’équipe, penser produit avoir comme objectif le « bien commun » pour le produit
- Toujours chercher à s’améliorer, à améliorer les processus. Cela peut notamment se faire avec de la veille et des expérimentations mais aussi accepter les critiques et les échecs.
- Être pédagogue, savoir transmettre des idées sans être trop technique
Si on reprend l’exemple d’une équipe de foot, une équipe n’est pas une somme individualités. Ce qui fait une bonne équipe c’est la cohésion, la solidarité, un objectif commun. C’est comme cela que la Grèce a gagné un euro alors que l’équipe ne comptait aucun « grand joueur ». C’est aussi pour cela que quand on joue le midi ou le week-end avec des amis ce n’est pas toujours l’équipe avec le meilleur joueur qui gagne.
Dans une équipe Agile c’est pareil, le bon état d’esprit prévaut sur les compétences à l’instant t de ses membres… dans les limites de l’acceptable (comme en sport)!
Conclusion
Le testeur en devenant testeur Agile a été amené à prendre de nombreuses casquettes. Les compétences qui lui sont régulièrement nécessaires ont été multipliées. Néanmoins, les qualités intrinsèques du testeur restent le même. Un testeur Agile se doit, au delà de l’exhaustivité des compétences qui s’avère souvent être une chimère, d’être un bon communiquant, quelqu’un sur qui on peut compte, quelqu’un qui cherche toujours à s’améliorer et à améliorer l’équipe… Au final, un bon testeur Agile c’est aussi et avant tout un bon camarade, un bon co-équipier, un bon exemple!
Au final, si je devais résumer ce qu’est un testeur Agile en image j’utiliserai celle-ci:
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.