Dans le domaine du logiciel, la phase de test est une étape essentielle du cycle de développement. Représentant jusqu’à 40% de la charge totale d’un projet, force est de constater que les tests sont souvent chronophages et nécessitent une vigilance particulière et constante de la part des équipes.
Les nouvelles méthodes largement adoptées telles que le Lean, l’Agile, ou le DevOps permettent aux équipes de développement d’augmenter la fréquence de livraison de nouvelles versions des applications (selon l’étude « Continuous Testing Report 2019 », 58% des entreprises déploient déjà quotidiennement), les tests sont devenus le goulot d’étranglement. Leur automatisation devient donc un prérequis pour garantir un haut niveau de qualité logicielle.
La Robotic Process Automation (RPA) au service de vos tests fonctionnels
Historiquement les équipes de développement ont automatisés les tests les plus techniques : tests unitaires, tests d’intégration. L’automatisation des tests fonctionnels, notamment les tests de non-régression, au niveau de l’interface utilisateur n’est pas encore très développée. Les solutions d’automatisation de test existent depuis de nombreuses années, mais leur déploiement reste limité. La question « Avez-vous déjà pensé à confier vos tests fonctionnels à un robot ? » est pertinente. Dans cet article, nous allons donc vous montrer comment UiPath, une plateforme de « Robotic Process Automation » (RPA), en particulier son module « Test Suite », peut vous aider à les automatiser.
Robotic Process Automation : de quoi parlez-vous ?
Avant d’entrer dans le vif du sujet, un bref rappel sur la « Robotic Process Automation » (RPA) : cette technologie consiste à faire exécuter des actions par un agent logiciel, le « Robot », similaires à celle qu’un utilisateur humain lambda exécuterait : cliquer sur un bouton, saisir des caractères au clavier pour renseigner le champ d’un formulaire ou pour se logguer dans un système, etc. Le but étant de décharger les employés d’un ensemble de tâches à faible valeur ajoutée qu’un robot pourrait effectuer à leur place. Par exemple : copier des informations d’une application à une autre ou encore vérifier la cohérence de données entre différents systèmes, etc. Vous seriez étonnés du nombre de tâches chronophages et très répétitives qui sont encore le quotidien de nombreuses équipes métier !
La principale différence de la RPA, vis-à-vis d’autres solutions d’automatisation, est qu’il s’agit d’une approche ne nécessitant pas de modifier les systèmes à automatiser : le robot effectue ses actions sur l’interface utilisateur telle qu’elle est, que ce soit une application web, accessible via un navigateur Internet, ou une application « client lourd », exécutée sur Windows. Bien sûr le robot sait aussi effectuer des requêtes en base de données, faire appel à des Web Services, manipuler des données ou effectuer des actions sur des fichiers.
L’autre point important à noter est que la RPA, et en particulier la solution UiPath, suit une approche « Low Code » ou « No-Code ». C’est-à-dire qu’il n’est pas nécessaire d’être un développeur informatique chevronné pour designer le processus (la suite des étapes) que le robot doit suivre pour effectuer sa tâche.
Quel rapport entre RPA et tests fonctionnels ?
Un robot ne fait pas de différence entre exécuter un processus sur un environnement de production ou un environnement de test. Ce qui est nommé un processus dans le monde de la RPA, est un scénario de test dans celui de la Qualité. Nous écrivons un scénario comme une suite d’étapes sur des interfaces utilisateur. Là où un robot traite des factures pour un comptable, il traitera les cas de tests les plus répétitifs pour un ingénieur Qualité.
Comment utiliser UiPath Test Suite pour automatiser vos tests fonctionnels ?
Test Suite est la solution proposée par UiPath pour vous aider à automatiser vos tests fonctionnels. Elle est composée de 3 modules :
- UiPath Test Manager : il s’agit de l’application Web en charge de la gestion des scénarios de test, des résultats de leurs exécutions et de l’intégration (optionnelle) avec votre plateforme de CI/CD (Continuous Integration / Continuous Deployment)
- UiPath Studio : l’outil de design des scénarios de test (les processus RPA)
- UiPath Orchestrator : l’application Web de gestion de l’exécution des robots
- UiPath Robot : le robot ou agent logiciel exécutant sur un poste de travail (généralement virtuel) les scénarios de test
Concrètement, seul UiPath Test Manager est spécifique pour l’automatisation des tests. Les autres modules sont communs avec la plateforme RPA.
Gérer des tests dans UiPath Test Manager
UiPath Test Manager est l’outil principal pour votre ingénieur Qualité. Il propose un tableau de bord par projet présentant son activité récente : taux d’automatisation, couverture de tests réussis, stoppés ou en erreur.
Comment s’organisent les différents composants de UiPath Test Suite ?
Les tests sont groupés par Test Set. Les Test Sets correspondent à un ensemble de fonctionnalités testés durant une campagne. Ces fonctionnalités sont découpées dans un ou plusieurs Test Cases. Cela permet de distinguer chaque étape importante. Le Test Set peut être comparé à un livre dont les Test Cases en sont les chapitres.
Dans la terminologie UiPath, un scénario de test est un Test Case. Les Test Sets et les Test Cases sont créés dans Test Manager. Les Tests Cases peuvent ensuite être associés à un processus RPA pour son automatisation.
Que se passe-t-il lors de l’éxécution d’un Test Set dans Test Manager ?
Certains Test Cases sont dépendants de l’exécution d’un autre Test Case en amont, par exemple, une procédure de paiement, dépend de la création d’une commande. Pour répondre à ce besoin, il est possible de créer des Test Data Queues permettant de transférer les informations d’un Test case à un autre. La queue joue un rôle prépondérant en servant de file d’attente, c’est-à-dire qu’elle met à disposition ces informations qui seront ensuite récupérées et traitées par les Test Cases suivants. Elle peut aussi être utilisée pour paralléliser l’exécution des tests en utilisant plusieurs postes, apportant ainsi un gain de temps important lors de l’exécution de tests en masse.
L’exécution d’un Test Case peut être lancé manuellement depuis Test Manager. Il est aussi possible de planifier et de lancer tous les Test Cases d’un Test Set, voire d’un projet en entier.
Après l’exécution d’un Test Set, l’onglet Test Results permet de visualiser les statistiques et informations remontées. Il propose une vue globale avec l’ensemble des Test Cases avec leur statut Passed ou Failed. Nous pouvons également consulter les détails de chaque Test Case et ainsi observer chacune des assertions, c’est-à-dire des vérifications que le test effectue.
Tableau de bord dans UiPath Test Manager
Résultats des Test Cases dans UiPath Test Manager
Designer des scénarios (Test Cases) dans UiPath Studio
UiPath Studio est l’outil vous permettant de designer les scénarios (les Test Cases) à automatiser. Par défaut, un processus de type Test Case est découpé en 3 séquences :
- Given : partie initialisation, réception des données en entrée ou configuration – mise en contexte
- When : réalisation du test
- Then : résultat de l’exécution du test et prochaines étapes – envoi des données à un autre Test Case via les Tests Data Queues, fermeture des applications
Le design d’un scénario de test est similaire à celui d’un processus RPA standard, à la différence près qu’il existe quelques activités propres à UiPath Test Suite. Les activités dans UiPath correspondent aux actions que le robot doit réaliser : cliquer sur un bouton, écrire une valeur dans un champ, une condition « If », une boucle « For », filtrer des données dans une table, etc. En plus de ces activités standard, il est notamment possible d’ajouter une assertion au scénario. Comme indiqué précédemment, il s’agit de vérifier un élément au cours du processus, par exemple la valeur d’une donnée affichée sur l’application par rapport à un résultat attendu. Les attentes en termes de résultats sont généralement reprises des documentations fonctionnelles du Test Case à automatiser.
Lorsque le scénario de test (c’est-à-dire le processus RPA) est prêt, UiPath Studio permet de l’associer au Test Case dans Test Manager et de le publier dans UiPath Orchestrator. A partir de ce moment, le scénario est prêt à être exécuté.
Tester toutes les configurations possibles : Multi-devices, multi-navigateurs & Mobile
Lorsque les tests fonctionnels sont réalisés manuellement, il est déjà difficile d’atteindre une couverture complète des fonctionnalités de l’application, mais que dire quand il faudrait les réaliser sur l’ensemble des matériels utilisés par vos utilisateurs, qui peuvent être vos clients.
UiPath Test Suite peut s’intégrer avec des plateformes disponibles dans le Cloud telles que BrowserStack ou SauceLabs pour répéter les scénarios de test sur toutes les configurations que vous souhaitez vérifier : différents smartphones de différentes marques, avec différents navigateurs, différentes configurations de PC et de tablettes. Vous vous assurez ainsi que la dernière version de votre application ouverte au public ne génère pas d’erreurs et reste compatible avec les différents supports couverts dans votre périmètre de testing.
Intégrer UiPath Test Suite à votre plateforme d’intégration continue
Chaque société a sa propre organisation interne et utilise différents outils de suivi de bugs, de gestion des incidents, de gestion de projets ou d’intégration continue. UiPath Test Suite propose des connecteurs vers les principales plateformes CI/CD du marché : Azure DevOps, Atlassian avec notamment le plugin Xray pour Jira, Jenkins.
L’intégration entre UiPath Test Suite et votre plateforme CI/CD permet :
- D’associer automatiquement les tests déclarés sur votre plateforme CI/CD avec les tests dans UiPath Test Suite
- De déclencher les tests fonctionnels selon une planification préétablie (par exemple toutes les nuits) ou dès qu’une nouvelle version de votre application est déployée
- De synchroniser les résultats des tests dans votre plateforme CI/CD
Prêts à vous lancer dans l’automatisation de vos tests fonctionnels ?
Cet article a couvert les principales forces qu’offre UiPath Test Suite pour automatiser vos tests fonctionnels. Dans de prochains articles, nous entrerons plus en détails sur certaines fonctionnalités clés (intégration avec les plateformes CI/CD, automatisation sur mobile, pas à pas pour démarrer votre projet, etc.). Nous espérons que cet article vous aura donné envie d’aller plus loin. Nos équipes RPA sont à votre disposition si vous avez des questions, des remarques ou si vous avez besoin d’aide pour démarrer un projet avec la plateforme UiPath.
Pour aller plus loin
- Webinaire à la demande : Et si vous confiez vos tests fonctionnels à des robots ?
- Guide pour l’automatisation de tests avec UiPath Test Suite