Changements d’état d’esprit pour une mise en œuvre réussie des tests Shift-Left

Changements d’état d’esprit pour une mise en œuvre réussie des tests Shift-Left

Cet article a été traduit automatiquement à partir de l’anglais et peut contenir des inexactitudes. En savoir plus
Voir l’original

Par Judie Luc, responsable des tests chez Groove Technology

En tant que responsable des tests, j’ai vu de mes propres yeux comment le paysage du développement de logiciels a évolué au fil des ans. Mais une chose qui n’a pas changé, c’est l’importance des tests. L’approche à l’ancienne qui consiste à attendre la fin du processus de développement pour commencer les tests ne suffit plus. Cela cause trop de problèmes : bugs de dernière minute, malentendus et délais non respectés. C’est pourquoi je suis un grand défenseur de Test Shift-Left, mais voilà : il ne s’agit pas seulement d’adopter une nouvelle méthode. Il s’agit de Changer notre façon de penser sur la qualité, la collaboration et l’appropriation.

La mise en œuvre réussie du Shift-Left Testing nécessite plus que des outils et des processus, elle exige un changement d’état d’esprit dans l’ensemble de l’équipe. Dans ce blog, je vais vous expliquer les principaux changements d’état d’esprit qui sont nécessaires pour que les tests Shift-Left fonctionnent dans la pratique, sur la base de mes propres expériences de direction d’équipes de contrôle qualité.

01. Pourquoi l’approche traditionnelle n’est pas à la hauteur dans le développement de logiciels modernes

Pendant longtemps, le modèle traditionnel de développement de logiciels a traité les tests comme une réflexion après coup. Les équipes de développement se concentraient sur l’écriture du code et n’appelaient l’équipe de contrôle qualité qu’une fois que tout était construit. Les tests ont été effectués juste avant la sortie du produit, et tous les problèmes qui se sont présentés ont dû être résolus à la hâte. Cette approche aurait peut-être fonctionné à une époque plus simple, mais les projets d’aujourd’hui sont beaucoup trop complexes et rapides pour s’appuyer sur cette méthode dépassée.

Attendre la fin du processus de développement pour commencer les tests entraîne plusieurs problèmes :

  • Bugs de dernière minute : Comme les tests sont poussés jusqu’à la fin, les défauts et les problèmes s’accumulent souvent, créant un crunch stressant juste avant la sortie. Ces bogues de dernière minute sont coûteux et prennent du temps à corriger.
  • Malentendus sur les exigences : Sans l’implication des testeurs dès le départ, il y a souvent un écart entre ce qui a été construit et ce que le client voulait réellement. Cela entraîne des retouches et des retards coûteux.
  • Délais non respectés : Les tests étant en retard, tout problème détecté peut repousser le projet au-delà de sa date de sortie prévue, ce qui entraîne de la frustration pour l’équipe et le client.

Ce modèle de test à un stade avancé ne laisse tout simplement pas assez de temps pour tester un produit de manière approfondie tout en respectant les délais. L’accent est davantage mis sur la réparation rapide que sur la livraison d’un produit de haute qualité et bien testé.

Le plus difficile n’est pas seulement de reconnaître que cette approche traditionnelle ne fonctionne plus. Le véritable défi est d’amener les équipes

02. Changements d’état d’esprit

2.1 Des équipes cloisonnées à la collaboration interfonctionnelle

L’un des plus grands changements d’état d’esprit que j’ai rencontrés lorsque j’ai plaidé en faveur des tests Shift-Left a été de faire tomber les murs entre les équipes de développement et de test. Dans de nombreuses configurations traditionnelles, les développeurs écrivent du code, le transmettent aux testeurs, puis attendent les commentaires. Cette séparation crée des retards, des malentendus et, en fin de compte, des occasions manquées de détecter les problèmes à un stade précoce.

Dans un Maj-Gauche approche, ce vieux modèle ne fonctionnera pas. L’état d’esprit doit changer, passant d’une conception du développement et des tests comme des étapes distinctes à une vision comme étant étroitement liée dès le départ. Les tests doivent avoir lieu lors de l’affinement du backlog, de l’analyse des exigences et même de la phase de conception.

Voici un exemple concret d’un projet sur lequel j’ai travaillé. Au début, l’équipe de contrôle qualité n’était pas incluse dans l’amélioration du backlog, ce qui a entraîné quelques malentendus importants sur les besoins du client. Au moment où nous avons commencé à tester, il était trop tard, les problèmes étaient déjà intégrés dans le code. Après l’avoir signalé à notre responsable de la livraison, nous avons changé notre approche et l’équipe de contrôle de la qualité a commencé à participer à l’amélioration du backlog. Cette implication précoce nous a permis de détecter ces malentendus tôt, ce qui nous a évité des retouches coûteuses par la suite.

Regardez la vidéo ci-dessous pour voir comment l’implication précoce de l’équipe de contrôle de la qualité améliore la collaboration : 

Cette collaboration ne consiste pas seulement à participer aux mêmes réunions. Il s’agit de s’écouter les uns les autres, de partager des idées et de comprendre que nous avons tous le même objectif : fournir un logiciel de haute qualité qui répond aux besoins du client. Il ne s’agit pas d’un transfert, mais d’un partenariat.

2.2 La qualité est l’affaire de tous, pas seulement de l’équipe de contrôle qualité

L’un des changements d’état d’esprit les plus importants dans les tests Shift-Left est de reconnaître que la qualité n’est pas seulement la responsabilité de l’équipe de contrôle qualité... c’est la responsabilité de tous. Dans les approches traditionnelles, les développeurs peuvent se concentrer uniquement sur l’écriture de code, en supposant que les testeurs détecteront les erreurs plus tard. Cet état d’esprit ne fonctionne pas si vous voulez mettre en œuvre efficacement Shift-Left.

Les développeurs doivent commencer à penser à la qualité dès l’instant où ils écrivent la première ligne de code. Il ne s’agit pas seulement d’écrire des tests unitaires, mais aussi de réfléchir à la manière dont leur code sera testé et de s’assurer qu’il est écrit de manière à faciliter les tests. Pour les testeurs, cela signifie être plus impliqué dans les étapes de conception et de développement, en fournissant des informations dès le début pour s’assurer que les pièges potentiels sont évités avant qu’ils ne deviennent de véritables problèmes.

J’ai vu la différence que ce changement d’état d’esprit peut faire. Sur un projet où les développeurs ont commencé à collaborer avec l’équipe QC dès le début, nous avons considérablement réduit le nombre de bogues trouvés dans les étapes ultérieures. Les développeurs ne se contentaient pas d’écrire du code ; Ils réfléchissaient de manière critique à la façon dont leur code se comporterait dans différentes conditions et travaillaient avec les testeurs pour s’assurer qu’ils disposaient de la bonne couverture.

Exemple de pratique : programmation en binôme et développement piloté par les tests (ATS)

Une pratique qui aide vraiment à renforcer cet état d’esprit est Programmation en binôme. En faisant travailler ensemble les développeurs et les testeurs tout en écrivant du code, ils peuvent anticiper et résoudre les problèmes potentiels avant qu’ils ne surviennent. Une autre méthode efficace consiste à Développement piloté par les tests (ATS), où les développeurs écrivent des tests avant d’écrire le code réel. Cela garantit que la qualité est prise en compte à chaque étape du processus.

2.3 Des tests réactifs aux tests proactifs

Un autre changement majeur de mentalité lors de la mise en œuvre du Shift-Left Testing est le passage d’un réactif approche d’un proactif Un. Dans les configurations traditionnelles, les tests sont réactifs : les testeurs attendent que le code soit livré avant de commencer leur travail. Mais dans le cadre des tests Shift-Left, les testeurs doivent anticiper les problèmes et aider à les prévenir en premier lieu.

Cela signifie que les testeurs doivent être plus analytiques, en appliquant des techniques telles que les tests basés sur les risques pour identifier les problèmes potentiels. Au lieu de se contenter de vérifier les défauts, ils doivent se poser des questions essentielles dès les premières étapes : Quels sont les risques potentiels ? Où les choses pourraient-elles mal tourner ? Les exigences sont-elles claires et testables ?

J’ai personnellement été confronté à ce défi dans de nombreux projets. Au début de ma carrière, je me concentrais principalement sur la détection des insectes après coup. Mais en adoptant une approche Shift-Left, j’ai réalisé que la vraie valeur venait d’aider à empêcher ces bogues d’être écrits dans le code. J’ai commencé à travailler en étroite collaboration avec les développeurs et les propriétaires de produits pour m’assurer que les exigences étaient claires dès le départ. Cette approche proactive m’a permis de réduire le nombre de défauts par la suite, mais elle a nécessité un changement dans ma façon de penser mon rôle.

2.4 Mettre à l’essai signifie adopter l’automatisation

Pour que le Shift-Left Testing devienne une réalité, il doit y avoir un changement dans notre façon de penser automatisation. Les tests précoces ne peuvent pas reposer uniquement sur des efforts manuels, ils ne sont tout simplement pas évolutifs. Au lieu de cela, les tests automatisés doivent être adoptés et intégrés dans le flux de travail de développement dès le départ.

Pour une mise en œuvre réussie de Shift-Left, l’automatisation ne peut pas être une réflexion après coup. Les équipes doivent investir dans des tests unitaires automatisés, des tests d’intégration, des tests de bout en bout et de l’intégration continue (CI) pipelines dès le début. En automatisant ces processus, nous pouvons fournir un retour d’information rapide aux développeurs, ce qui les aide à détecter les défauts à un stade précoce et à les corriger avant qu’ils ne causent des problèmes plus importants.

Exemple d’automatisation : intégration continue (CI) et tests automatisés

Chez Groove Technology, nous avons adopté CI Des pipelines qui exécutent automatiquement des tests chaque fois qu’un nouveau code est validé. Cette configuration permet un retour d’information rapide pour savoir si le nouveau code a cassé une fonctionnalité existante. En automatisant ces vérifications tôt, nous détectons les bugs immédiatement au lieu d’attendre la fin du sprint ou du projet.

2.5 De l’état d’esprit fixe à la croissance et à l’adaptabilité

L’un des changements d’état d’esprit les plus subtils mais les plus importants dans les tests Shift-Left est de s’éloigner d’un état d’esprit fixe à l’un des Croissance et capacité d’adaptation. Dans les configurations traditionnelles, les rôles sont rigides : les développeurs écrivent le code, les testeurs le testent, et c’est comme ça. Mais les tests Shift-Left exigent que tout le monde soit plus adaptable.

Les développeurs peuvent avoir besoin d’en savoir plus sur les méthodologies de test, tandis que les testeurs peuvent avoir besoin d’approfondir leurs compétences techniques ou même de se plonger dans l’automatisation. Toute l’équipe doit être prête à apprendre et à grandir continuellement, en s’adaptant à de nouveaux outils et processus si nécessaire.

J’ai vu ce changement d’état d’esprit faire une réelle différence dans mes équipes. Une fois que nous avons cessé de penser en termes de rôles rigides et que nous avons adopté une approche plus flexible, nous avons pu mieux collaborer, innover plus rapidement et, surtout, fournir des logiciels de meilleure qualité. Ce changement ne se produit pas du jour au lendemain, mais avec la bonne direction et une culture d’apprentissage continu, c’est tout à fait possible.

03. Surmonter les défis du test Shift-Left

Bien que les tests Shift-Left offrent des avantages significatifs, ils ne sont pas sans défis. La mise en œuvre réussie de cette approche exige de la patience et la volonté d’affronter quelques obstacles.

3.1 Résistance culturelle

L’un des défis les plus difficiles est d’obtenir l’adhésion de toute l’équipe aux changements d’état d’esprit requis par Shift-Left. Les développeurs peuvent résister à l’idée d’assumer des responsabilités de test, et les testeurs peuvent être mal à l’aise pour entrer dans les premières étapes du projet. Pour surmonter cette résistance, il faut une communication claire et une formation continue.

3.2 Augmentation de l’effort initial

Les tests Shift-Left nécessitent plus de travail en amont : planification des tests, configuration de l’automatisation et implication des testeurs dès le début des discussions. Cela peut sembler être un effort supplémentaire, surtout au début. Mais cet investissement est rentable car il permet de détecter les défauts plus tôt et de réduire les reprises plus tard dans le processus.

3.3 Vitesse d’équilibrage avec des tests approfondis

Un autre défi que j’ai rencontré est de trouver un équilibre entre le désir de versions rapides et la nécessité de tests approfondis. Dans certains cas, les équipes peuvent se sentir obligées de sauter ou de précipiter les tests précoces pour respecter les délais. Cependant, couper les coins ronds à ce stade entraîne souvent plus de problèmes sur toute la ligne, car les bogues passent entre les mailles du filet.

Pour y remédier, je me concentre sur l’automatisation des tâches les plus répétitives et sur le maintien d’une large couverture de tests sans ralentir le développement. Il s’agit de trouver l’équilibre entre la vitesse et la qualité, ce qui nécessite un ajustement continu à mesure que les exigences du projet évoluent.

04. Comment mettre en œuvre avec succès le test Shift-Left

Si vous envisagez d’introduire le test Shift-Left dans votre propre équipe, voici ce que j’ai appris en cours de route :

4.1 Commencez petit

N’essayez pas de tout changer d’un coup. Commencez par un projet pilote ou une fonctionnalité spécifique, et travaillez à l’intégration des tests plus tôt dans le processus. Une fois que votre équipe est à l’aise avec la nouvelle approche, vous pouvez l’étendre à d’autres parties du projet.

4.2 Investir dans la formation

Changer les mentalités prend du temps. Assurez-vous que vos développeurs et testeurs ont la formation dont ils ont besoin pour travailler plus étroitement ensemble. Aidez les développeurs à comprendre l’importance d’écrire du code testable et donnez aux testeurs les compétences dont ils ont besoin pour contribuer plus tôt dans le processus.

4.3 Automatiser tôt et souvent

Plus vous automatisez, plus votre processus de test Shift-Left sera fluide. Les outils d’automatisation permettent de rationaliser les tests et de fournir un retour d’information rapide, ce qui vous permet de tester en continu sans ralentir le développement.

05. Réflexions finales : un effort d’équipe pour virer à gauche

Les tests Shift-Left ne sont pas seulement un changement technique, c’est un changement culturel. Pour que cela fonctionne, tous les membres de l’équipe doivent changer leur façon de penser les tests, la qualité et la collaboration. Les développeurs doivent s’approprier la qualité de leur code dès le départ, et les testeurs doivent être impliqués dans le projet plus tôt, en réfléchissant de manière proactive à la façon de prévenir les défauts, et pas seulement d’y réagir.

Si vous cherchez à améliorer vos propres processus ou si vous avez des questions sur la façon de faire fonctionner le Shift-Left Testing pour votre équipe, n’hésitez pas à nous contacter : contact@groovetechnology.com

Judie Luc est responsable des tests chez Groove Technology, où elle se concentre sur l’amélioration de la qualité des logiciels grâce à la collaboration, à l’automatisation et à la participation aux tests précoces.

Hajime Y.

Veteran web developer | Ex-Beginner | Tech Lead | Frontend Architect

10 mois

Um, now that Trump's inaugurated, shifting left might not be the best strategy.

Ngo Minh Phuong Lam

Graphic Designer at Groove Technology

1 ans

This is very insightful!

Identifiez-vous pour afficher ou ajouter un commentaire

Plus d’articles de Groove Technology

Autres pages consultées

Explorer les sujets