Publié: Octobre 22, 2024
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 ?
`` ` 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 ?
`` ` 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 ?
- 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. - 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 ?
Que se passe-t-il si plusieurs modifications de localisateur surviennent lors de l'exécution d'un seul script de test ?
Mes tests ont été corrigés : dois-je continuer à exécuter mes tests tels quels, ou dois-je modifier mes scripts ?
Pourquoi guérir si je dois de toute façon faire les changements ?
Comment savoir si quelque chose est guéri ?
``` 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
Vous aimerez aussi
Votre test CarPlay a été réussi. Qu'a vu le conducteur ?
Si votre équipe développe une application compatible avec Apple CarPlay, la validation…
Choisir la bonne DeployModèle de test – SaaS, sur site ou hybride
Voici une question qui revient plus souvent qu'elle ne le devrait :…
La bêta d'iOS 27 est disponible. Testez vos applications avec Digital.ai Essai.
Apple a commencé le déploiement de la version bêta d'iOS 27 pour les développeurs…