Améliorer la robustesse des scripts de test

Parfois, les étapes enregistrées dans un test ne sont pas reconnues à la relecture et font échouer le test ou entraînent des erreurs. Pour éviter les problèmes de reconnaissance, vous pouvez changer la manière dont les objets sont identifiés, vous pouvez utiliser des conditions de localisation, appliquer des conditions de conception adaptative ou ajouter une liste de propriétés préférées à utiliser lors de l'exécution du test. De cette manière, vous améliorez la robustesse des tests et avez de meilleures chances de pouvoir les inclure dans un processus de test automatisé.

L'une des raisons d'un échec d'étape dans un test est la mise à jour d'une application. Vous enregistrez un test avec une version précise d'une application. Vous réutilisez ce test avec une nouvelle version de l'application. Or, dans cette nouvelle version, il y a de nouveaux boutons ou certains objets ont changé de place. Un autre motif d'échec de l'étape est que les données du test ont pu changer entre le moment où le test a été enregistré et celui où il est lu (par exemple, la date).

Vous pouvez améliorer la robustesse des scripts de test comme suit :

Propriétés des objets

Les propriétés des objets sont capturées à l'enregistrement du test et affichées en lecture seule dans la table des propriétés de la vue Données d'interface web et mobile. A la lecture d'un test, pour trouver un objet dans l'application testée, le Test Workbench compare les propriétés qui ont été capturées lors de l'enregistrement à la description des propriétés visible dans la section Détails d'action utilisateur de l'éditeur de test. Ces propriétés diffèrent selon la nature de l'application (Android, iOS ou interface web).

Lorsque vous sélectionnez une étape d'un test enregistré, l'éditeur de test affiche les propriétés de l'objet cible de l'action effectuée dans cette étape. Les propriétés de cet objet sont listées dans le champ Objet identifié par, lui-même suivi d'une liste de sélection d'opérateur et d'un champ d'insertion pour la valeur de la propriété. Parmi les identificateurs d'objet standard, vous pouvez trouver Content, Class, Id, 'Xpath selon l'objet graphique.

Figure 1. Editeur de test, étape sélectionnée avec l'objet correspondant, identifié par une propriété, un opérateur et une valeur.
Editeur de test, étape sélectionnée avec l'objet correspondant, identifié par une propriété, un opérateur et une valeur.

Vous pouvez changer ces conditions (propriété, opérateur et valeur de propriété) dans la section Détails d'action utilisateur de l'éditeur de test ou dans la vue Données d'interface web et mobile (via le menu contextuel). Lorsque des actions sont sélectionnées dans la liste Contenu du test, la vue Données d'interface web et mobile est automatiquement synchronisée pour afficher la capture d'écran pour l'étape sélectionnée. Les propriétés peuvent être modifiées dans l'onglet Capture d'écran, dans l'onglet Eléments ou dans la table des propriétés à l'aide du menu contextuel.

Les propriétés peuvent être modifiées à partir de la vue Données d'interface web et mobile, dans l'onglet Capture d'écran, dans l'onglet Eléments ou dans la table des propriétés à l'aide du menu contextuel.
Figure 2. Les propriétés peuvent être modifiées à partir de la vue Données d'interface web et mobile, dans l'onglet Capture d'écran, dans l'onglet Eléments ou dans la table des propriétés à l'aide du menu contextuel.
Pour plus de détails, voir Changer la propriété utilisée pour identifier un objet dans un script de test.

Pour améliorer l'identification des objets, indiquez les propriétés à utiliser dans le test. Certaines applications utilisent des propriétés décrites par des attributs personnalisés et ne sont pas détectées automatiquement à l'exécution du test. Pour surmonter ce comportement standard, vous pouvez définir une liste ordonnée des attributs personnalisés afin qu'ils soient identifiés comme les propriétés principales et utilisés lors de l'exécution du test.

Emplacement des objets dans un test

A l'exécution d'un test, les objets graphiques sont normalement détectés automatiquement, mais il arrive que l'élément auquel s'applique une action soit difficile à identifier. Dans cette situation, vous devez mettre à jour le script du test afin de fournir des informations plus précises sur la position de l'objet auquel l'action est censée s'appliquer.

Voyons un exemple : vous enregistrez un test et, à une étape particulière, l'action consiste à cliquer sur un texte à éditer, dont le contenu est '30 août 2013'. Si le test est relu automatiquement à une date ultérieure, il échouera, du fait du changement de date. Vous devez donc modifier l'étape et fournir des informations plus précises sur la position de l'objet auquel l'action est censée s'appliquer. Cet objet pourra ainsi être localisé et utilisé automatiquement à l'exécution du test. Le Test Workbench offre différents moyens d'identifier et de situer les objets afin d'accroître la fiabilité des tests.

Dans le Test Workbench, différents opérateurs de localisation d'objet sont disponibles afin de permettre l'identification des objets dans une application que vous testez. Ils sont visibles dans les champs de la partie Emplacement de l'objet, sous la section Détails d'action utilisateur de l'éditeur de test. Deux emplacements (principal et secondaires) peuvent être utilisés dans une étape de test pour fixer les conditions de localisation de l'objet cible. Pour plus de détails, voir Définir les conditions de localisation d'objet dans un script de test.

Figure 3. Champs d'emplacement d'objet avec la liste des opérateurs de localisation (pour les applications Android dans cet exemple)
Champs des emplacements d'objet principal et secondaire, avec la liste des opérateurs ouverte pour l'emplacement secondaire (représentée ici pour les applications Android)

Reconnaissance d'image dans un test

Lors de l'enregistrement d'un test, l'objet sur lequel s'exerce une action à une étape particulière est identifié par sa propriété principale, qui est généralement un texte. Les propriétés de type 'texte' ne sont pas toujours facilement identifiables. Cela peut être le cas lorsqu'il n'y a pas de propriété 'description' ni de libellé pour identifier l'élément cible dans une étape de test. Dans ces conditions, le générateur de test utilise une propriété 'image' pour identifier l'élément.

Pour reconnaître et gérer les objets à la relecture du test, le Test Workbench utilise un procédé de corrélation d'images. L'image sur laquelle l'action est effectuée est capturée à l'enregistrement. Il s'agit de l'image de référence. A la relecture du test, elle est comparée à l'image de l'application testée, que l'on appelle image candidate. Un seuil de reconnaissance réglable autorise un certain degré de variation entre l'image de référence et l'image candidate. Conjointement avec la tolérance de rapport hauteur/largeur, il détermine si les images comparées son concordantes ou non. Le seuil de reconnaissance est réglé à 80, par défaut. La tolérance de rapport hauteur/largeur est quant à elle réglée à 20, par défaut.

Voici quelques exemples de scénarios de test mettant en jeu le procédé de corrélation d'images :
  • Vous enregistrez un test sur un téléphone mobile et vous le relisez sur un ordinateur de bureau. Comme la largeur et la hauteur de l'image changent d'un appareil à un autre, la lecture du test échoue sur les appareils dont l'écran n'a pas le même rapport hauteur/largeur.
  • Certains objets cible présents à l'enregistrement ne sont plus les mêmes à la relecture du test. Par exemple, dans une application sécurisée avec saisie d'un code secret, la position des chiffres du clavier virtuel change d'une session à l'autre.
Dans certains cas, l'application testée peut contient des objets que le Test Workbench ne trouve pas.
Remarque : A compter de la version 9.1.1, le produit reconnaît les objets graphiques personnalisés. Dans le test édité, un objet personnalisé est identifié comme un objet graphique Elément personnalisé, avec une description nom1-nom2 dans le script de test description d'un objet personnalisé dans un script de test.
Dans d'autres cas, l'image sélectionnée n'est pas la bonne et le test échoue. Pour remédier à ces situations, vous pouvez changer l'image utilisée pour identifier l'objet cible de l'étape en cause ou changer les valeurs de seuil de reconnaissance et de tolérance de rapport hauteur/largeur utilisées dans le test.
Remarque : Il est possible d'utiliser des images dans les points de vérification des contrôles. Par exemple, vous pouvez vérifier la position d'une liste déroulante dans un écran. Pour plus de détails, voir Création de points de vérification à partir de la vue Données d'interface web et mobile.

Si le seuil est réglé à 0, l'image candidate présentant le plus de similitudes avec l'image de référence sera sélectionnée, même s'il ne s'agit pas de la même image. Si vous réglez le seuil à 100, la plus infime différence par rapport à l'image de référence empêchera la reconnaissance de toute image candidate. Par exemple, si le test est relu sur une tablette, une image dont la largeur ou la hauteur diffère sera redimensionnée en conséquence. Or, si le seuil est réglé à 100, l'image ne sera pas sélectionnée, même s'il s'agit de la même image qu'à l'enregistrement. Vous pouvez changer la tolérance de rapport hauteur/largeur si la relecture d'un test échoue sur un appareil qui n'a pas le même rapport hauteur/largeur que l'appareil utilisé à l'enregistrement, ou si les images affichées dans l'application à la relecture sont différentes de celles qui étaient disponibles à l'enregistrement.

Lorsque vous réglez le seuil de reconnaissance, le Test Workbench affiche un aperçu des images en correspondance dans l'éditeur pour vous aider à choisir l'image qui permettra d'identifier précisément l'objet cible à la relecture du test. Les meilleures images candidates sont en vert, celles dont le score est au-dessus du seuil et qui ne sont pas les plus appropriées sont en jaune et celles dont le score est en dessous sont en rouge. Ces images candidates ne concordent pas avec les images de référence.

Les détails de la corrélation d'images sont fournis dans le rapport de test affiché au terme de l'exécution du test.


Retour d'informations