Comment surmonter les défis des tests agiles

Quels sont les défis de test agile les plus courants auxquels sont confrontés les testeurs de logiciels ou l'assurance qualité dans les projets agiles? Qu'est-ce que ça fait d'être un QA dans une équipe agile?

Depuis que les méthodologies de développement agile ont été introduites dans le développement logiciel, le rôle de l'assurance qualité dans les projets agiles a considérablement changé. Il y a n'est plus une équipe de QA assis dans un coin, loin des développeurs et des concepteurs, attendant que l'équipe de développement remette un morceau de travail pour le test.

L'un des éléments les plus importants pour l'assurance qualité dans les projets agiles est d'avoir une bonne compréhension des méthodologies et des processus de développement agile. De nombreuses entreprises agiles suivent le cadre Scrum pour fournir des logiciels de qualité, alors assurez-vous de bien vous familiariser avec Scrum.




Défis des tests agiles

L'essence même du développement agile est livrer fréquemment des logiciels fonctionnels , chaque fois en ajoutant ou en améliorant une petite fonctionnalité qui a une valeur pour le client. Cela pose en soi de nombreux défis non seulement pour les testeurs, mais aussi pour les développeurs et toute autre personne impliquée dans la livraison de l'application.

Dans cet article, j'énumère quelques-uns des défis de test agile les plus courants pour le contrôle qualité dans les projets agiles et comment les surmonter.


Modification des exigences / modifications de dernière minute

Changer les exigences ou abandonner des histoires au milieu d'un sprint n'est pas rare dans les projets agiles. Cela peut être un cauchemar pour toute l’équipe car cela signifie que le travail déjà effectué pourrait être complètement abandonné ou que des modifications devraient être apportées à ce qui est déjà à moitié fait.

Ces changements d'exigences et demandes de dernière minute peuvent affecter la portée des tests, ce qui peut frustrer les testeurs.

Comment surmonter:

Les testeurs doivent être capables de réagir au changement, sachant que dans les projets agiles, le changement est inévitable. Lorsque les exigences changent en particulier vers la fin du sprint quand il n'y a pas assez de temps pour tester correctement, les testeurs doivent fournir autant d'informations que possible sur les tests qui ont été exécutés et quelle partie de l'application n'a pas été bien testée afin que l'équipe peut prendre une décision éclairée (éventuellement en fonction du risque) de libérer ou non la fonctionnalité.


Essayez également d'impliquer les développeurs dans les tests, car les tests et la qualité devraient être l'entière responsabilité de l'équipe.

Pas assez d'informations sur l'histoire

Il y aura des moments où un propriétaire de produit qui rédige des user stories, a une idée sur une nouvelle fonctionnalité mais n'a pas tous les détails pour écrire un bon ensemble de critères d'acceptation pour définir complètement le comportement de la fonction. Ils demandent à l'équipe de développement de créer un prototype afin d'avoir plus d'idées sur la fonctionnalité et le comportement de la fonctionnalité.

Cela crée un défi pour les testeurs car il y a un manque de compréhension et d'exigences, de sorte que les cas de test appropriés ne peuvent pas être construits.

Comment surmonter:


Vous n'avez pas besoin d'exigences très détaillées pour commencer les tests, alors commencez par penser à des scénarios de haut niveau qui testent le concept de l'histoire, plutôt que d'attendre des éclaircissements complets sur la fonctionnalité. En rédigeant des scénarios de test de haut niveau, même lorsque les détails changent, le contexte doit toujours être le même.

Test continu

En agile, le test n’est pas une phase, c’est une activité. Les tests commencent dès le début, avant même le début du développement.

Afin d'avoir une conduite fluide pendant le sprint, les histoires du backlog auraient dû être élaborées pendant les sessions de préparation de l'histoire. Cela signifie que le contrôle qualité doit collaborer avec les propriétaires de produits pour connaître les détails de l'histoire, puis aider à rédiger de bons critères d'acceptation.

Fournir une rétroaction précoce aux développeurs est crucial et difficile pour les testeurs. En tant que testeurs, non seulement nous devons nous assurer que la nouvelle fonctionnalité fonctionne comme spécifié selon ses critères d'acceptation, mais nous devons également nous assurer que le nouveau code n'a pas cassé la fonctionnalité existante, c'est-à-dire que nous n'avons pas régressé, et nous avons pour fournir ces informations rapidement.


Comment surmonter:

Assurez-vous que chaque histoire a des critères d'acceptation adéquats et que le contexte de l'histoire est bien compris par tout le monde avant de commencer le travail de développement.

Commencez à créer des tests (automatisés ou manuels) dès que possible afin que, lorsque la fonctionnalité est disponible pour les tests, vous puissiez commencer immédiatement.

Les testeurs doivent encourager les développeurs à donner une visibilité précoce à la fonctionnalité en la déployant régulièrement dans un environnement de test où les testeurs et / ou les propriétaires de produit peuvent exécuter leurs tests, plutôt que d'attendre que la fonctionnalité soit terminée avant de tester.


Automatisez les tests de régression pour alléger une partie des efforts de test et libérer votre temps pour les tests exploratoires.

Compétences techniques / Automatisation des tests

Travailler dans un environnement agile signifie que les testeurs doivent être techniquement compétents pour aider les développeurs avec les tests d'intégration et les tests d'API, ainsi que pour les tests d'automatisation de l'interface utilisateur avec Selenium ou un outil similaire.

Si les testeurs proviennent d'un contexte purement manuel ou exploratoire, ils auront du mal à suivre le rythme de livraison car ils doivent tester sur un test continu.

Les tests de performances sont également importants, en particulier pour les applications Web, afin de garantir que l'application peut supporter une charge élevée pendant les périodes de pointe. Si votre entreprise ne dispose pas d'un testeur de performances dédié, les testeurs fonctionnels devraient également être impliqués dans les tests de performances.

Comment surmonter:

Commencez par apprendre quelques langages de script ou de programmation, tels que Ruby et Java - ce sont les langages les plus populaires au sein de la communauté des tests techniques.

Si vous êtes déjà familiarisé avec la programmation et que vous êtes bloqué, demandez l'aide des développeurs.

L'outil Selenium est l'outil de test d'automatisation de navigateur le plus populaire, donc si le projet est basé sur le Web, avoir une bonne connaissance de l'outil est un grand atout.

JMeter est également un autre excellent outil à connaître. C'est un outil de test de performance open source et relativement facile à apprendre, alors téléchargez-le et commencez à jouer avec certaines de ses fonctionnalités.

Plusieurs navigateurs / plusieurs appareils

De nos jours, l'architecture de nombreux sites Web se compose d'un «back-end» et d'un «front-end». Le front-end est en grande partie basé sur JavaScript et CSS qui pourraient potentiellement se comporter différemment lorsqu'ils sont visualisés à partir de différents navigateurs ou appareils.

S'assurer qu'un site Web fonctionne comme prévu dans tous les principaux navigateurs et appareils mobiles ou tablettes populaires est en effet un défi majeur pour les testeurs dans les projets agiles.

Comment surmonter:

L'automatisation est la clé ici. Ecrire un test et l'exécuter sur plusieurs navigateurs est ce que l'automatisation fait le mieux.

Vous pouvez utiliser Selenium Grid avec Docker pour gérer et exécuter vos tests automatisés en parallèle sur plusieurs navigateurs.

Un autre excellent outil pour les tests multi-navigateurs est BrowserSync .

la communication

Quelle que soit la qualité du processus ou la qualité de l'exécution des éléments ci-dessus, s'il y a un manque de communication entre les membres de l'équipe ou avec les propriétaires de produits, les concepteurs, etc., rien ne fonctionnera.

Comment surmonter:

Assurez-vous qu'il y a une communication efficace au sein de l'équipe. Engagez-vous en permanence avec les développeurs et les propriétaires de produits

Assurez-vous qu'un processus est en place et que chaque membre de l'équipe adhère à ce processus. Très souvent, les problèmes majeurs ou les bogues ne sont pas identifiés tôt car le processus n'a pas été suivi et l'équipe n'a pas réussi à communiquer entre elle.