Les phases de testing ont longtemps été reléguées à la fin des flux de production. Or, le CISQ (Consortium for Information & Software Quality) a évalué dans une étude publiée en 2019, le coût de la correction d’un bug pendant la phase de développement d’un logiciel à 100 dollars, contre 10k dollars une fois le logiciel en production. Les méthodes agiles permettent de rendre les processus plus fluides et plus intelligents, encore faut-il parvenir à éviter les pièges. Voici 8 conseils pour rendre vos tests (et vos équipes) plus agiles.
8 conseils pour rendre vos tests plus agiles
1) Intégrez vos testeurs au sein de l'équipe de développement pour favoriser la communication !
L’un des maîtres mots est la communication entre les équipes. Jusqu’à il y a peu, les testeurs arrivaient en fin de process pour vérifier le respect du cahier des charges initialement rédigé par le client. Ce fonctionnement en silo a depuis largement démontré ses limites. Il est donc essentiel de promouvoir la communication et la collaboration entre l'ensemble de l'équipe (testeurs, développeurs, parties prenantes de l'entreprise, etc.).
2) Priorisez vos tests et débutez par ceux qui présentent un risque critique
Si l’on n'inclut pas le testeur dès le lancement d’un projet, il peut manquer de visibilité et avoir du mal à évaluer les fonctions critiques du produit. Or,donner la priorité aux tests en fonction des domaines qui présentent le plus de risques tant sur le plan économique que sur celui de la sécurité est essentiel. Les méthodes de développement agiles visent à proposer sur le marché des logiciels de haute qualité dans un délai très court. Le testeur doit être en capacité de donner la priorité aux tests en fonction des domaines qui présentent le plus de risques.
3) Appuyez-vous sur l’automatisation mais de manière appropriée
… sans totalement vous reposer dessus ! L'automatisation des tests est une méthode, et ne doit pas devenir un objectif en soi. Si un humain doit interagir avec la fonctionnalité ou le système, faites-le tester par un humain. L'avantage des tests automatisés est sa capacité à libérer des testeurs pour valider les nouvelles fonctionnalités au lieu d'exécuter manuellement des tests de non-régression mais il serait une erreur d’imaginer qu’ils peuvent totalement se substituer au travail des testeurs.
4) Communiquez au maximum sur les KPI “métier” et “business”
Là encore, la communication entre les équipes est reine. Pour mieux accompagner les testeurs, il est nécessaire qu’ils puissent bénéficier de la vision métier et business, c’est-à-dire les vrais enjeux derrière le développement du logiciel ou de l’application. Apprenez le domaine et le métier de l'entreprise pour mieux comprendre les besoins de ses utilisateurs... Cela vous permettra de mieux répondre aux besoins des utilisateurs en éliminant les éléments peu pertinents (le "fluff") mais qui augmentent la charge de travail de l'équipe et le calendrier du projet. Bref, les équipes de testeurs doivent être en mesure de prioriser leurs actions et de prendre les bonnes décisions.
5) Vous avez tout ce qu’il faut pour avancer !
On a souvent tendance à créer de nouveaux standards à destination des testeurs… Et si, c’était une erreur ? Vous avez déjà tous les éléments pour les mettre en situation de réussir. Laissez les testeurs accéder et travailler à partir des users stories conçues par les products owners, ce sont finalement les éléments les plus efficaces et les plus faciles à mettre à disposition. La collaboration sur le processus d'écriture des tests permet également de s'assurer que les user stories seront testables, ce qui contribue à garantir la robustesse et la pertinence des tests automatisés.
6) Gardez un œil sur les tests unitaires.
Ce sont qui présentent un risque particulier. Pour ce cas précis, les testeurs peuvent demander aux développeurs de les assister afin d’identifier ensemble les plus faibles d'une source logicielle.
7) Organisez des rétrospectives
Prenez ce moment au sérieux, les “rétro”, ces moments sont trop souvent négligés au profit du sprint suivant. Encore une fois : com-mu-ni-quez ! Discuter du bon déroulement du processus mais aussi des erreurs commises. C’est en réalisant des rétrospectives rigoureuses que vous parviendrez à aider les testeurs à améliorer leurs connaissances et à trouver des solutions aux problèmes futurs.
8) Toujours tester du point de vue du client.
Le processus de test doit toujours être axé sur l'utilisateur final. Si cela peut paraître une évidence, on peut avoir tendance à perdre cet objectif pendant certaines phases compliquées du projet. Soudain, en cherchant à résoudre des problèmes techniques, on perd de vue le bénéfice attendu par l'utilisateur. Gardez en tête que la qualité de votre logiciel est définie par le confort d'utilisation et la satisfaction du client.
Vous l’avez compris, les maîtres mots pour réussir à tester en agile restent la communication et le décloisonnement des équipes. Plus les différents métiers parviendront à travailler ensemble à toutes les phases du projet, et plus celui-ci sera fonctionnel tôt et “du premier coup” (“right at first time”) pour que l’utilisateur ou le client puisse en tirer un maximum de bénéfices. Ne laissez plus vos testeurs en fin de cycle, laissez-les accéder à l’ensemble du processus !
Pour en savoir plus sur les tests en Agile, n'hésitez pas à télécharger notre livre blanc : Tests et Agilité : Font-ils bon ménage ?