le-blog-b-acceptance.1.jpg

Blog B/Acceptance

Choix d'un automate de test IHM. Comment les comparer ?

Posté par Le Lab B/Acceptance le 26 avr. 2019.

Après 13 années passer à automatiser des tests, nous avons eu envie de partager avec vous notre avis sur les outils qui nous ont le plus marqués.
Avant de commencer, il nous semblait important de détailler les critères que nous analysons lorsqu'il s'agit de choisir un outil que automaticiens utiliseront au quotidien.

Qu'est-ce qu'un automate de test IHM ?

Un automate de test IHM est un outil permettant la reproduction des gestes d’un testeur sur les écrans d’une application sous test.

Pour cela, un automate exécute une séquence d’instructions.
Chaque instruction consiste en un geste (une action, une vérification) effectué sur un élément de l’IHM (un bouton, un champ texte, un libellé) en utilisant des paramètres (un texte à saisir, une valeur attendue).

Pour chacune des instructions, l’automate réalise les actions suivantes :

  • Identifier l’élément IHM sur votre terminal
  • Effectuer le geste sur l’élément IHM
  • Créer une entrée dans le journal de test pour tracer le statut de l’étape

Qu'est-ce qui fait la qualité d'un automate de test ?

Tous les outils d'automatisation de test IHM ne se valent pas.
D'une part, parce qu'ils n'ont pas tous le même niveau de maturité. D'autre part, parce qu'ils s'adressent à des populations différentes (testeurs fonctionnels, développeurs, automaticiens, ...). Ce dernier aspect aura des impacts forts sur la richesse et le niveau de détail accessible au sein d'un automate.

Le mode de reconnaissance des éléments IHM

Il existe 3 grandes méthodes de reconnaissance des éléments d'une IHM : reconnaissance basée sur les positions, reconnaissance basée sur les images et la reconnaissance basée sur les propriétés.

La reconnaissance basée sur les positions La reconnaissance basée sur les images La reconnaissance basée sur les propriétés
Les éléments de votre IHM sont définis en fonction de leur position et de leur taille relativement à l'écran ou à la fenêtre de l'application. Les éléments de votre IHM sont définis par une ou plusieurs images de référence. Les éléments de votre IHM sont définis par un ensemble de propriétés et de valeurs (identifiant, classe, libellé, contenu, ...) permettant de les distinguer sans ambiguïté.
Cette méthode est la moins pérenne et la moins robuste. Dans le même temps, elle est totalement indépendante de la technologie de votre IHM. Cette méthode permet une construction rapide du référentiel d'automatisation en garantissant une certaine robustesse. En revanche, la maintenance sera souvent plus fréquente. Indépendante de l'affichage de votre IHM, cette méthode est la plus pérenne et la plus maintenable. C'est aussi la plus coûteuse à mettre en oeuvre lors de l'initialisation de votre projet.
Quand l'utiliser ?
Lorsque votre objet est impossible à détecter par les deux autres méthodes.
Quand l'utiliser ?
Lorsque vous ne pouvez pas vous baser sur la reconnaissance par propriétés et que vos IHM seront stables.
Quand l'utiliser ?
Dès que possible. Surtout si vos IHM sont vouées à évoluer.
 

Notez bien :
Ces méthodes ne sont pas mutuellement exclusives et tous les outils d’automatisation n’en proposent pas la même implémentation. Au moment de choisir un nouvel automate, nous analysons d'une part, comment chacun des candidats implémente ces 3 modes de reconnaissance et d'autre part, le niveau technique nécessaire pour les mettre en oeuvre.

Le référentiel d'éléments IHM

Un même élément de l’IHM sera utilisé dans de multiples étapes de vos scénarios.
Il n’est pas envisageable de re-définir le moyen d’identification d’un élément IHM à chaque fois que l’on souhaite interagir avec.

Ces éléments IHM doivent être définis dans des référentiels dédiés, usuellement appelés Object Repository ou Page Object en fonction de l’outil d’automatisation utilisé.

Les points à vérifier lorsqu'il s'agit d'évaluer un outil d'automatisation :

  • Son ergonomie : Est-il simple de capturer un élément IHM ? de l'adapter ?
  • Son organisation : Est-il possible de ranger proprement les éléments capturés ?
  • Les fonctionnalités de documentation : Peut-on ajouter une description, un screenshot, une action pour les éléments du référentiel.
  • Les fonctions de debug : L'outil permet-il d'identifier rapidement les éléments à mettre à jour pour corriger un test ?

La possibilité de constituer vos scénarios comme un assemblage de fonctions utilisateur

 Pour une meilleure maintenabilité, il est opportun de penser vos scénarios sous la forme d’un assemblage d’Action Words.
Un Action Word représente une fonction utilisateur. C’est une séquence d’environ 5 à 20 gestes se concentrant usuellement sur une section d’un écran.

action-word-drivent-testing


Ce découpage maximise la réutilisation au sein du patrimoine de test automatisé. Ce qui implique un effort d'automatisation optimisé et une meilleure maintenabilité.

Lors du choix de l'automate, il faut donc s'assurer, tout d'abord que cette fonctionnalité existe, puis que les moyens de scénarisation (Action Word Driven Testing, Gherkin, ...) peuvent facilement être pris en main par les testeurs de votre application.

La possibilité de définir vos données de test à l’extérieur de vos scénarios

Pour une meilleure exploitabilité de l’automate, les scénarios de test doivent être complètement indépendants des données finales utilisées. Au sein de votre automate, voici comment devront être utilisées vos données :

  • Les action words présentent des arguments (identifiant produit, email client, …)
  • Les scénarios référencent des données logiques (l’expression de besoin de la donnée : un produit disponible avec une promotion en pourcentage, un client existant encarté, …)
  • Lors de l’exécution, on fournit l’ensemble des données d’entrée et de contrôle nécessaire au déroulement des scénarios au travers de source de données.

 

Ces aspects vous permettront de comparer les différents outils.
Néanmoins gardez à l'esprit que lorsqu'il s'agit d'automatisation des tests, l’outil n’est qu'un des éléments de réponse au cœur de la stratégie d’automatisation.

Notamment, avant de partir tête baissée dans un projet d’automatisation, prenez le temps de vous poser la question suivante : Votre application est-elle suffisamment testable ?

  • Maîtrise de la donnée (données périssables, gestion des stocks, des prix, …)
  • Prédictibilité des résultats (maitrise des paramétrages, configurations, traitements, …)
  • Bonnes pratiques de développement appliquées aux IHM (lien article BAC)

Dans notre prochain, nous détaillerons cette liste de critères pour vous permettre de vérifier l'opportunité de votre projet d'automatisation.

Catégories : automatisation, outils de test

Bienvenue sur le blog de B/Acceptance, spécialiste du test/qualité logicielle en France.

Son objectif :

  • Diffuser et faire découvrir des bonnes pratiques et des outils du test fonctionnel, test automatisé et test de performance
  • Identifier les tendances : automatisation des tests, Intégration continue, Agile Testing, etc
  • Echanger autour du test digital : Web desktop, Web mobile, App

Lire nos articles

Inscrivez-vous au blog