Simplifiez la maintenance des scripts Appium grâce à l'auto-réparation basée sur l'IA

La journée touche à sa fin, et l'équipe de test range ses affaires et rentre chez elle. Traditionnellement, la dernière personne à partir éteint les lumières ; il reste donc une dernière tâche à accomplir. En partant, un membre de l'équipe doit déclencher le test nocturne dans le cadre de ses fonctions. les tests de régression pour appareils mobiles. Le lendemain matin, à la grande surprise et au désarroi de l'équipe, ils découvrent que de nombreux tests ont échoué en raison d'une modification du paramètre de localisation au sein de l'application.

Ce type de changement est fréquent et passe souvent inaperçu pour diverses raisons. Par exemple, il arrive que l'équipe de développement apporte une modification si mineure qu'elle est jugée insignifiante et, par conséquent, non communiquée à l'équipe d'assurance qualité.

Le temps et les efforts nécessaires pour examiner les scripts ayant échoué, mettre à jour les localisateurs et relancer les tests peuvent rapidement faire dérailler un sprint, augmentant ainsi le risque de mettre des défauts en production.

Dans un monde où l'IA occupe une place de plus en plus centrale dans le cycle de vie du développement logiciel (SDLC).Les développeurs bénéficient désormais d'une assistance sous forme de suggestions contextuelles, d'optimisation du code et même de génération de tests unitaires. Si cela accélère le développement, cela peut engendrer des difficultés pour les équipes d'assurance qualité qui peinent à suivre le rythme de l'augmentation du volume de code produit.

De petites modifications d'interface utilisateur, comme celle mentionnée ci-dessus, ont souvent un impact sur les tests automatisés de bout en bout. Cependant, grâce à l'intégration de l'auto-réparation par IA, les scripts peuvent s'adapter instantanément, en réparant les localisateurs défectueux en cours d'exécution sans interrompre le flux de test. Cette fonctionnalité permettra aux équipes d'assurance qualité de suivre le rythme des cycles de développement rapides, de réduire considérablement le temps de maintenance des tests et de fournir un retour d'information plus rapide, tout en renforçant la robustesse des tests.

Ce blog explorera comment Auto-réparation alimentée par l'IA corrige automatiquement les incohérences entre éléments lors de l'exécution, sans intervention humaine.

Prérequis : cette fonctionnalité est réservée aux clients SaaS Pro et Premium.

Pour vous aider à mieux comprendre l'auto-réparation par IA et son fonctionnement sur notre plateforme, nous allons examiner : Digital.aiL'application bancaire de [Nom de l'entreprise] est conçue pour Android ; nous allons passer en revue un test simple pour la page de connexion, où un changement sera détecté.

Nous aurons deux versions de la même application : une version non modifiée (une version censée fonctionner) et une version modifiée (dans laquelle l’un des localisateurs a été modifié).

Dans la version non modifiée de l'application, nous voyons l'ID « usernameTextField » identifier le localisateur de nom d'utilisateur :

Ce localisateur sera référencé dans le script d'automatisation comme indiqué ci-dessous. Les lignes suivantes valident et interagissent avec le champ nom d'utilisateur après le déclenchement des tests automatisés Appium :

``` wait.until(ExpectedConditions.elementToBeClickable(By.id("com.experitest.ExperiBank:id/usernameTextField"))); driver.findElement(By.id("com.experitest.ExperiBank:id/usernameTextField")).sendKeys("tester01"); ```

Dans des circonstances normales, lorsque les localisateurs ne sont pas modifiés, le script s'exécuterait sans problème.

Cependant, imaginons un scénario où le localisateur du champ nom d'utilisateur a changé. Dans cette version modifiée, il est désormais identifié par « UserTextField » au lieu de « UsernameTextField ».

Dans ce cas, le script échouerait immédiatement avec une exception « NoSuchElementException ».

Comment pouvons-nous remédier à ce problème ?

Il suffit d'ajouter une ligne à votre configuration de test dans la section « Capacités souhaitées ». Prenons l'exemple d'un script de test simple permettant d'installer et de lancer une application sur Digital.ai's Continuous Testing :

`` `
DesiredCapabilities caps = New Capacités souhaitées();

caps.setCapability("nom_test", "login_scenario_test");
caps.setCapability("clé d'accès", CLÉ_D'ACCÈS);
caps.setCapability("deviceQuery", "@os='android'"); //
https://docs.digital.ai/bundle/TE/page/device_queries.html
caps.setCapability("applications", "cloud: com.experitest.ExperiBank/.LoginActivity");
caps.setCapability("appPackage", "com.experience.ExperiBank");
caps.setCapability("appActivity", ".LoginActivity");

Capacités souhaitées.set(caps);
driver.ensemble(New AndroidDriver(New URL("https:// /wd/hub"), majuscules));

`` `

Désormais, l'ajout de la ligne suivante à vos capacités indiquera au script qu'il doit s'exécuter en mode d'auto-réparation :

`` ` 
caps.setCapability("auto-guérison", oui);

`` `

Vous pouvez désormais exécuter les scripts automatisés comme d'habitude. Aucune modification supplémentaire n'est requise, que ce soit depuis votre IDE (tel qu'Eclipse ou IntelliJ) ou un pipeline CICD (par exemple, Azure). DevOps).

L'activation de l'auto-réparation de l'IA a-t-elle un impact sur le temps d'exécution des tests réguliers ?

L'activation de l'auto-réparation peut potentiellement augmenter la durée d'exécution des tests, car le module d'auto-réparation analyse en continu les pages à la recherche de modifications pendant l'exécution. Pour plus de flexibilité, nous avons inclus une option permettant de suspendre et de reprendre l'auto-réparation dans votre script. Par exemple, si la page de connexion est stable et peu susceptible de provoquer des erreurs, la désactivation de l'auto-réparation pour cette section peut contribuer à réduire la durée d'exécution des tests. Il suffit d'ajouter une ligne de code au script de test pour suspendre le mode d'auto-réparation :

`` `

driver.executeScript("seetest:client.stopHealing");

`` `

Et pour reprendre, il suffit d'utiliser une autre commande simple :

`` `

driver.executeScript("seetest:client.startHealing");

`` `

L'auto-guérison est-elle personnalisable ?

La fonction d'auto-réparation basée sur l'IA est configurable pour s'adapter aux besoins des applications testées, notamment lorsqu'il s'agit de gérer différents niveaux de complexité.

  1. Tentatives de récupération : Définit le nombre total de tentatives que l'algorithme effectuera pour trouver un localisateur correspondant.
    Par défaut, la fonction d'auto-réparation tente d'identifier les modifications de localisateur une seule fois par élément. Par exemple, si l'algorithme ne parvient pas à trouver un localisateur de remplacement pour le champ « nom d'utilisateur », il ne fera qu'une seule tentative avant de passer à l'élément suivant.
  2. Limite de score : Définit un seuil de score de correspondance basé sur la probabilité de réussite. Le score par défaut est de 0.6 sur une échelle de 0.1 à 1.0.
    Un score de 0.6 indique que l'auto-réparation ne sera déclenchée pour les nouveaux localisateurs identifiés que lorsque la probabilité de correspondance est supérieure à 60 %.

Le Digital.ai L'équipe d'assistance peut modifier ces deux propriétés sur demande.

L'auto-réparation par IA fonctionne-t-elle sur tous les types d'applications mobiles ?

Actuellement, la fonctionnalité d'auto-réparation par IA est prise en charge pour les tests natifs mobiles et web sur Android, ainsi que pour les tests web sur iOS. La prise en charge des applications natives mobiles sur iOS n'est pas encore disponible ; restez à l'écoute pour les prochaines mises à jour.

Que se passe-t-il si plusieurs modifications de localisateur surviennent lors de l'exécution d'un seul script de test ?

Qu’il s’agisse d’une seule modification de localisateur ou de plusieurs modifications, lorsque la fonction d’auto-réparation par IA est activée, le mécanisme d’auto-réparation s’active et met à jour automatiquement tous les localisateurs concernés au cours d’une seule exécution de test, sans aucune intervention manuelle.

Mes tests ont été corrigés : dois-je continuer à exécuter mes tests tels quels, ou dois-je modifier mes scripts ?

Vous pouvez continuer à exécuter vos tests automatisés, et ils fonctionneront comme prévu. Digital.ai platform Le système continuera de détecter les modifications et de s'assurer que les scripts s'exécutent comme prévu. Cependant, cela ne résout pas entièrement le problème. Bien que le test soit corrigé pendant l'exécution, il ne modifie pas le script lui-même, qu'il soit déclenché depuis un IDE comme IntelliJ ou un pipeline CI/CD comme Azure. DevOpsVous devrez modifier les scripts d'automatisation d'origine et y apporter les changements nécessaires.

Pourquoi guérir si je dois de toute façon faire les changements ?

L'avantage de l'auto-réparation est que les modifications de localisateurs n'interrompent pas l'exécution des tests. Après l'exécution, vous pouvez consulter les rapports à votre convenance pour identifier les localisateurs réparés et mettre à jour votre script en conséquence. La distinction entre les véritables échecs de tests et les problèmes d'automatisation permet de se concentrer sur les tâches prioritaires ayant un impact bien plus important sur les utilisateurs finaux. Ainsi, vous pouvez déployer de nouvelles mises à jour sans craindre constamment que des tests instables ne compromettent votre progression.

Comment savoir si quelque chose est guéri ?

C'est simple ! Prenons un exemple. Vous pouvez accéder à votre page de journaliste depuis votre navigateur (fonctionne de manière optimale avec Chrome) :

``` https:// /reporter/reporter/tests ```

Sinon, sur la plateforme principale, cliquez sur vos initiales dans le coin supérieur droit et sélectionnez «Aller au journaliste"

 

Et allez au «TestsOnglet ": 

 

Cette vue affichera tous les tests exécutés pour votre projet, y compris le pourcentage de tests qui ont été corrigés :

 

En cliquant sur le Guéri Le statut affiché dans le graphique circulaire permettra de filtrer les résultats pour n'afficher que les tests qui ont été guéris :

 

Vous pouvez également cliquer sur chaque rapport pour consulter des informations détaillées sur ce qui a été guéri :

Réflexions finales

L'auto-réparation basée sur l'IA représente un bond en avant dans l'automatisation des tests.Cette fonctionnalité rend la maintenance des scripts Appium plus efficace et réduit les interventions manuelles nécessaires pour suivre le rythme des cycles de développement rapides. Bien que l'auto-réparation ne remplace pas totalement la mise à jour des scripts, elle offre une expérience utilisateur optimale en prévenant les interruptions de test et en fournissant des informations précieuses pour la maintenance des scripts. C'est un outil puissant qui renforce la fiabilité des tests. Si vous souhaitez découvrir comment l'auto-réparation par IA peut transformer votre stratégie d'automatisation des tests et en savoir plus sur nos innovations en IA, contactez-nous !

Vous aimerez aussi