Dernière mise à jour le 19 janvier 2021 — Guy Arieli, CTO Qualité

Les tests automatisés peuvent apporter une plus grande efficacité. Relevez ces défis pour fournir de meilleurs produits entre les mains des clients plus rapidement et plus souvent.

Continuous Testing

Les organisations agiles s'efforcent d'être flexibles et de réagir rapidement. Il s'ensuit qu'ils veulent effectuer des tests logiciels aussi efficacement que possible. Des tests efficaces permettent une livraison plus rapide et une productivité accrue. Dans les tests de logiciels, l'efficacité ne se contente pas d'accélérer le développement, elle donne également des résultats positifs. Par exemple, il peut augmenter le nombre de défauts détectés et corrigés, tout en diminuant le nombre de défauts non détectés et échappés à la production.

De nombreuses organisations voient automatisation des tests comme l'un des Saint Graal pour atteindre une meilleure efficacité des tests. Grâce à l'automatisation, les organisations peuvent couvrir leurs bases à grande échelle et minimiser la latence. Cela libère des talents et d'autres ressources pour se concentrer davantage sur des choses comme l'innovation, la résolution de problèmes et les user stories.

L'automatisation des tests est loin d'être simple à mettre en œuvre. Dans un article de 2020 publié dans le Journal de l'évolution et du processus des logiciels, une enquête menée auprès de 72 organisations de huit pays différents a révélé que "la gestion et l'automatisation des tests sont considérées comme les plus difficiles parmi toutes les activités de test par les praticiens". Afin d'adopter et d'étendre l'automatisation des tests avec un minimum de difficultés de croissance, votre organisation doit être consciente des défis techniques des tests automatisés ainsi que des autres problèmes auxquels vous pourriez être confronté.

Coûts de mise en œuvre élevés

L'automatisation augmente la vitesse de test mais nécessite un investissement important en capital initial. C'est difficile à vendre à la direction car une période de « récupération » peut être imprévisible ou prolongée. Dans certains cas, cela peut même ne jamais arriver. Cela est particulièrement vrai si les meilleures pratiques ne sont pas suivies, notamment la capture de données qui mesurent la valeur créée par la productivité supplémentaire de l'équipe interne ainsi que l'amélioration des performances du produit.

Le meilleur moyen d'assurer un retour sur investissement positif après l'adoption complète de l'automatisation des tests consiste à mettre en œuvre une solution de test automatisée qui s'intègre aux autres produits de l'écosystème. Cela peut activer des fonctionnalités de bout en bout, comme des analyses robustes mesurées en temps quasi réel. L'une de ces mesures qui peut être dérivée est l'indice de vitesse, qui indique aux utilisateurs combien de temps il faut pour que leur application se charge, y compris les éléments sur la page lorsqu'ils se remplissent en temps réel. Pouvoir tester ces facteurs et agréger les performances à toutes les étapes du développement peut permettre d'améliorer les changements. released plus vite.

Migration loin de l'architecture open source

Les solutions open source ont été très populaires en raison de leur prix abordable et du fait qu'elles sont construites autour de résultats plutôt que de fonctionnalités. Mais les outils open source ont leurs limites. Il n'y a pas beaucoup de budget de développement à proprement parler pour ces projets de base, ce qui empêche les développeurs contributeurs les plus actifs de pouvoir y consacrer beaucoup de temps. En l'absence d'incitations financières et de développeurs dédiés, les outils open source sont peu enclins à adopter des fonctionnalités avancées telles que l'intelligence artificielle (IA) ou l'apprentissage automatique (ML).

Les organisations qui cherchent à faire progresser les solutions open source disponibles doivent être disposées à consacrer leur temps et leur argent au projet. Cet engagement ouvre la porte à des considérations coûts/avantages, par exemple si une architecture propriétaire serait mieux adaptée aux besoins spécifiques. Il existe également des considérations concernant la licence, car certains projets open source découragent explicitement la monétisation ou encouragent de nouvelles branches de l'outil à rendre public leur code source.

Les architectures open source présentent également des défis en matière de sécurité, car le fait que le code source soit connu peut permettre aux mauvais acteurs d'explorer facilement les exploits. Des solutions telles que le chiffrement de bout en bout peuvent sécuriser un outil de test même lorsque le code source est accessible au public, mais les équipes de développement doivent prendre en compte ces aspects au cas par cas.

Dans certains cas, la meilleure option peut toujours être une solution open source. Mais les organisations doivent examiner leurs exigences en matière de tests pour déterminer le meilleur outil pour le travail, et ne pas simplement opter pour la solution la moins chère à court terme. Au lieu de cela, ils ne devraient adopter des outils open source que lorsqu'ils estiment que la communauté entourant l'outil peut partager leurs valeurs et leur désir de fonctionnalités spécifiques basées sur les cas d'utilisation les plus courants.

Fragmentation des écosystèmes de test

Actuellement, la plupart des organisations manquent de fonctionnalités cohérentes et de capacités d'intégration, ce qui peut conduire à des écosystèmes de test fragmentés. Par exemple, certaines plates-formes d'automatisation des tests peuvent très bien fonctionner avec votre chaîne d'outils de développement, mais elles manquent d'intégrations pour implémenter les commentaires des opérations dans les paramètres de test. Les environnements de test eux-mêmes peuvent également être très fragmentés. Certains s'appliquent exclusivement aux environnements mobiles, de bureau, de navigateur ou autres.

Pour cette raison, les équipes de développement doivent rechercher des solutions de test capables de fournir des fonctionnalités à toutes les étapes du développement et avec la capacité de s'intégrer à d'autres outils à travers le DevOps environnement. Ils doivent également choisir des ensembles d'outils de test qui observent les performances dans tous les environnements d'appareils prévus, y compris potentiellement les appareils hérités.

Des rapports difficiles à interpréter

Des rapports faciles à comprendre sont aussi importants que les tests eux-mêmes. Les modèles de test peuvent être construits sur des scénarios très spécifiques et, en raison de cette architecture d'automatisation, les résultats individuels peuvent ne pas présenter une vue familière à la plupart des parties. Pour que les rapports soient utiles aux parties qui les lisent, il peut être nécessaire de leur fournir une interprétation supplémentaire et des données contextuelles.

Lors de l'évaluation d'une solution de test automatisé, tenez compte de sa capacité à présenter des informations exploitables dérivées du tableau de bord. À tout le moins, examinez sa capacité à s'intégrer à une plate-forme d'analyse robuste qui peut fournir les informations exploitables souhaitées.

Collaboration et continuité de travail entre les équipes

Les testeurs et les développeurs doivent travailler ensemble pour garantir le bon déroulement du processus de test. Les tests, et en particulier les tests automatisés, peuvent entraîner des blocages pendant la phase de « transfert ».

D’après Stephen Rosing, directeur de l'ingénierie des solutions à l'ACCELQ, "la ligne de communication la plus importante à construire est entre les testeurs et les développeurs. Il est essentiel que l'équipe de développement comprenne le fonctionnement de base de l'outil d'automatisation pour s'assurer que l'application se prête à l'automatisation.

Il existe plusieurs endroits où la communication peut être interrompue et causer des problèmes. Les testeurs peuvent mal comprendre les objectifs, tandis que les développeurs peuvent ne pas intégrer les commentaires des testeurs dans l'amélioration de la qualité du code.

"Les développeurs adorent utiliser les bibliothèques de code les plus récentes et les plus performantes, mais il y a souvent un délai avant que les outils d'automatisation ne les prennent en charge", déclare Rosing. "En communiquant avec l'équipe de développement, vous pouvez vous assurer que vous n'êtes pas obligé de revenir aux tests manuels parce que le développement a introduit une technologie non prise en charge."

Atteindre une couverture de test complète

Avec tout test, il y a toujours une chance qu'il manque quelque chose. Cela est particulièrement vrai dans les tests automatisés. Certains facteurs n'ont peut-être pas été pris en compte dans le modèle et peuvent être négligés.

La clé pour éviter ces angles morts est de suivre les métriques qui peuvent révéler les tendances des problèmes associés à une faible couverture de test, comme un taux élevé d'échappement des défauts. Une analyse granulaire de ces métriques peut révéler quels types de code ou zones de code spécifiques sont ignorés. Cette analyse peut également prioriser et rechercher de meilleures performances au fil du temps.

Une solution d'analyse intégrée de bout en bout peut surveiller automatiquement les performances des tests internes et externes, puis mettre en avant les facteurs pertinents. Par exemple, une alerte peut apparaître lors du test d'une fonctionnalité d'application qui a montré des failles de sécurité au cours des dernières semaines. Cette alerte n'est pas nécessairement basée sur une logique de test interne ou sur une user story considérée, mais plutôt sur les performances réelles de l'application en production. Une telle fonctionnalité peut combler les lacunes dans les tests tout en aidant les équipes à se concentrer sur des scénarios réels, et pas seulement sur des scénarios purement hypothétiques.

Se concentrer sur l'automatisation plutôt que sur les résultats

De nombreuses organisations qui profitent des avantages des processus agiles et de la rapidité accrue de l'intégration continue et de la deployment (CI/CD) veulent implémenter l'automatisation des tests là où ils le peuvent. Cela peut devenir une quête de mise en œuvre de l'automatisation pour le plaisir de l'automatisation.

As Amir Ghahraï dit, "le problème, en particulier dans le développement agile, est que les QA prennent une histoire d'utilisateur et automatisent ses critères d'acceptation. Ce faisant, leur objectif principal et unique est de lutter avec leurs compétences limitées en matière de codage juste pour réussir le test.

L'automatisation, après tout, est censée améliorer le processus de test. Même si les choses vous être automatisé ne signifie pas automatiquement qu'ils devrait. Il est préférable d'être sélectif sur ce qu'il faut automatiser et de le baser sur le risque et l'impact potentiel sur l'utilisateur ou l'organisation. Automatisez les tests exécutés régulièrement, tels que les tests de régression pour confirmer que le système fonctionne toujours.

Lors de la mise en œuvre de tests automatisés, il doit y avoir d'autres métriques au-delà de « est-ce automatisé ? Oui Non." Gardez l'accent sur la valeur et les avantages de l'automatisation, tels que le temps de cycle plus rapide, plus deployfréquence d'exécution, un taux d'échappement des défauts plus faible et moins de travail non planifié. Les développeurs sont également confrontés à une forte pression pour atteindre une vitesse de test élevée afin de suivre les sprints et les objectifs CI/CD. Les organisations peuvent avoir besoin de revenir sur les objectifs d'automatisation des tests afin de maintenir leur pipeline de tests automatisés à jour.

L'objectif de l'automatisation des tests doit être une valeur rapide, pas des tests rapides

Peu importe ce qu'une organisation espère réaliser avec des tests automatisés, l'objectif principal devrait être de créer Plus-value efficacement, pas seulement pour terminer les tests rapidement. Les tests qui s'exécutent rapidement mais manquent des défauts qui causeront plus tard des problèmes ne font pas leur travail ou n'ajoutent pas de valeur à l'organisation.

Une approche de gestion des flux de valeur peut permettre aux organisations de quantifier la valeur créée à tous les stades de DevOps, y compris les tests. L'automatisation des tests peut également alimenter une boucle de rétroaction rapide pour conduire l'optimisation de tous DevOps procédés.

L'automatisation des tests peut être difficile et coûteuse. Mais les résultats peuvent être de meilleurs produits entre les mains des clients plus rapidement, avec des améliorations apportées plus souvent. Tirer parti de la cartographie et de l'analyse des flux de valeur, et pas seulement de l'automatisation, peut renforcer une culture organisationnelle où les résultats s'améliorent constamment, et pas seulement plus rapidement.

Découvrez comment les avantages de l'automatisation des tests ont augmenté et à quoi s'attendre des tests automatisés à l'avenir dans notre webinaire : "Avantages de l'automatisation des tests - passés, présents et futurs ».

Êtes-vous prêt à faire évoluer votre entreprise ?

Explorer

Quoi de neuf dans le monde de Digital.ai

22 juillet 2024

Résumé de l'incident CrowdStrike et de la prévention avec Digital.ai Solutions

Le 19 juillet 2024, une mise à jour de configuration logicielle défectueuse de…

En savoir plus
15 juillet 2024

Sélection des bons outils de test automatisés : introduction

Apprenez à sélectionner le bon outil de test automatisé pour votre pile technologique. De la gestion des tests aux tests multi-navigateurs, nous couvrons les fonctionnalités clés que vous devez connaître.

En savoir plus
8 juillet 2024

La logique des tests : comment la vitesse, la sécurité et la qualité forment un script parfait

Découvrez la logique des tests : comment continuous testing, la sécurité des applications et la collaboration débloquent la vitesse, la sécurité et la qualité pour une livraison efficace des logiciels.

En savoir plus