La taverne du testeur

Les outils d’automatisation sans script

Attention: cet article a été écrit il y a un peu plus d’un an. Les principes généraux sont toujours là mais il y a eu des évolutions sur les outils présentés

Le mouvement du test sans script se développe

J’ai écrit en septembre 2020 un article sur les outils d’automatisation sans script. J’y parlais d’outils avec des objectifs distincts :

  • Être accessible à tout profil

C’est-à-dire que ces outils sont pensés pour être pris en main et maitrisé par toute personne travaillant dans l’informatique, même des personnes avec peu voir sans appétence technique. On peut penser à des profils métiers ou des testeurs ne maitrisant pas le code mais très compétents dans leur faculté à concevoir des tests. Les outils basés cet objectif ont généralement fait un travail important sur l’ergonomie, l’affichage des tests mais aussi la sélection des identifiants avec des outils de captures souvent visuels et cachant la partie technique.

  • Être capable d’automatiser toutes les technologies avec un même outil

C’est-à-dire avoir un seul outil (et donc la « maitrise » d’un outil unique) pour automatiser un grand nombre de logiciels ou parties de logiciels comme des API, des IHM web, des applications lourdes ou mobiles… Les outils basés sur cet objectif ont beaucoup travaillé sur l’architecture de leur logiciel qui proposent une surcouche au technique, surcouche qui s’adapte ensuite aux différentes technologies.

Certains outils proposent une conjugaison de ces 2 objectifs (qui arrive souvent avec la maturation de l’outil) avec une approche accessible tout en offrant la possibilité d’automatiser ces tests sur différentes technologies. Ces technologies sont tellement mâtures que certaines entreprises comme Mr Suricate ont même développé leur propre outil sans script pour proposer de l’externalisation de l’exécution et de l’automatisation des tests à ses clients.

Enfin, comme tout outil d’automatisation ils n’ont de véritable intérêt que s’il est possible d’intégrer les tests qu’ils génèrent dans des chaînes d’intégration continue. Ces outils répondent généralement de 3 manières à cette problématique. La 1ère est la génération de scripts qui peuvent être placés dans des ALM (outils de gestion de test comme HP ALM, Qtest, XStudio, Xray…) et donc utiliser les ALM pour être intégrés à la CI-CD, la 2ème est de proposer un outil avec des API qui peuvent être appelés par des intégrateurs comme Jenkins ou Gitlab CI et la dernière est la génération de scripts de test pouvant être directement intégré dans n’importe quel répertoire pour être gérés de la manière choisie par l’équipe comme par exemple dans un dépôt Git. Dans tous les cas on ne diffère que très peu des outils d’automatisation de test standard sur ce point.

Ces outils, que l’on pourrait appeler, outils de la « 1ère génération d’automatisation sans script » se basent sur les principes d’automatisation des tests. Par « principes de base » vous pouvez entendre la construction d’un parcours de test avec des actions définies (généralement en se basant sur le code), et des vérifications qui s’enchainent. Chaque test est alors (sauf paramétrisation) lié à un terminal ou une technologie.

Ci-dessous quelques outils qui représentent bien ces outils d’automatisation. Ces outils sont maintenant fiables, nombreux et peuvent s’adapter à de nombreux contextes dont certains ont été présentés lors de la JFTL 2021 :

Agilitest

Agilitest est une solution d’automatisation sans script qui est accessible à des profils non techniques et qui permet également à ces mêmes profils de comprendre les bases de l’automatisation avec des concepts que l’on acquiert en l’utilisant comme l’identification de l’unicité des éléments, la factorisation ou encore la gestion des données.

Il est également bon de noter que cet outil propose une automatisation web, mobile, API et desktop ce qui permet de faire des parcours de test multi-modaux. L’équipe Agilitest a particulièrement mis l’accent sur la robustesse des tests et la réutilisation des scripts, ce qui permet de limiter la maintenance et donc d’avoir très forte couverture fonctionnelle avec sa régression.

Enfin, Agilitest n’est pas tout à fait un outil « sans code ». En effet, l’IDE d’Agilitest génère des scripts de test au format open source ATS. Ces scripts ressemblent à du RobotFramework, sont simples à lire et comprendre et peuvent surtout être exécutés sans licence Agilitest.

Ci-dessous, une présentation de l’outil faite en 2018 (le principe de l’outil est inchangé):

[googleapps domain= »drive » dir= »file/d/1TUqkm5l-tUNtLvKAopvX_cpVWOzIBigK/preview » query= » » width= »640″ height= »480″ /]

HorusTest

HorusTest est une solution SAAS tout en une d’automatisation de test. On est ici clairement sur une solution permettant aux profils purement fonctionnels de faire de l’automatisation avec un travail poussé sur l’ergonomie et une facilitation de la factorisation avec la possibilité de le faire à posteriori.

L’outil propose les fonctionnalités principales d’un ALM pour ses tests automatisés : une gestion des tests, une planification facile de l’exécution et une gestion des rapports.

HorusTest n’automatise par contre pas toutes les technologies. Les applications lourdes, ne peuvent pas être automatisées.

Voici à quoi ressemble un test sur HorusTest :

Katalon

Katalon est peut-être le logiciel d’automatisation sans script le plus connu. Il propose, en plus de l’automatisation des tests, une gestion de ces derniers. Par rapport à l’automatisation en elle-même, il est possible de se servir d’un enregistreur (qui peut encore être amélioré), de réaliser ces tests en mode graphique de façon rapide voir même de tout faire sans l’IDE.

L’intégration de Katalon avec d’autres outils est également possible.

Kalios Test

Kalios Test propose également une automatisation sans script avec peu (ou pas) de compétences techniques dès lors où certains critères ont été initiés.

Kalios se différentie des outils précédents de 2 manières. La première c’est qu’un des objectifs de Kalios est de réduire la maintenance. Afin de répondre à cette problématique Kalios a opté pour sa seconde différence car il s’avère que Kalios ressemble beaucoup à un outil de MBT (Model Based Testing) en proposant des tests sous forme de parcours applicatifs visuels (plusieurs tests étant affichés sur 1 parcours). Cet outil est également un outil qui existe depuis de nombreuses années et qui est donc maintenant parfaitement mature. Voici à quoi peut ressembler des tests dans Kalios :

Leapwork

Leapwork propose une automatisation des tests à travers un parcours applicatif où l’accent a été mis sur l’accessibilité. Leapwork est un outil d’automatisation facile d’utilisation, de par son ergonomie et le peu de compétences techniques nécessaires pour implémenter ses tests, tout en ayant des tests facilement compréhensibles par tous de par ses parcours visuels. Il est également bon de noter que Leapwork ne propose qu’un seul test par parcours mais que la limitation de la maintenance se fait très facilement par factorisation avec une étape pouvant en fait être un sous-parcours.

On peut ajouter que Leapwork est capable d’automatiser un grand nombre de technologies comme les applications web, mobiles, desktop ou SAP.

Voici à quoi peut ressembler un test avec l’approche visuelle de Leapwork, les flèches vertes définissent l’ordre d’exécution et les flèches bleues l’utilisation des données :

Test de création de compte en banque et validation de l’authentification pour le nouveau compte

TestProject

TestProject est un outil gratuit d’automatisation sans script dont la 1ère version est sortie en 2018 (sauf erreur de ma part cet outil n’est plus disponible sous cette forme). C’est un outil SaaS et donc utilisable dès lors où l’on a accès à un navigateur web. Il propose une automatisation web et mobile basé sur Selenium et pensé pour l’automatisation des IHM. Afin d’être accessible aux profils fonctionnels, TestProject propose un outil de capture performant qui permet d’initier ses tests automatisés :

Cerberus Testing

Cerberus Testing est une plateforme d’automatisation de test 100% open source né en France ayant pour but initial de permettre d’automatiser des tests Webs, mobiles et de bases de données. C’est aujourd’hui un framework d’automatisation de test plus large couvrant les tests d’applications mobiles, APIs (REST, GraphQL, Kafka) ainsi que les clients lourds.

Cerberus Testing est un outil KDT (Keyword Driven Testing) comme Robot Framework base sur des briques matures comme Selenium, Appium et Sikuli. La plateforme propose une interface web unifiée supportant l’ensemble des use-cases, avec des fonctionnalités de bibliothéques et d’exécution supportant la scalabilité des démarches d’automatisation

Voici à quoi ressemble un test exécuté :

MaTeLo

MaTeLo est un outil développé par All4Tec assez différent des outils d’automatisation traditionnels. En effet MaTeLo est avant tout un outil de MBT (Model Based Testing), son but initial n’est donc pas l’automatisation ! L’outil de cette liste qui se rapproche le plus de MaTeLo d’un point de vue automatisation pure est probablement Kalios même si MaTeLo est un outil plus puissant permettant de gérer énormément de paramètres comme des probabilités de transitions, des données, des types de couvertures ou encore la possibilité d’ajouter des éléments de logique.

Pour être honnête je trouve que les possibilités avec MaTeLo sont très importantes, néanmoins cet outil reste assez technique et complexe à bien prendre en main.

Enfin, MaTeLo propose une fonctionnalité que les autres outils de cette liste ne proposent pas : une génération et exécution des tests à la volée en concevant et exécutant des tests automatisés en direct (pour le web). On a une sorte de test exploratoire basée sur le Modèle créé ce qui est assez impressionnant et a l’avantage de ne vraiment pas avoir besoin de script tout en multipliant les tests.

Yest (début d’implémentation)

Yest n’est initialement pas un outil d’automatisation de l’exécution des tests. Yest est avant tout un outil de MBT pensé pour l’ATDD en proposant une communication visuelle à travers des parcours. Ces parcours assurent une factorisation des étapes de test, ce qui facilité l’automatisation. Partant de ce constat, Yest propose depuis quelques années des add-ons permettant d’initier des squelettes de scripts automatisés sous forme de KDT. Par « squellettes » vous pouvez entendre scripts automatisés appelant des fonctions non développées dans Yest mais à côté. Depuis peu, Yest propose de gérer cette automatisation avec un outil de capture basé sur Selenium ce qui permet maintenant de faire de l’automatisation de la conception (MBT) et de l’exécution.

Voici à quoi ressemble un parcours Yest pour une application mail :

Il est également bon de noter qu’en septembre 2020 je parlais de RobotFramework car : c’est un outil de KDT (Keyword Driven Development) souvent présenté comme un couteau suisse de l’automatisation des tests. Néanmoins je ne l’intègre plus aujourd’hui à cette liste car au final on travaille directement sur des scripts (même si plus faciles à lire que d’autres) et qu’il reste technique. Ce type d’outil est, selon moi, la genèse des outils sans script et je pourrais parler de « génération 0 » des outils sans script avec RobotFramework.

Le mouvement du test sans script se généralise

Depuis 2020 des éditeurs majeurs du test logiciel ont pris le virage du sans script en utilisant la force de l’IA. On peut voir les outils de ces éditeurs (au moins pour Eggplant et UFT IA) comme la « 2ème génération » d’outils d’automatisation sans script car ils poussent encore plus loin le concept « Être capable d’automatiser toutes les technologies avec un même outil » en proposant un seul test capable de s’exécuter sur différents environnements comme un ordinateur (différents navigateur) et un téléphone (Apple ou Android).

Ce virage explique pourquoi on voit actuellement apparaitre des outils comme :

Tosca de Tricentis

Tosca propose un outil sans script avec une bibliothèque de « fonctions » paramétrables. Il est alors assez simple de construire des scénarios de test intégrant ces fonctions prédéveloppées et ne demandant « que » les variables leur permettant de s’exécuter. Il est bon de noter que ces fonctions sont très malléables et que de nombreux paramètres sont implémentables. De même, d’autres outil de d’automatisation de Tricentis, comme DI (Data Integrity) l’outil de tests data, utilisent cette architecture.

Cette automatisation sans script propose l’utilisation de l’IA comme support pour accélérer l’écriture des tests, une facilitation de la maintenance avec des propositions de correction et une identification plus basée sur la reconnaissance d’image.

Bref, on remarque qu’avec le Tosca actuel on est sur une nouvelle génération d’outil d’automatisation. Génération initiée par des éditeurs ayant proposés des outils semblables aux outils présentés précédemment.

UFT One (à partir de la version 15 d’UFT) de Micro Focus.

UFT One est un outil assez proche, sur le concept de Tosca. Tout comme Tosca, UFT se sert de l’IA pour réduire le temps de création et de maintenance des tests. De même, avec un système d’identification se servant d’images il est possible d’avoir un seul test pour ses tests sur les différents mobiles, tablettes et PC.

Eggplant de Keysight

Eggplant de Keysight est peut-être l’outil qui pousse le plus l’utilisation de l’IA dans la reconnaissance d’image qui est fortement mise en avant dans la communication. Cette technologie « Computer Vision » basée sur des algorithmes d’OCR (reconnaissance de caractères et lecture du texte) et de reconnaissance graphique, permet à Eggplant d’agir comme un « vrai utilisateur ». Cette caractéristique lui permet d’être agnostique au code de l’application et ainsi de proposer des tests pouvant s’adapter à tous les environnements. Par ailleurs, plant se distingue par l’automatisation d’images 2D, 3D statiques ou dynamiques.

Eggplant propose également la construction d’un « jumeau numérique » pour aider lors de la conception de ses tests en créant une cartographie fonctionnelle logique, en voici un exemple :

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.

L’outil Eggplant est d’ailleurs utilisé à titre d’exemple dans le rapport de Sogeti sur l’état de l’art de l’IA pour le test que je ne peux que vous recommander.

Enfin, il me semble bon de mettre en avant que même si les outils Tosca, UFT One et Eggplant restent puissants ils nécessitent une montée en compétence (formation) plus conséquentes que pour d’autres outils déjà présentés et que leur licence reste assez plus élevée. Les outils présentés en première partie ont encore de beaux jours devant eux.

Au-delà du test sans script

Les outils de la 2ème génération sont très puissants, ils restent néanmoins très proche de l’automatisation « classique » des cas de test avec, même si ces étapes sont simplifiées, une écriture et un maintien des tests au même titre qu’un maintien de scripts.

On peut alors se demander si le sans script pourrait justement nous aider à s’affranchir de ces obligations ! Le sans script pourrait-il nous permettre d’avoir automatiquement des tests automatisés sans devoir passer par des scripts ?

Je ne parle pas ici de science-fiction mais bien de recherches qui sont actuellement faites. Certains outils commencent d’ailleurs à être assez mâtures pour voir des utilisations concrètes comme nous pourront le voir à la JFTL 2022 !

Je pense évidemment à des outils comme « Gravity » de Smartesting. Alors, attention, ces tests ne sont pas créés à partir de rien ! Gravity a besoin de logs (et donc d’une application en production) pour pouvoir proposer des tests. De même, la nécessité d’avoir des logs limitent l’utilisation actuelle à de la régression. Reste que cette possibilité permet de faire gagner énormément de temps… tout en ayant une base de sa régression basée sur l’utilisation réelle du logiciel.

Gravity est un outil positionné « shift-right » qui se concentre sur les tests de régression automatisés. Gravity s’appuie sur l’identification des parcours utilisateurs clés à partir de l’analyse automatique des logs de production pour proposer une génération et une automatisation des tests. Ainsi, non seulement la solution Gravity accélère-t-elle la production des tests automatisés (IHM ou d’API) mais elle garantit une pertinence liée à l’utilisation des tests créés.

L’image ci-dessous illustre la visualisation graphique que propose Gravity pour comparer la couverture des parcours utilisateurs clés par les tests existants. En quelques clics, Gravity vous permet de créer les tests automatisés importants qui manquent pour optimiser votre couverture.

Conclusion

Le monde du test est en pleine évolution et croissance. L’automatisation prend une place de plus en plus importante et les compétences ainsi que le temps pour pouvoir gérer cette automatisation des tests sont insuffisant. Les outils doivent donc être capable de s’adapter à un plus grand nombre de personne mais aussi être de plus en plus performant en diminuant autant que possible le temps nécessaire à certaines étapes. Les outils d’automatisation sans script sont un axe de travail efficace et fiable dans de nombreux contextes, ils restent néanmoins des outils assez récents qui ont encore une grande marge d’évolution.

Pensez à rejoindre le groupe « Le métier du test » si vous souhaitez échanger sur le test

Merci à tous ceux qui mettent « j’aime », partagent ou commentent mes articles

N’hésitez pas à faire vos propres retours d’expérience en commentaire.

Une réponse

  1. En terme de solution d’exécution de test automatisé sans script on pourrait ajouté Testrigor.

    Les solutions émergente autours de l’AI Générative ‘grand public’ présente également un potentiel intéressant en plus d’être pour l’instant ‘gratuite’ : Open Interpreter, SelfOperatingComputer & HyperWrite AI.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Agilité

2- Définir une user story selon la théorie

Ce sujet pourrait paraître évident. En réalité, il ne l’est pas. Il y a, en fait, une grande  incompréhension sur le terrain, de la définition de ce terme au regard de la théorie. Revenons sur ce sujet avant d’avancer sur les spécifications et les tests. Dans l’esprit des personnes qui

Lire la suite »
culture générale

A la recherche de la qualité perdue: les raisons de la perte

Introduction C’est une histoire bien connue, une histoire que tout acteur du logiciel a vécue ou vivra. Cette histoire commence comme cela : Il était une fois une application nommée New-Soft. New-Soft était aimée de ses utilisateurs, choyée par son équipe de développement, une application faisant l’unanimité, bref, une application

Lire la suite »