QA Lounge

Quatre facteurs qui ralentissent vos processus d’automatisation

Brian Rock • 12 juin 2018

L’automatisation des tests a actuellement le vent en poupe, à ce à juste titre. À mesure que les entreprises migrent vers un environnement de test agile, elles réalisent que l’automatisation leur est nécessaire pour atteindre le niveau de couverture du code souhaité et nécessaire à une expérience utilisateur optimale.

L’objectif est certes évident, mais la mise en place d’une stratégie d’automatisation efficace l’est beaucoup moins. Trop d’entreprises investissent dans l’automatisation pour finalement voir leur projet rapidement sombrer. Voici quatre raisons qui expliquent pourquoi les entreprises n’arrivent pas à tirer profit de l’automatisation, et les facteurs à considérer en amont.

Choisir les mauvais outils

La première question à vous poser est de savoir si vous souhaitez acheter ou concevoir vous-même votre framework d’automatisation. La réponse n’est pas si simple. Chaque option a ses avantages et ses inconvénients ; ce qui compte est de trouver ce qui correspond le mieux à votre entreprise.

Êtes-vous une petite équipe qui commence juste à faire ses armes dans l’automatisation ? Débuter avec une solution commerciale clé en main est sans doute la meilleure option à ce stade. Ce choix vous permet de trouver plus facilement un ingénieur test qualifié pour vous mettre le pied à l’étrier. Vous serez également plus serein en travaillant avec des outils qui ont fait leurs preuves tout en bénéficiant d’une assistance pour traiter les bugs que vous pourriez rencontrer.

Pour une équipe qui dispose d’un peu plus de maturité fonctionnelle, l’automatisation open source peut être plus pertinente. Elle permet une personnalisation qui sera appréciée par une équipe expérimentée et une meilleure flexibilité sur le long terme à mesure que votre solution d’automatisation évolue. En revanche, les frameworks open source sont gratuits mais nécessitent souvent une expertise technique plus avancée pour le mettre en place et le personnaliser à votre convenance.

D’autres équipes peuvent opter pour la formule hybride qui a ses propres avantages. Quelle que soit l’option retenue, les outils que vous choisissez pour vos projets d’automatisation doivent être soigneusement analysés et validés par toute l’équipe. Si vous faites le mauvais choix, vous risquez de perdre à la fois du temps et de l’argent.

Vouloir aller plus vite que la musique

Une fois que vous avez installé un framework d’automatisation, le réflexe est souvent de vouloir en tirer le maximum en automatisant une partie importante de votre pipeline de déploiement. Une automatisation excessive trop précoce va mettre en péril les premiers bénéfices que vous pourriez retirer de l’automatisation. Non seulement l’opération s’avère extrêmement ambitieuse, mais elle risque de créer plus de problèmes qu’elle ne va en résoudre.

L’automatisation ne devrait pas être intégrée directement dans votre pipeline de développement. Vous risquez de créer des problèmes de processus et de build à mesure que vous découvrez des failles dans vos scénarios de test. Lorsque vous vous lancez, il vaut mieux exécuter vos tests d’automatisation en parallèle, jusqu’à ce vous puissiez observer des résultats cohérents. Une fois que vos résultats seront fiables, vous pourrez commencer à intégrer de manière progressive ces scénarios de test directement dans votre pipeline.

J’ai récemment échangé avec un client à propos de l’échec de ses premiers efforts d’automatisation. Quelques échanges avec l’équipe technique ont permis de faire apparaître le problème très clairement. L’entreprise avait choisi d’intégrer tout de suite les résultats de l’automatisation des tests d’UI dans son pipeline après avoir terminé les tests unitaires et déployé le build dans un environnement d’intégration. Les tests et le déploiement de l’UI ne formaient qu’une seule et même tâche, bloquant la disponibilité de l’environnement tant que les tests n’étaient pas terminés et (pire encore) interrompant le déploiement si les tests de l’UI n’étaient pas concluants.

Bien que la solution ait été rapidement trouvée (ici, migrer les tests d’UI vers un environnement stable en amont le temps que le processus devienne mature, et dissocier les tests des déploiements), les interruptions répétées du workflow de développement ont entraîné une perte de confiance dans le projet qui a finalement été abandonné.

Un processus de triage non défini

Une automatisation sans processus de triage est une entreprise vouée à l’échec. À de nombreuses occasions, j’ai pu voir des entreprises patiner faute d’avoir fourni une documentation fiable de leurs bugs. Pour accélérer votre processus de triage, votre équipe de développement doit pouvoir accéder facilement aux logs, aux copies d’écran et aux ressources liées aux résultats des tests. Rien de moins ne pourra suffire.

Gardez à l’esprit que les résultats de vos tests d’automatisation doivent faire l’objet d’un triage comme vos bugs. Avec des tests automatisés évalués en réussite/échec, il est courant d’écarter un échec sans étudier de plus près le problème. Pourtant, les problèmes sont souvent dus à des scripts de test qui ont besoin d’être mis à jour ou à un problème avec l’environnement de test plus qu’au code en lui-même. C’est pour cette raison qu’une phase intermédiaire que l’on appelle le triage est nécessaire, de la même manière que vous hiérarchisez les bugs.

Un framework et des scénarios de test obsolètes

L’automatisation est censée faire gagner du temps et des ressources aux équipes de développement, mais faute de maintenance adéquate l’effet obtenu sera inverse. Les scénarios de test ne sont pas simplement un projet ponctuel que l’on oublie ensuite : ils doivent être mis à jour en permanence pour répondre à des modifications significatives de l’UI, à des mises à jour majeures d’un OS/navigateur, à des modifications de la bibliothèque de scripts, et bien plus encore.

Il est également vital que la mise à jour soit prise en compte dès l’élaboration du framework. Des modèles de conception trop complexes peuvent générer une maintenance difficile, chronophage et coûteuse (par ex : stratégies pour les locators, modèles Page factory) qui feront dérailler vos efforts d’automatisation. C’est d’autant plus important si l’on tient compte du taux de rotation de vos équipes et de la nécessité pour de nouveaux développeurs de se familiariser rapidement avec un nouveau framework.

Sans automatisation, une entreprise ne peut pas vraiment devenir agile. Mais une entreprise qui applique de mauvaises pratiques d’automatisation n’y parviendra pas davantage. Le chemin est long et difficile, mais prendre les bonnes décisions dès le départ portera ses fruits sur le long terme. Le crowdtesting peut vous aider à y parvenir.

Discover the Automation Essentials You Need to Know

Watch our webinar: Automation Essentials for the Age of Agile

Watch Now

Crowdtesting 101

Découvrez pourquoi un nouveau modèle d’assurance qualité est essentiel pour répondre aux besoins du monde digital

Lire la suite