État de l'Intelligence Artificielle appliquée à l'Ingénierie de la Qualité 2021-2022
Section 4.1: Automatisation assistée

Chapter 1 by Tricentis

Faire de l'automatisation des tests UI une réalité

Métier ●●●●○
Technique ●○○○○

Download the "Section 4.1: Automate & See" as a PDF

Use the site navigation to visit other sections and download further PDF content

 

By submitting this form, I understand that my data will be processed by Sogeti as described in the Privacy Policy.

Dans ce chapitre, nous expliquons comment l'automatisation des tests d'interface utilisateur basée sur le Computer Vision fait enfin de l'automatisation des tests in-sprint une réalité pour les équipes de DevTest qui créent des applications sur mesure ou personnalisées. Pour conclure, nous examinerons la perspective des tests autonomes : comment cela va se passer et ce qu'il faut surveiller.

Avant de commencer, je tiens à souligner que même les tests pilotés par l'IA les plus sophistiqués et les plus efficaces ne remplacent pas, ne remplaceront pas et ne peuvent pas remplacer les testeurs. Il n'en a jamais été question. Les tests pilotés par l'IA rehaussent le rôle du testeur en lui permettant de se concentrer sur le travail d'analyse et d'investigation stimulant qui l'a attiré dans la profession au départ. Ils aident également l'entreprise à réduire les risques tout en accélérant la livraison des applications. En fin de compte, il s'agit de mettre en lumière des informations vitales afin que les équipes puissent lancer rapidement des produits étonnants qui font croître l'entreprise.

Dans l'introduction de cette section - que nous vous encourageons à lire avant ce chapitre - nous avons partagé le point de vue de nombreuses personnes selon lequel les tests d'interface utilisateur sont relativement intuitifs mais fastidieux. La prochaine génération d'automatisation est l'automatisation basée sur l'apprentissage profond qui peut voir et utiliser l'interface utilisateur comme le ferait un humain, indépendamment de la technologie sous-jacente. Le comportement humain est simulé à l'aide de diverses stratégies d'IA et d'apprentissage automatique - par exemple, des réseaux neuronaux convolutifs profonds combinés à des heuristiques avancées - afin de fournir une automatisation de l'IU stable, auto-réparatrice et agnostique à la plateforme.

Chez Tricentis, nous avons étudié comment l'automatisation basée sur l'apprentissage profond peut être utilisée pour observer et interagir avec l'interface utilisateur de la même manière qu'un humain le ferait, quelle que soit la technologie sous-jacente. Notre solution, appelée Vision AI, simule le comportement humain à l'aide d'une variété de techniques d'intelligence artificielle et d'apprentissage automatique - par exemple, des réseaux neuronaux convolutifs profonds combinés à des heuristiques avancées - pour fournir une automatisation de l'interface utilisateur stable, auto-réparatrice et agnostique à la plateforme.

Tricentis Vision AI est l'une des applications de cette technologie. Avec cette approche, les éléments de l'interface utilisateur sont identifiés en fonction de leur apparence plutôt que de leurs propriétés techniques. Qu'un seul élément de l'interface utilisateur soit redessiné ou que l'application entière soit réécrite dans une nouvelle technologie, cela ne fait aucune différence. Comme un humain, l'automatisation s'adaptera simplement et trouvera la solution. En utilisant l'apprentissage automatique pour percevoir et piloter une interface utilisateur de la même manière qu'un utilisateur humain, vous pouvez vous assurer que votre automatisation est aussi adaptable que le cerveau humain. Si vous pouvez le voir, Vision AI a la capacité de l'automatiser. Il peut s'agir d'une application qui utilise des technologies désormais obsolètes, d'une application qui utilise de nouvelles technologies ou d'une application à laquelle vous accédez à distance. Vous pouvez même commencer à automatiser les tests avec des maquettes ou des dessins sur tableau blanc.

Ceci est réalisé grâce à l'utilisation d'une technologie de détection intelligente des objets pour distinguer les éléments de l'interface utilisateur. Bien qu'il s'agisse d'une technique nouvelle pour les tests de logiciels, des entreprises comme Tesla l'utilisent pour détecter des objets (autres voitures, piétons, panneaux, feux de signalisation et arbres) pour les voitures à conduite autonome. Pourquoi prendre la technologie des véhicules à conduite autonome et l'appliquer à l'automatisation des tests ? Parce que cela permet de résoudre le problème de vitesse et de précision mentionné plus haut. Une automobile autopilotée doit percevoir correctement les objets en temps réel. Tout retard entraîne des accidents - et peut même entraîner la mort. Vision AI traite 40 images par seconde en utilisant la même technique rapide et précise de détection intelligente des objets que les automobiles en conduite autonome (contre 1,8 fps avec d'autres outils et 24 fps avec l'œil humain).

En développant Vision AI, nous avons pris la technologie de détection intelligente des objets et l'avons adaptée pour détecter les commandes et comprendre les interfaces utilisateur. Plutôt que de vérifier la présence de piétons, de panneaux et de feux de signalisation, elle peut rechercher des menus déroulants, des tableaux, des listes et des menus - en fait, tout contrôle qu'une personne peut identifier. La détection des contrôles n'est toutefois qu'un aspect du problème. En outre, nous devons lire l'écran en temps réel. C'est là qu'une nouvelle approche de la reconnaissance optique de caractères (OCR) entre en jeu. L'OCR existe depuis plus de vingt ans, mais elle est encore quelque peu lente. Même avec une OCR de pointe, lire un écran prend quelques secondes, mais pour naviguer dans les interfaces utilisateur comme une personne, il faut une reconnaissance de caractères en temps réel qui réagit en quelques millisecondes. C'est pourquoi nous avons créé une toute nouvelle catégorie de reconnaissance optique de caractères alimentée par l'IA.

Toutefois, comme pour les automobiles à conduite autonome, il ne suffit pas de voir et de comprendre les choses. Il faut aussi savoir conduire. Vision AI n'a jamais été conçue pour être un "outil d'automatisation des tests", mais plutôt un "moteur d'automatisation des tests". En tant que tel, il doit être intégré à quelque chose capable d'exécuter des fonctions de base telles que la gestion des données de test et la conception de cas de test. Considérez Vision AI comme un moyen d'améliorer les performances de votre suite d'outils existante plutôt que d'exiger un ensemble d'outils entièrement nouveau. Grâce à cette couche d'intelligence supplémentaire, votre automatisation est suffisamment intelligente pour fonctionner malgré la grande majorité des changements d'interface utilisateur - des choses qui font invariablement trébucher l'automatisation traditionnelle mais qui ne viendraient pas à l'esprit d'un humain.

La vraie valeur de l'ingénierie de la qualité

Voici quelques-unes des façons dont cette approche basée sur l'IA apporte une réelle valeur ajoutée à votre pratique de l'ingénierie de la qualité :

Vous pouvez construire l'automatisation de l'interface utilisateur avant même qu'elle n'existe.

Vision AI peut prendre une définition simple - comme une définition textuelle des exigences, une maquette ou même un dessin sur un tableau blanc - et générer un cas d'automatisation.

Vos tests peuvent résister à la modernisation de l'application

Lorsque vous mettez votre application à niveau, l'automatisation fournie par Vision AI reste intacte. Et je ne parle pas d'une simple amélioration, comme la modification de certaines identifications techniques. Je fais référence à des changements plutôt importants, comme le passage d'une technologie à une autre ou la migration de votre bibliothèque JavaScript d'un ancien jQuery UI à Angular Material Design.

Figure: Automation provided by Vision AI

Citrix ? Personnalisations ? Vieille technologie ? Nouvelle technologie ? Aucun problème.

Si vous pouvez le voir, Vision AI peut l'automatiser. Vision AI fonctionne sur n'importe quelle interface visuelle. Vision AI est compatible avec n'importe quelle interface visuelle. Comme il utilise l'interface visuelle de la connexion technologique, il est capable de fonctionner avec Citrix et Remote Desktop. Il peut fonctionner même si vous n'êtes pas physiquement connecté à la machine que vous regardez (par exemple, si vous la regardez via une interface RDP). Il fonctionne sur des interfaces qui utilisent des technologies qui ne sont plus disponibles - comme les versions obsolètes/dépréciées de Gupta (nous reconnaissons que ces technologies ne sont plus à la mode, mais elles sont encore utilisées aujourd'hui). En outre, il fonctionne avec des technologies de pointe que (la plupart) des outils d'automatisation ne prennent pas encore en charge, comme Flutter, Blazor et Electron.

Figure: Vision AI is compatible with any visual interface.

C'est si facile que votre grand-mère pourrait le faire.

Avec cette approche basée sur l'IA, l'automatisation des tests est vraiment, VRAIMENT facile. En fait, l'un de nos principes directeurs pour le projet était "Si facile que votre grand-mère pourrait le faire". Comme l'IA de Vision voit les interfaces de la même manière que les humains, vous pouvez définir l'automatisation comme vous l'expliqueriez à un autre humain.

Exemple d'utilisation chez une grande banque suisse

Contexte

  • Le développement mobile exigeait des tests rigoureux qui se limitaient à une exécution manuelle.
  • Les outils traditionnels avaient du mal à automatiser les plateformes mobiles en raison de la structure complexe des applications et du manque de ressources techniques pour mettre en place l'automatisation.
  • La gestion des dispositifs physiques pour les tests mobiles posait des défis logistiques difficiles à relever.

Besoin

  • Outil robuste pour accéder à des applications mobiles complexes et capacité d'apprendre et d'automatiser facilement et rapidement
  • Accès global à divers dispositifs physiques pour les tests manuels et automatisés.
  • Exécution de tests dans différents environnements et flux de bout en bout

Résultats

  • Après le POC initial, 10 cas de test ont été automatisés avec succès avec Vision AI sur des dispositifs physiques situés dans le SeeTest Cloud.
  • La fonctionnalité d'authentification unique d'entreprise a été vérifiée sur plusieurs applications cibles.
  • Plusieurs équipes cherchent maintenant à déployer Vision AI dans les tests mobiles et les flux complexes de bout en bout sur des applications difficiles d'accès et difficiles à automatiser.
  • Livraison 5 fois plus rapide

La voie vers des tests entièrement autonomes ?

On me demande souvent si et quand les tests entièrement autonomes pourraient devenir une réalité. C'est un sujet que j'aime discuter. Mais avant d'aborder ce sujet, examinons de plus près les deux mots qui composent ce terme.

Autonome, qui signifie "sans intervention humaine", est assez simple. Les tests sont plus difficiles car leur nature investigatrice et inquisitrice ne se prête pas à l'automatisation. Ce que je m'apprête à décrire peut être qualifié de "vérification autonome". Avec cela en tête, continuons.

Avec des outils avancés comme Vision AI (voir son propre chapitre) et d'autres moteurs d'automatisation intelligents, les problèmes de vérification automatisée sont passés de "Comment automatiser cette interface de manière fiable" à des problèmes de plus haut niveau. Les humains sont encore très majoritairement responsables de la création des contrôles automatisés : ils décrivent les entrées à remplir, les boutons à cliquer, etc. C'est le premier horizon.

La meilleure définition du passage à l'autonomie est la suivante : "Décrire devient décider". Avec des outils tels que l'analyse d'impact intelligente (par exemple, Tricentis LiveCompare), c'est déjà le cas. Vous n'avez pas besoin de décrire les tests à exécuter ; il vous suffit de décider si les recommandations de l'outil répondent à vos besoins. C'est formidable dans les systèmes fermés tels que SAP, Salesforce et ServiceNow (où ces offres brillent). Avec l'aide de l'IA, cette tendance va s'étendre bien au-delà, dans le domaine des applications sur mesure/personnalisées.

Fantastique ! Dans le futur, il suffira d'imprimer les activités possibles de la machine et de lui donner le feu vert ! Oh... pas si vite. Vous voyez, ces systèmes fermés n'ont pas seulement des processus définis, ils ont aussi des résultats définis (l'oracle). Ce n'est pas le cas des applications sur mesure. S'il est possible de déterminer les actions à entreprendre de manière générique (en examinant les personnes qui effectuent ces actions), il n'est pas toujours possible d'extraire la composante "Pourquoi". Lorsqu'un utilisateur exécute une transaction, son regard se porte sur le haut de l'écran pour vérifier que la valeur du "Montant" est correcte. Cette validation n'est pas saisie, et le processus automatisé passe donc à côté de l'objectif de la vérification (qui était de déterminer non seulement que la transaction a été traitée, mais aussi qu'elle l'a été correctement).

Les perspectives ne sont toutefois pas sombres. Bien que la vérification "entièrement autonome" soit encore loin, la tendance à "décrire pour décider" éliminera une tonne de travail qui embarrasse les ingénieurs qualité aujourd'hui. Analyser les scénarios produits, injecter des validations et décider lesquels exécuter est une tâche bien plus agréable que de se demander pourquoi le bouton de connexion n'a pas de champ d'identification stable.

Cela dit, il faut faire attention à certaines choses :

  1. Attention au spam de scénario de test
    Si vous vous lancez dans un projet de test autonome et que votre équipe revient avec un outil ou un processus qui "génère des milliers de tests", méfiez-vous. Vous devez toujours analyser ces tests, injecter des validations et les déboguer s'ils "échouent". La devise "des tests moins nombreux et ciblés" a été un bon guide au cours des 20 dernières années, et elle l'est toujours aujourd'hui.
  2. Examinez le comment
    Lorsqu'on vous dit que vos tests peuvent être générés automatiquement, creusez un peu pour savoir comment cela se passe. L'IA n'est pas magique. Si quelque chose semble être magique, il s'agit très probablement d'une invention. Votre équipe devrait être en mesure de vous dire que le processus examine les modèles d'utilisation, analyse les définitions existantes (exactes), ou a une autre source de la façon dont il définit le test. "Secouer l'application et générer des tests à partir de celle-ci" reste fermement dans le monde de la pensée magique.
  3. Posez des questions sur la maintenance
    Avoir un millier de tests, c'est comme avoir un millier de détecteurs de fumée. Si vous êtes propriétaire d'une tour d'habitation, c'est probablement justifié. Si vous êtes propriétaire d'une maison, vous passerez deux heures à les éteindre tous lorsque vous brûlerez les toasts. Les tests qui échouent doivent être examinés, mis à jour ou rejetés. Renseignez-vous sur la nature de cette méthode pour savoir si l'autonomie vous fera réellement gagner du temps à long terme.

Malgré cela, l'avenir du contrôle autonome semble très prometteur. Notre objectif est de concevoir une méthode permettant de générer les meilleurs tests - et les moins nombreux - nécessaires pour atteindre le niveau d'assurance souhaité. Nous sommes impatients de poursuivre ce voyage.

About the author

Wolfgang Platz

Wolfgang Platz

Wolfgang is the force behind innovations such as model-based automation and the linear expansion test design methodology.  The technology he developed drives Tricentis’ Continuous Testing Platform, which is recognized as the industry’s #1 solution by all top analysts. Today, he is responsible for advancing Tricentis’ vision to make enterprise continuous testing a reality across Global 2000 organizations. His most recent book is “Enterprise Continuous Testing: Transforming Testing for Agile and DevOps.”

Prior to Tricentis, Wolfgang was at Capgemini as a group head of IT development for one of the world’s largest IT insurance-development projects. There, he was responsible for architecture and implementation of life insurance policies and project management for several projects in banks.

Wolfgang holds a Master’s degree in Technical Physics as well as a Master’s degree in Business Administration from the Vienna University of Technology.

About Tricentis

Tricentis is the global leader in enterprise continuous testing, widely credited for reinventing software testing for DevOps, cloud, and enterprise applications. The Tricentis AI-powered, continuous testing platform provides a new and fundamentally different way to perform software testing. An approach that’s totally automated, fully codeless, and intelligently driven by AI. It addresses both agile development and complex enterprise apps, enabling enterprises to accelerate their digital transformation by dramatically increasing software release speed, reducing costs, and improving software quality. Tricentis has been widely recognized as the leader by all major industry analysts, including being named the leader in Gartner’s Magic Quadrant five years in a row. Tricentis has more than 1,800 customers, including the largest brands in the world, such as McKesson, Accenture, Nationwide Insurance, Allianz, Telstra, Moet-Hennessy-Louis Vuitton, and Vodafone.

Visit us at www.tricentis.com

 

 

 

Tricentis-Logo-1.png