1- Quelques enjeux autour du test applicatif
Après échanges avec différents acteurs concernés, il apparaît que la croissance des besoins de test et d’automatisation et la multiplicité d’environnements applicatifs à qualifier impliquent d’évoluer sur les stratégies de test tant sur l’approche méthodologique qu’organisationnelle. Il devient alors nécessaire de mutualiser les moyens de test tout en s’assurant qu’ils puissent répondre à l’ensemble des besoins techniques.
Pour des raisons organisationnelles, il convient d’élargir les possibilités d’automatisation des tests à une population moins experte en codage, tout en ayant la capacité à travailler dans un environnement Cross Technologie combinant des applications hétérogènes.
De plus, les services applicatifs packagés, tels que les CRM ou ERP, qui intègrent également des applications tierces, nécessitent de devoir adapter la stratégie de test afin de couvrir l’ensemble des fonctionnalités proposées et ainsi de répondre aux exigences croissantes de qualité. Par ailleurs, ces applications comportent des balises dynamiques, impliquant un temps de maintenabilité important. Cela va à l’encontre des besoins d’optimisation du temps consacré au test.
L’utilisateur de l’application étant toujours au cœur des préoccupations, la qualité de l’UX (User Experience) est aussi un enjeu important donnant lieu à des campagnes de tests exploratoires, longues et couteuses.
2- La proposition d’Eggplant DAI avec sa Technologie Computer Vision.
La technologie Computer Vision de Eggplant DAI propose une approche impliquant un moteur d’Intelligence Artificielle permettant de se substituer au regard humain, qui s’apparente à un œil digital. Cette technologie est à présent arrivée à maturité et offre de nombreuses possibilités :
- Tester l’ensemble des fonctionnalités du front-end en lieu et place d’un vrai utilisateur avec l’utilisation des algorithmes d’OCR et reconnaissance d’images
- Prendre en ligne de compte l’UI (user interface) dans la vérification du bon fonctionnement et donc la mesure de l’UX, notamment par la mesure du temps d’affichage, par le fait que le texte soit lisible ou que les images soient bien localisées et ne masquent pas une fonctionnalité
- Se substituer à certaines campagnes de tests exploratoires afin de réaliser les tests de manière automatique (Tests combinatoires avec la création d’un modèle « Jumeau Numérique »)
- Tester l’ensemble des fonctionnalités d’une application packagée (CRM, ERP…) en prenant en compte l’ensemble du service applicatif mis à disposition (y compris les applications tierces)
- Tester tous les environnements applicatifs en s’affranchissant totalement du code (par la prise en contrôle de l’UI et l’utilisation du Computer Vision).
Grâce à cette technologie basée sur nos algorithmes d’OCR (reconnaissance de caractères et lecture du texte) et de reconnaissance d’images, Eggplant DAI permet d’agir comme un vrai utilisateur. En effet, Eggplant DAI est en mesure de prendre le contrôle de l’UI et de pouvoir réaliser l’ensemble des actions permises (clic, double-clic, défilement de page, écriture, glissement d’écran, prise de contrôle de la souris). De plus, il peut identifier tous les évènements et défauts perceptibles à l’écran et mesure la réactivité de l’application afin de déterminer l’UX.
3- Rôle de l’IA dans le cadre du fonctionnement du Computer Vision
L’IA permet d’aider à l’identification et à la saisie de l’ensemble des éléments de texte et d’image tout facilitant l’automatisation et en réduisant le risque de faux positif.
La technologie Computer Vision d’Eggplant ne se limite pas à une simple photo de l’image. A travers ses algorithmes de traitement et son moteur d’IA, Eggplant DAI analyse l’image, et fait la distinction entre le fond d’écran et l’objet graphique principal. En effet Eggplant DAI utilise simultanément différents algorithmes analysant l’image à la saisie et permettant ainsi une détection de l’élément graphique quelle que soit sa localisation à l’écran.
A titre d’exemple, la photo ci-dessous présente les différents algorithmes de traitement permettant à Eggplant DAI de pouvoir prendre en compte l’image en tenant compte de sa physionomie (par exemple, élément graphique avec ou sans texte). Lors de la phase de test, Eggplant DAI choisit l’algorithme le plus adapté qui lui permet de maximiser la reconnaissance de cette image.
Afin de prendre en compte la réalité du service applicatif rendu aux utilisateurs, Eggplant DAI permet de jouer sur la tolérance aux modifications par une analyse pixel par pixel avec une précision plus ou moins importante. Par ailleurs, l’IA permet de localiser l’objet ou le texte où qu’ils soient à l’écran.
A tire d’exemple, dans le cas où plusieurs logos similaires sont présents à l’écran, Eggplant DAI est capable d’identifier seul le bon logo sur lequel cliquer. Pour cela il peut utiliser différents critères selon le contexte :
- Lecture du label accompagnant le logo
- Zone de localisation de l’objet graphique sur la page
- Ordre de découverte du logo lors de son analyse de l’écran.
Vidéo Eggplant DAI : Reconnaissance d’images et recherche d’un logo indépendamment de sa localisation à l’écran
S’agissant de la lecture de caractères, Eggplant DAI intègre un module d’OCR supportant plus de 180 langues permettant d’identifier du texte et de le lire en lieu et place d’un vrai utilisateur. Cette technologie permet :
- D’identifier l’intégrité d’un document et d’un message
- D’identifier qu’un texte est bien identifiable et lisible
- D’identifier qu’un texte n’est pas tronqué à l’écran
- De faire la différence entre différents logos via leur label
- De reconnaitre un champ à remplir grâce à son label
- De réaliser des actions de RPA avec la lecture et l’écriture de textes et de valeurs numériques
- De tester une application packagée en s’affranchissant des balises et de l’environnement graphique (exemple : un seul script pour tester les environnements Lightning & Classic de Salesforce)
Vidéo Eggplant DAI : Lecture d’un document et recopie d’un texte en utilisant notre technologie OCR
4- L’IA moteur du test des combinatoires fonctionnelles
Même si Eggplant DAI propose une simplification de la création de tests cases métiers prenant notamment en compte la qualification de l’UI, il reste néanmoins évident que selon le type d’application, il sera difficile de tester l’ensemble des cas de figure ou parcours utilisateur.
En réponse à cette problématique et grâce au progrès de l’IA, Eggplant DAI propose la création d’un modèle « Jumeau Numérique » permettant de travailler directement sur une cartographie fonctionnelle logique de tout ou partie de l’application à tester. Ainsi, chaque bloc fonctionnel du modèle peut faire appel à différentes ressources techniques (test en balise et/ou computer vision, API, Base de données). Eggplant DAI, à l’aide de son moteur d’IA, propose ensuite la réalisation de campagnes de tests combinatoires permettant de qualifier automatiquement l’ensemble des permutations fonctionnelles possibles, de 4 fonctions contigües, à travers le modèle défini.
Exemple d’un modèle Jumeau Numérique de Eggplant DAI
L’exemple ci-dessus est un modèle de test matérialisant, 3 pages sur un site web avec leurs différentes fonctionnalités que nous souhaitons tester. Les flèches représentent les liens logiques permettant de passer d’une page à l’autre. L’ensemble des fonctionnalités peut être testée de manière totalement aléatoire grâce à notre approche de tests combinatoires et ainsi découvrir des défauts qui potentiellement n’auront pas été détectés lors de l’utilisation des cas de tests métiers.
Pour ce faire, l’IA suit deux règles directrices principales qui vont guider la réalisation de tests exploratoires. :
- Détection des défauts possibles avec notre moteur d’apprentissage
L’objectif d’une campagne de tests combinatoires est de détecter les défauts qui n’auraient pas été identifiés lors de l’exécution de test cases métiers. Lorsqu’un défaut est détecté, l’IA apprend du contexte de la fonction en défaut afin de prioriser l’ensemble des fonctionnalités possédant une similarité. A titre d’exemple, si la fonction en défaut est un bouton graphique, Eggplant DAI priorisera dans sa campagne de tests combinatoires l’ensemble des fonctionnalités utilisant le même bouton graphique.
- Couverture de l’ensemble des cheminements fonctionnels à travers le modèle
Eggplant DAI va chercher à tester l’ensemble des fonctionnalités et cheminements (jusqu’à 4 fonctions contigües) présentes dans le modèle. Pour ce faire, Eggplant DAI prend en compte différents paramètres :
- Le test de tous les éléments fonctionnels individuels
Ce test permet d’assurer que chaque fonction a bien été testée sans toutefois qualifier la fonctionnalité d’un point de vue contextuel
- Le test de cheminements jusqu’à 4 fonctions contigües
Le but d’une campagne de tests combinatoires n’est pas de remplacer l’automatisation de cas de tests métiers mais bien de compléter la phase de test avec un objectif de recherche de défauts sur l’ensemble du modèle de test défini. Pour autant, il reste essentiel de contextualiser le test à travers l’enchainement de plusieurs fonctions contigües. Cela permet également de détecter des relations de cause à effet engendrant l’apparition d’un défaut.
A gauche du modèle, la liste de l’ensemble des cheminements à 4 fonctions contigües dont la première action est la fonction « Password ». Au-delà de cette liste, l’IA détermine l’ensemble des combinatoires à travers le modèle défini.
- Les variables
Sans variable, pas de contexte. Eggplant DAI possède un mécanisme de gestion de variables permettant de sélectionner la bonne variable selon le cheminement à l’aide de la définition de préconditions. Ainsi les tests combinatoires permettront de jouer des mini scenarii représentatifs.
- Comportement aléatoire
Prenant en compte que le cheminement d’un utilisateur n’est parfois pas rationnel, Eggplant DAI identifie des tests prenant en compte des cheminements mettant en jeu des allers/retours ou autres comportements qu’il est difficile de prévoir d’un point de vue purement métier. Le comportement aléatoire peut également être orienté avec la possibilité d’ajouter des préconditions dans le modèle (exemple : demander de renseigner le mot de passe avant le nom d’utilisateur lors de la phase d’authentification).
Comme indiqué, lors de la campagne de tests, l’IA priorise les tests à réaliser en fonction des informations collectées telles que :
- L’historique des résultats des tests cases métiers préalablement réalisés
- Le niveau de criticité de chaque fonction définie lors de la configuration du modèle
- Les défauts identifiés pendant la campagne de tests combinatoires
Le temps de réalisation de la campagne de tests combinatoires, peut être défini selon différents critères :
- Temps imparti prédéfini
- Pourcentage de couverture du modèle
- Nombre de cycles de tests à réaliser
A l’issue des campagnes de tests combinatoires, les rapports produits permettent, de manière intelligible, de cibler les défauts avec un maximum d’informations, facilitant ainsi la décision d’actions correctives.
Exemple : Rapport de couverture indiquant par des nuances de bleu le niveau de couverture et la fréquence des tests.
5- Cas d’usage
- Test d’une application packagée
A l’aide de sa technologie Computer Vision, Eggplant DAI est en mesure de tester les applications packagées, telle que Salesforce ou SAP, en s’affranchissant du code et des balises dynamiques. Eggplant DAI permet au testeur de saisir les différents process métier par une action d’enregistrement, puis d’automatiser les scripts de test. Cette méthode a l’avantage de prendre en compte l’ensemble des applications tierces qui sont intégrées dans l’environnement. Par ailleurs, Eggplant DAI propose une approche modèle « Jumeau Numérique » permettant de réaliser des campagnes de tests combinatoires.
Vidéo Eggplant DAI : Test de Salesforce Lightning intégré avec Slack
- Test d’une application mobile
Totalement agnostique au code applicatif, Eggplant DAI est donc en mesure de tester toutes les applications mobiles (Web ou natives) dans les différents environnement mobiles (Androïd, iOS…). Eggplant DAI sera en mesure d’exécuter l’ensemble des actions manuellement possibles et de tester les différentes fonctionnalités souhaitées. Eggplant DAI est mesure d’automatiser les mobiles simulés et les mobiles réels.
Vidéo Eggplant DAI : Automatisation d’une application sur Androïd et iOS
- Test d’applications industrielles
Eggplant DAI convient bien également aux applications industrielles dans de nombreux domaines (Spatial, Défense, Santé, Automobile). Eggplant DAI automatise l’ensemble des fonctionnalités accessibles à l’écran et lit les résultats afin de les comparer aux valeurs attendues. Par ailleurs, Eggplant DAI est capable de suivre un élément graphique ou un label qui se déplace sur l’écran. Eggplant DAI est également utilisé pour tester les applications de PLM comprenant à la fois une partie Web et une partie client lourd permettant ainsi de tester l’ensemble des besoins fonctionnels.
Vidéo Eggplant DAI : Automatisation d’une application de Design PLM
6 – Conclusion : Apport de Eggplant DAI et de sa technologie de computer Vision et d’IA
A travers l’ensemble des possibilités qu’amène le computer vision et l’IA, Eggplant DAI permet d’automatiser facilement des scénarii complexes et permet la prise en compte d’applications qui ne pouvaient être qualifiées jusqu’alors que par le test manuel (ex : applications comprenant des cartographies). Par ailleurs, notre capacité de computer vision et de tests combinatoires participe à la démarche de test Shiftleft permettant ainsi à une organisation agile de vérifier l’apparition de défauts ou de régressions fonctionnels.
Eggplant DAI se révèle idéal pour couvrir les besoins suivants :
- Plateforme de test agnostique qui s’adapte à tous les contextes et environnements applicatifs
- Automate de test accessible aux profils technico-fonctionnels et métiers
- Test de services applicatifs packagés prenant en compte le test de l’ensemble des fonctions
- Couverture fonctionnelle maximale sur un périmètre applicatif (modèle Jumeau Numérique)
- Mesure automatique de l’UX
- Automatisation d’applications ayant une forte appétence au graphisme (cartographie, jeu, Application de PLM, portail commercial, application industrielle, lecture de code barre,..)
- Automatisation d’une architecture cross platform mettant en jeu simultanément différentes applications (Ex : authentification multi facteurs Web et Mobile)
- Automatisation d’applications dont le code est cloisonné
- Automatisation de campagnes de tests exploratoires
Si vous souhaitez plus d’information sur Eggplant DAI, n’hésitez pas à nous contacter par email à l’adresse thierry.zuzel@keysight.com ou à consulter le site https://www.eggplantsoftware.com/
Auteurs :
Thierry Zuzel,Responsable Commercial Eggplant France & Europe du Sud
Anthony Bianay,Architecte Solution Eggplant DAI