1 – Enjeux
Les applications Packagées ou Progiciels, comme la plupart des applications critiques, doivent être testées régulièrement afin de vérifier qu’il n’y ait pas de régressions fonctionnelles. A cet égard, ces applications présentent des spécificités qu’il convient de prendre en compte :
Cœur de l’application et customisation
La plupart des applications packagées offrent la possibilité de développer ses propres fonctionnalités et ainsi de customiser l’application selon les besoins métiers de l’entreprise. Cela implique qu’au-delà du rythme des releases fournies par l’éditeur sur le cœur de l’application, il faut également prendre en compte le rythme des mises à jour sur la customisation, étant précisé que la méthodologie de développement peut différer entre le code du cœur de l’application et la partie customisée.
Balises Dynamiques
L’éditeur de l’application modifie assez fréquemment la structure du code ce qui peut conduire, sur du web par exemple, à des modifications des identifiants de balises HTML d’une version à une autre. Dans le cadre d’une automatisation dont la stratégie est d’utiliser une interaction avec la couche objet, les temps de maintenabilité des scripts peuvent être particulièrement longs, ce qui peut engendrer un coût de maintenance important lors de chaque montée de version dans la mesure où l’ensemble des scripts d’automatisation devront alors être revus.
Le client lourd
En complément, il existe encore beaucoup d’applications Packagées en fonctionnement qui reposent sur une base de client lourd. Dans ce cas, l’automatisation s’avère extrêmement complexe car les éléments de code permettant d’automatiser au niveau de la couche objet sont alors difficiles à identifier.
Les tests de bout-en-bout cross plateforme
Dans le cadre des tests de non-régressions sur les applications métiers, il n’est pas rare d’avoir à tester des parcours métiers en prenant en compte plusieurs interfaces applicatives mettant en jeu une application web et une application mobile, une application web et un client lourd. Cette situation, qui fait intervenir des environnements applicatifs différents, ajoute une complexité et allonge le délai de rédaction des scripts, si toutefois l’automatisation est réalisable avec une approche traditionnelle.

2 – Une réponse : Eggplant, Le computer Vision et un scripting avec un Langage Naturel
Le computer vision
Eggplant est une solution d’automatisation qui base sa stratégie sur une approche Computer Vision. Eggplant se comporte comme un être humain en interagissant avec l’interface de l’application sous test via de la reconnaissance de texte et de la reconnaissance d’éléments graphiques.

Eggplant n’est pas un outil qui se contente de reconnaitre ou de comparer des images. En effet, le moteur OCR (Optical Character Recognition) permet à Eggplant de lire du texte quelle que soit la langue ou la police de caractère utilisées. Ainsi, si on demande à Eggplant de lire un texte initialement écrit en Arial et qui évoluerait vers une police Times New Roman, le script de test ne s’en verrait aucunement impacté. Dans la plupart des applications packagées, le texte porte « le métier ». Par conséquent, sur une application UI forme, si le visuel change mais que le texte ne varie pas, l’automatisation n’en sera pas impactée.
En complément Eggplant utilise également de la reconnaissance d’élément graphique dont la maturité des algorithmes lui permet de reconnaitre des images en 3 dimensions en mouvement. En effet, Eggplant possède de nombreux outils permettant de jouer sur la tolérance de pixélisation mais également sur le contraste. Dans tous les cas de figure, qu’il s’agisse de texte ou d’image, Eggplant n’est pas sensible à leur localisation. Comme une vraie personne, dès lors que l’élément est visible à l’écran, Eggplant pourra le détecter et agir dessus.
La mesure de l’User Expérience du service applicatif
La maturité des algorithmes de Computer Vision d’Eggplant lui confère la possibilité de mesurer la performance de l’application sous test. En effet, Eggplant mesure le temps d’exécution de fonctions métiers au niveau visuel de l’interface. Il sera donc possible d’obtenir des logs de temps de réponse permettant de suivre la performance du Service Applicatif rendu aux utilisateurs.
Les tests de bout-en-bout sur les flux métiers
Au-delà du test d’interface, Eggplant est en mesure de tester le bon fonctionnement des flux métiers entre plusieurs applications / interfaces ou entre un front-end et un back-end. Eggplant, grâce à sa capacité de lecture et de comparaison, est en mesure de vérifier qu’il est possible de trouver les mêmes informations entre une base de données et une interface front ou entre plusieurs interfaces ayant en charge des responsabilités métiers différentes (Ex : CRM et ERP ou PLM et ERP).
Le scripting avec un langage naturel
Eggplant utilise un langage naturel utilisant une liste de mot clés tels que Click, Double Click, Scroll Up, Scroll Down, TypeText, Drag, Drop, Wait for, Swipe, Readtext. L’intelligibilité de notre langage contribue à une montée en compétence rapide et une meilleure implication du business lors de la phase de conception des cas de test. En complément, Eggplant propose un mécanisme d’autocomplétions afin de faciliter la création du script mais également sa maintenabilité favorisant ainsi le ROI. Eggplant donne accès à la variabilisation des scripts avec une source de données externe. Outre le langage naturel, Eggplant permet l’utilisation de call API, d’expression régulières et également de formule d’algorithmie comme des boucles ou des règles conditionnelles.

3 – Quelques cas d’usages de tests de non-régression avec Eggplant
Création et gestion de l’opportunité sur Salesforce
Dans ce cas de test, on peut observer Eggplant automatiser les tests sur une plateforme Salesforce customisée mettant en action la création et la gestion d’une opportunité en interagissant avec les fonctions accessibles visuellement sur l’interface web. Eggplant va pouvoir actionner des menus déroulant, un calendrier et des éléments graphiques métiers.
Test End-to- End Mobile et Web sur Salesforce
Dans ce cas d’usage, Eggplant est connecté simultanément à l’interface d’un vrai device mobile comportant l’application native de Salesforce et l’interface Web de cette même application. Eggplant créé une opportunité sur le device mobile puis va vérifier que l’opportunité est bien visible sur l’interface web.
Un autre cas d’usage se rapporte à l’authentification Multi facteurs (MFA) où Eggplant va utiliser un vrai device mobile afin de finaliser le process d’authentification afin de pouvoir accéder à l’application Salesforce.
Comparaison entre les données présentes sur un document PDF et Salesforce
Eggplant étant totalement agnostique aux environnements applicatifs, l’application est en mesure de s’interface sur un document PDF afin de le lire et de mettre en mémoire des informations qu’il comporte. Eggplant peut également se connecter sur l’interface web de Salesforce afin de vérifier s’il peut trouver, visuellement, les mêmes données. Dans l’exemple ci-après- Eggplant recherche et compare les valeurs de prix HT, TTC et de TVA.
Tests de non-régression sur le CRM PEGA
Eggplant convient également aux applications orientées Finance telles que PEGA. Eggplant est en mesure de tester l’ensemble des actes métiers accessibles visuellement via l’interface.
Servicenow et insertion de documents PDF
Eggplant, au-delà des tests de non-régression sur l’interface de Servicenow, est en mesure d’associer des document PDF au ticket d’incident IT, via l’explorateur Windows, en utilisant la capacité de lecture de textes OCR.
SAP client lourd
Eggplant peut tester les applications packagées client lourd. Ici, est présenté l’exemple de SAP GUI où Eggplant réalise le parcours métiers via la reconnaissance de textes (OCR) et la reconnaissance d’images. Eggplant est également en mesure d’interagir avec des tableaux de données en écrivant, en effaçant ou en comparant les données de différents tableaux.
Tests de non-régression sur les applications de Digital Continuity, CAD/PLM
Eggplant est capable de réaliser des cas de test complexes de bout-en-bout en débutant un parcours métiers sur une application de CAD incluant des images en 3D en mouvement avec une application de PLM, UI form.
Test de bout-en-bout front-end / back-end et comparaison de données métiers
Eggplant peut comparer les données lues dans un back-end et celles accessible visuellement sur le front d’une interface. Dans l’exemple ci-après, Eggplant, à l’aide d’un call API, va rechercher des données liées à un produit avec son prix, son nom et son visuel. Une fois ces données en mémoire il vérifie sur l’interface web si ces données sont bien visuellement présentes.
Comparaison de documents et identification des différences
Eggplant, à l’aide de son moteur de Computer Vision, est en mesure de lire et de comparer des documents, et ainsi d’identifier les différences entre deux versions d’un même document.
4 – La présentation des résultats et des dashboards
Eggplant est en mesure de produire des dashboards de résultats qui, par jeu de forage, permettent de passer d’une vision globale à une vision détaillée pour chaque test. En complément, Eggplant peut prendre des photos d’écran, notamment lors de l’échec fonctionnel, ou enregistrer des vidéos d’exécution de cas de tets. L’ensemble des logs de tests peut également être exporté.
Mesure de l’User expérience et de la stabilité du service applicatif
Eggplant visualise l’interface, comme une vraie personne, et par conséquent, est capable de mesurer le temps de réaction de l’application sous test entre une action réalisée et une réaction attendue. De plus, Eggplant peut mesurer le temps d’exécution d’un script en prenant en compte le visuel de l’interface. L’ensemble des mesures des logs de temps de réponse peut être exporté vers un outil de BI pour obtenir un dashbord de suivi de la performance de l’application sous test.

5 – Intégration CI/CD
Eggplant peut totalement être intégré dans un pipeline CI/CD et notamment être orchestré par Jenkins puis envoyer le statut des résultats à xRay. Par ailleurs, l’ensemble des scripts peut être posté dans un GIT avec la possibilité de partager les scripts d’automatisation et de gérer le versionning. Sur la partie exécution, Eggplant propose des agents headless qui peuvent, jour et nuit, tester les applications.
6 – Conclusion
Eggplant est une solution d’automatisation des tests fonctionnels totalement agnostique en mesure de tester l’ensemble des parcours métiers de vos applications packagées (progiciels). Le moteur de Computer Vision permet de prendre facilement en compte le cœur des applications ainsi que l’ensemble de la customisation. N’étant pas sensible aux balises HTML dynamiques, Eggplant assure la robustesse des scripts sur la durée et améliore le ROI de vos campagnes de test par le partage et la réutilisabilité des assets d’automatisation. Au-delà des tests fonctionnels, Eggplant est également en mesure de mesurer le ressenti utilisateur sur l’usage des services applicatifs.
Contact
Pour plus d’information sur la solution Eggplant, veuillez contacter :
Thierry Zuzel, Directeur Commercial France
Email : thierry.zuzel@keysight.com


