Il y a un certain nombre d'astuces à connaître lors de l'automatisation des tests logiciels en général, et avec Agilitest en particulier, pour rendre vos tests plus robustes.
En effet, lorsqu'il s'agit de tests automatisés de logiciels, il y a un outil d'automatisation, et il y a aussi le SUT (système sous test) qui a son propre comportement, ses temps de réponse et ses particularités qu'il faudra prendre en compte.
Ce billet présente une série de conseils que nous vous recommandons d'utiliser pour rendre vos tests plus robustes.
A propos de l'utilisation de Max / Wait for dans un test
Votre serveur est lent à répondre : tant pis, nous attendrons 5 secondes de plus !
Nous vous déconseillons de le faire, ce billet vous expliquera pourquoi et comment traiter le sujet. La technique proposée vous permettra de gérer toutes les solutions où une certaine latence entre le logiciel et Agilitest peut se produire : attente d'une réponse du serveur, calcul complexe sur une solution Desktop...
Identificateurs d'objets
Certains frameworks de composants génèrent des identifiants qui peuvent n'être valables que pour une session de navigation donnée, et il est risqué de s'appuyer sur ces identifiants pour effectuer des tests, car il est très probable que les identifiants aient été modifiés au cours de l'exécution.
Dans certains cas, il est encore possible de le faire à l'aide d'expressions régulières.
Il suffit de reconnaître la partie de la valeur de l'attribut du composant à reconnaître qui est toujours fixe, par exemple un préfixe ou un suffixe, dans le cas suivant :
"select_
"id = select_4657
Pour traiter ce cas, l'expression régulière suivante appliquée à l'attribut "id" devrait faire l'affaire :
select_( d{4})
Le nombre de quatre chiffres peut donc varier en fonction des exécutions, mais nous trouverons toujours de manière très robuste le composant dont l'identifiant commence par "select_".
La conception de l'ATS
Lors de la conception d'Agilitest et du langage ATS , nous avons bénéficié de plusieurs années d'expérience dans les solutions d'automatisation des marchés, et nous visons à surmonter un certain nombre d'insuffisances et/ou de défauts. Cela implique la mise en œuvre de configurations spécifiques aux environnements d'exécution : par défaut, ATS est conçu pour fonctionner correctement dans la plupart des cas, mais il est toujours possible de modifier sa configuration.
Double contrôle des biens
Lorsqu'il récupère une valeur sur un composteur, Agilitest vérifie deux fois la valeur pour s'assurer qu'il récupère des informations précises et stables. Cela garantit que les valeurs que nous voulons contrôler sont définitives et celles fournies par le test, tout en ajoutant de la stabilité et de la fiabilité.
La configuration par l'exécution du robot
La fiabilité d'un test dépend également de sa rapidité ou de sa lenteur d'exécution. En effet, les réseaux et les performances des machines peuvent mettre les tests en échecATS prend en compte la possibilité que les performances des machines aient un impact sur l'exécution des tests. Ainsi, lors de son lancement, ATS récupère un fichier de configuration .atsProperties spécifique au job sur lequel il s'exécute.
Cela permet d'adapter les environnements d'exécution au contexte souhaité, par exemple une version de logiciel de développement ou une version de production peut ne pas réagir de la même manière : Avec ce système, il y a beaucoup plus de garanties d'avoir toujours une relecture régulière.
Configuration par navigateur
Le comportement du test et donc le résultat de son exécution peuvent également varier en fonction des navigateurs. Il est donc également possible de configurer l'environnement d'exécution en fonction des navigateurs utilisés.
La robustesse au centre des préoccupations de notre produit de développement
La robustesse et la maintenabilité des tests sont au centre de nos préoccupations car nous voulons que les testeurs se concentrent sur ce qui est vraiment important pour eux. Dans le jargon Agile/Lean, nous cherchons à supprimer les "muda" (perte de temps/gaspillage) dès que nous en avons l'occasion.