9. juin 2023 de Dr. Dorothée Meng
Automatisation des tests : comment nous avons réduit la phase de test de 14 jours à 2 heures
Dans les projets dans lesquels je suis impliqué, la charge de travail générale de l'équipe est élevée et le personnel nécessaire à l’accomplissement des tâches quotidiennes est à peine suffisant. Il est dès lors très difficile d’intégrer des charges de travail supplémentaires dans un emploi du temps très serré. Pour ce qui est d’approfondir des sujets spécifiques, le temps fait à nouveau défaut. Examinons ce problème de plus près dans cet article de blog.
Pourquoi ?
Dans ce genre de situations, je constate que les équipes ont tendance à laisser de côté les tâches les moins agréables, celles qui sont chronophages et qui apportent le moins de valeur ajoutée immédiate. La qualité des livrables peut en être directement impactée. Dans notre activité de développement de logiciels sur mesure ou de personnalisation d'outils existants, la phase de réalisation de tests approfondis de nouvelles fonctionnalités ou d’intégrations au système est souvent sous-estimée et ses avantages mal évalués. L'équipe de test est soumise à une forte pression dans le but de fournir des résultats toujours plus rapides, en particulier dans un environnement de travail agile, où de nouvelles fonctionnalités sont attendues toutes les 2 à 4 semaines.
De plus, lorsqu’il est question de passer à des systèmes utilisés dans une infrastructure validée, le temps nécessaire au test des modifications est encore plus long. En effet, l’élaboration d’une documentation de test détaillée soutenant la création de pistes d'audit claires pour démontrer la conformité avec les exigences et les normes réglementaires est attendue.
Les risques liés au fait de ne pas accorder une priorité suffisante aux phases de tests nous sont familiers :
- Clients mécontents
- Application défectueuse
- Infractions aux réglementations
...pour n'en citer que quelques-uns.
En tant que PO, je veux m'assurer que les fonctionnalités fournies ont été testées dans le détail afin que la solution que nous livrons à nos clients réponde à leurs attentes, tant sur le plan des exigences de stabilité et de sécurité, que sur celui des réglementations auxquelles ils sont soumis.
La question est la suivante : comment pouvons-nous, en tant qu'employeurs, membres du projet et employés, y parvenir, tout en tenant compte des contraintes de temps et de ressources ?
Investir dans plus de main-d'œuvre pourrait être une solution. En augmentant la taille des équipes, la charge de travail globale est mieux répartie, ce qui a un impact positif sur la pression exercée sur les individus et libère du temps pour creuser certains sujets qui n'apportent pas de valeur immédiate aux clients.
Toutefois, compte tenu de l'évolution démographique sur le territoire européen, il sera de plus en plus difficile de couvrir les besoins en ressources humaines qualifiées, de sorte que la seule embauche d'une équipe de test pourrait ne pas répondre aux besoins sur le long terme. Aussi, les « tests » peuvent prendre un temps considérable, car ces derniers ne consistent pas seulement à tester les fonctionnalités elles-mêmes, mais aussi à préparer des cas de test et à documenter des résultats pour la traçabilité, en particulier dans les environnements réglementés comme les entreprises pharmaceutiques ou de technologie médicale.
Une autre option plus efficace consiste à automatiser les tests, ce qui résout les problèmes mentionnés plus haut :
- manque de ressources humaines qualifiées
- laisser de côté les tâches inintéressantes
- risque de clients mécontents, d'applications déficientes et d’infractions à la réglementation en vigueur
Bien entendu, la mise en place d'un test automatisé ne se fait pas en un jour. Néanmoins, il est fort possible que le retour sur investissement soit plus rapide que vous ne le pensez. Laissez-moi vous expliquer comment nos experts en test, qui ont développé un cadre d’automatisation de tests pour l'un de nos clients du secteur Life Science, sont parvenus à réduire le temps de test des nouvelles fonctionnalités et des intégrations d'outils dans un environnement réglementé en passant de 14 jours de travail/personne à 2 heures.
Problématiques principales
Notre client souhaitait concevoir une importante plateforme en interne à laquelle plusieurs systèmes devaient être intégrés. Des systèmes de complexité variable seraient ensuite inclus à l’intérieur même de la plateforme, en fonction du nombre de connexions entre les systèmes. De plus, la plateforme devait également être implémentée dans un environnement hautement réglementé.
Afin de garantir une solution de travail stable, une importante quantité de tests a été nécessaire. Pour chaque changement appliqué, chaque intégration et adaptation devait être testée. L'environnement réglementé a considérablement augmenté la complexité des tests, ainsi que le niveau de précision et d’exactitude attendu des résultats.
Les tests manuels sont connus pour être très chronophages, sujets aux erreurs et très répétitifs. Cela exige aussi que des preuves détaillées de l'exécution soient créées pour chaque test effectué afin d'assurer la traçabilité et la conformité de la validation. Notre équipe d’experts en tests a investi environ 2 semaines dans les tests et la documentation de chaque changement et de chaque nouvelle fonctionnalité qui devait être déployé sur la plateforme. Le test d'une nouvelle fonctionnalité ou d'un changement nous prenait autant de temps que le développement de la fonctionnalité elle-même.
Solution
L'équipe a commencé à réfléchir au processus de test qu'ils suivaient et à la manière dont il pourrait être amélioré afin de réduire le temps investi et les erreurs générées lors des tests. Dans un premier temps, l'équipe a synthétisé les avantages de la mise en œuvre d'un cadre d'automatisation des tests pour l'entreprise pour ensuite définir les défis à surmonter afin d’atteindre les résultats souhaités :
Avantages
- Réduction importante du nombre de jours de travail pour la phase d'exécution des tests
- Adaptation au mode de travail « agile » de l'entreprise
- Réutilisation de la base des codes de tests informels
Le cadre d'automatisation des tests devait :
- Suivre un modèle qualifié de conception de solutions
- Être en mesure de créer des preuves de l'exécution du test intégrant l'horodatage
- Être intégrable dans les outils de gestion du cycle de vie des applications (ALM) et répondant aux normes de conformité
Phase 1
Avant de commencer à concevoir le cadre, l'équipe avait besoin d’acquérir une compréhension détaillée des défis en question. Plusieurs sessions de brainstorming ont été organisées afin de mieux définir les attentes et de répartir les défis entre les groupes de travail, pour ensuite passer au développement. De plus, le workflow souhaité des applications au sein de la plateforme a été clarifié pour comprendre les interdépendances des systèmes sur la plateforme.
Afin de sélectionner le cadre de test le plus adapté aux besoins du projet, l'équipe a analysé les applications nécessaires. C’est une étape importante car chaque type d’application peut être plus ou moins adapté à un cadre d'automatisation spécifique. Dans notre cas, les applications basées sur l'interface utilisateur (UI) devaient aussi être intégrées dans la plateforme, c’est pourquoi Selenium a été choisi comme cadre de test.
Phase 2
Les applications étant basées sur l'interface utilisateur, toutes les actions effectuées par un utilisateur final devaient être testées par rapport aux fonctionnalités et aux exigences établies. Lorsqu'un humain effectue le test, il ou elle interagit avec tous les éléments de l'interface utilisateur, tels que les boutons et les menus déroulants des applications. Dans le cas d’un programme effectuant les tests, le système doit savoir exactement où se situent les éléments de l'interface utilisateur dans l'application. Notre équipe a utilisé les workflows de l'application définis dans la phase 1 et les a divisés en modèles d'objets de page (POM) pour identifier les localisateurs dont le système de test a besoin pour trouver les éléments de l'application.
Pour notre cadre d'automatisation des tests, choisir une stratégie de localisation fiable, unique et qui résiste au changement était essentiel. Par exemple, si un localisateur n'est pas unique, plusieurs éléments peuvent être trouvés sur une page de l'application, entraînant un comportement inattendu du script de test. Si le localisateur ne résiste pas aux changements, toute adaptation de l'interface utilisateur risque d'interrompre le script.
Une fois que les besoins du client sont définis ainsi que sa portée et son cadre, la phase initiale des scripts d'automatisation de tests commence. En collaboration avec notre client, nous avons conçu l'environnement, tout en prenant en charge l’installation du matériel, des logiciels et de l'infrastructure réseau. Nous avons préparé les données de test, conçu les scripts, y compris la hiérarchie et l'organisation ainsi que la modularisation des scripts en composants réutilisables. Nous avons ensuite développé les scripts de test et défini les paramètres nécessaires à leur exécution.
Nous nous sommes concentrés sur l'échange avec les parties prenantes et sur l'implémentation de solutions. Des ajustements périodiques ont permis de répondre à leurs besoins, tels que :
- une forte augmentation de l'efficacité des tests
- l’évolutivité de la solution
- et la gestion de la solution
Bien planifier la phase d'initialisation du script d'automatisation des tests est de la plus haute importance pour partir sur de bonnes bases et assurer le développement, la maintenance et l'exécution dans le futur. Plus la phase initiale est structurée et planifiée, plus il sera facile d'automatiser, de maintenir et d’assurer l’évolutivité du corpus de tests.
Phase 3
Une fois le cadre d’automatisation des tests prêt à l'emploi, de nouvelles discussions ont été organisées avec les parties prenantes afin de recueillir un retour détaillé de la mise en œuvre. Comme dans les phases antérieures, notre équipe s'est attachée à comprendre et à intégrer les propositions de nos clients dans la solution.
Outre l'automatisation des tests proprement dits, fournir de façon automatisée toutes les preuves d'exécution des tests aux outils de gestion de la durée de vie des applications (ALM) était de la plus haute importance pour les acteurs impliqués. Comme le cadre doit être utilisé dans un environnement validé, les preuves de l'exécution des tests doivent être sauvegardées et mises à disposition dans les ALM pour des raisons de traçabilité historiques et de documentation.
La phase finale du projet comprenait la préparation de tous les documents de remise et une présentation formelle du produit aux parties prenantes. Notre équipe a fourni toutes les informations nécessaires aux collaborateurs pour qu'ils puissent prendre en charge la suite des tests automatisés par eux-mêmes.
Résultats
Le principal résultat et avantage pour notre client est sans aucun doute la réduction de la durée des tests, qui est passée de 14 jours/personnes à 80-90 minutes. Pour notre client, cette réduction de temps a un impact significatif sur son cycle de développement et de livraison.
1.
Tout d'abord, les nouvelles fonctionnalités peuvent être testées immédiatement après leur déploiement dans l'environnement de test, ce qui permet d'obtenir un retour instantané sur la qualité du développement et sur les éléments à améliorer.
2.
Deuxièmement, la réduction du temps nécessaire aux tests permet à l'équipe de développement d'utiliser des cadres agiles et de développer de nouvelles fonctionnalités, même pour les systèmes fonctionnant dans un environnement validé.
3.
Troisièmement, la réduction de la durée des tests permet d'augmenter le nombre de nouvelles versions publiées dans un environnement validé par an, ce qui élimine l'inertie systématique actuelle.
Autre réussite : l’augmentation de la qualité des systèmes développés. Le cadre de test automatisé détecte davantage de bugs et de lacunes pendant les tests, augmentant ainsi considérablement la qualité finale des systèmes livrés.
Grâce au cadre d’automatisation des tests, les employés peuvent désormais consacrer leur temps précieux à des tâches à plus grande valeur ajoutée pour l'entreprise, mais aussi pour eux-mêmes. Au lieu d'effectuer un travail répétitif, des tâches nouvelles et plus complexes peuvent être prises en charge, améliorant ainsi le bien-être des employés et leur lien avec l'entreprise.
Enfin, le temps gagné aboutit finalement à une réduction des coûts et à une plus grande efficacité. Pour ne citer que quelques-uns des avantages de cette solution, pour chaque changement demandé, les employés disposent désormais de 13 jours de plus pour réaliser les développements supplémentaires, pour aider d'autres membres de l'équipe dans leurs tâches ou pour tester des fonctionnalités supplémentaires, ce qui contribue directement à réduire la pénurie de main-d'œuvre à laquelle sont aujourd’hui confrontées les entreprises.
Conclusion
La mise en œuvre d'un cadre d’automatisation des tests est complexe et nécessite du temps, des efforts, ainsi qu'une compréhension approfondie de la situation et des objectifs à atteindre.
L'investissement dans la création d'un cadre d’automatisation des tests est en revanche très rentable et a un impact positif important sur
- L'efficacité d’un service ou de l'entreprise
- La qualité des systèmes livrés, même dans les environnements validés
- Le bien-être et, en fin de compte, la productivité des employés
Utilisez les talents et compétences des collaborateurs de votre entreprise à bon escient ! Si vous avez besoin d'aide, n'hésitez pas à nous contacter.