Maison  >  Article  >  Périphériques technologiques  >  Laissez l'IA écrire une automatisation efficace de l'interface utilisateur avec un débogage en temps réel

Laissez l'IA écrire une automatisation efficace de l'interface utilisateur avec un débogage en temps réel

WBOY
WBOYavant
2024-03-15 15:46:111053parcourir

À propos de l'auteur

Thales Fu, directeur R&D senior de Ctrip, s'engage à trouver de meilleures façons de combiner l'IA et l'ingénierie pour résoudre des problèmes réels.

Introduction

Dans le cycle de développement logiciel rapidement itératif, les tests automatisés de l'interface utilisateur (UI) sont devenus la clé pour améliorer l'efficacité et garantir la qualité des produits. Cependant, à mesure que les applications deviennent de plus en plus complexes, les méthodes traditionnelles d’automatisation de l’interface utilisateur révèlent progressivement leurs limites. L’automatisation de l’interface utilisateur basée sur l’IA est là, mais elle reste confrontée à des problèmes de précision et de fiabilité. Dans ce contexte, cet article propose une perspective innovante : grâce à la technologie de débogage en temps réel, l’efficacité des scripts d’automatisation de l’interface utilisateur écrits par l’IA peut être considérablement améliorée.

Ce problème n'est pas seulement un défi technique, il est lié à la manière d'accélérer la livraison des logiciels tout en garantissant la qualité des logiciels. Cet article explorera comment le débogage en temps réel peut aider l'IA à comprendre et à exécuter les scripts de test de l'interface utilisateur avec plus de précision, et comment cette méthode peut apporter des changements révolutionnaires au développement logiciel.

1. État actuel de l'automatisation de l'interface utilisateur

L'automatisation de l'interface utilisateur a connu un développement considérable, depuis le simple outil d'enregistrement et de lecture original jusqu'au cadre de script complexe d'aujourd'hui. Malgré les progrès continus de la technologie, les méthodes traditionnelles d’automatisation de l’interface utilisateur sont toujours confrontées à des défis face à l’évolution rapide des interfaces d’application. À mesure que les applications deviennent plus complexes et dynamiques, les approches traditionnelles risquent de ne plus suffire. Par conséquent, les ingénieurs recherchent des solutions plus flexibles et plus fiables pour améliorer l’efficacité et la fiabilité de l’automatisation de l’interface utilisateur. Une nouvelle génération d'outils et de technologies d'automatisation de l'interface utilisateur émerge

Selon les résultats d'une enquête auprès de l'industrie, l'écriture manuelle de scripts de test est inefficace et prend beaucoup de temps à retravailler lorsque les mises à jour sont appliquées. Les recherches montrent que la maintenance des scripts de test d'automatisation de l'interface utilisateur peut représenter 60 à 70 % de l'ensemble du travail de test. Dans un environnement de développement agile, la réécriture et le test des scripts d'automatisation existants pour chaque mise à jour d'application peuvent prendre plus de 100 heures. Ce coût de maintenance élevé met en évidence l’inefficacité et la consommation de ressources des méthodes traditionnelles d’automatisation de l’interface utilisateur.

2. Introduction du développement piloté par le comportement BDD

Le développement piloté par le comportement (BDD) est une pratique de développement logiciel agile qui encourage la communication entre les développeurs, les testeurs et les parties prenantes non techniques des projets logiciels pour communiquer plus efficacement. Cucumber est un outil populaire pour mettre en œuvre la méthodologie BDD, qui permet aux membres de l'équipe d'écrire des cas de test explicites et exécutables en langage naturel.

Cucumber utilise un langage spécifique à un domaine (DSL) appelé Gherkin, qui est extrêmement facile à lire et permet aux personnes non techniques de comprendre le but et le contenu du test. Les scénarios de test sont rédigés sous la forme d'une série d'instructions Given-When-Then, qui décrivent clairement comment le système doit réagir dans des conditions spécifiques.

Par exemple, la fonction de panier d'achat d'un site Web d'achat en ligne peut avoir le scénario Gherkin suivant :

Laissez lIA écrire une automatisation efficace de linterface utilisateur avec un débogage en temps réel

Cette approche exploite les capacités de description en langage naturel pour faciliter une meilleure communication entre les équipes techniques et non techniques. comprendre. Dans le même temps, le scénario de test en langage naturel joue également le rôle de documentation du projet, aidant les nouveaux membres de l'équipe à comprendre rapidement les fonctions du projet. Cela permet au personnel non technique de participer directement au processus de rédaction et de vérification des cas de test, garantissant ainsi que le travail de développement est étroitement aligné sur les besoins de l'entreprise.

Mais il a aussi des limites. Bien que le scénario de test soit écrit en langage naturel, la mise en œuvre (définition des étapes) derrière chaque étape nécessite toujours du personnel technique pour l'écrire dans un langage de programmation. Cela signifie que la mise en œuvre d’une logique de test peut impliquer des efforts de codage complexes. À mesure que les applications se développent et évoluent, la maintenance et la mise à jour des étapes de test correspondantes peuvent devenir fastidieuses. En particulier lorsque l'interface utilisateur change fréquemment, les définitions d'étapes pertinentes doivent également être mises à jour en conséquence. Il existe également des limites en termes de flexibilité et d'adaptabilité : les scripts de test Cucumber reposent sur des étapes et des structures prédéfinies, ce qui peut limiter la flexibilité du test. Pour certains scénarios de test complexes, la mise en œuvre d’une logique de test spécifique peut nécessiter des moyens créatifs pour contourner les limites du framework.

Laissez lIA écrire une automatisation efficace de linterface utilisateur avec un débogage en temps réel

3. Application actuelle de l'IA dans l'automatisation de l'interface utilisateur

Ces dernières années, la technologie de l'IA a été intégrée dans l'automatisation de l'interface utilisateur, notamment après l'émergence de grands modèles représentés par GPT, car elle a elle-même une génération de code capacités. L'industrie a également commencé à essayer de générer directement le langage de description de cas de test de Gherkin dans le code de test via de grands modèles.

Laissez lIA écrire une automatisation efficace de linterface utilisateur avec un débogage en temps réel

Cependant, le code de test généré par le grand modèle actuel ne peut pas répondre pleinement aux attentes. Il existe plusieurs problèmes principaux : premièrement, le script généré peut ne pas pouvoir s'exécuter en raison d'erreurs de syntaxe ; couvert avec précision. Le cas d’utilisation nécessite qu’il teste les points de contrôle. Dans notre pratique, le taux de réussite au premier essai ne dépasse pas 5 %.

Après l'échec de sa génération, les gens devront intervenir et effectuer des travaux correctifs. Y compris : débogage, modification du cas d'utilisation pour régénérer, ou modification directe du script généré.

Laissez lIA écrire une automatisation efficace de linterface utilisateur avec un débogage en temps réel

Et ces tâches elles-mêmes nécessitent également beaucoup de main d'œuvre, ce qui est contraire à l'intention initiale de notre système de générer automatiquement des scripts de test via l'IA.

4. L'IA écrit des scripts de test efficaces de manière entièrement automatique

Afin de résoudre ce problème, nous avons repensé l'ensemble du processus de génération de scripts de test par l'IA.

Laissez lIA écrire une automatisation efficace de linterface utilisateur avec un débogage en temps réel

Nous pensons également au travail des gens ensemble. Les gens ont effectué le travail de débogage et de modification dans le système, alors l'IA peut-elle faire cette partie du travail ? Laisser le système exécuter lui-même le code généré et laisser l'IA déboguer et modifier les codes d'erreur qu'elle génère.

Par conséquent, nous avons ajusté la conception du système pour permettre à l'IA d'effectuer ces tâches de manière autonome à la place des humains. Au final, pour tous les cas d'utilisation de la page de détails des commandes d'hôtel de Ctrip, 83,3 % des cas ont été générés avec succès sans la participation de quiconque. Lors du processus de génération du script, des bugs ont été découverts dans 8 % des cas. Nous avons généré ces cas d'utilisation trois fois de suite, avec des taux de réussite de 84,3 %, 81,4 % et 83,3 % respectivement. Le système est stable et efficace.

Laissez lIA écrire une automatisation efficace de linterface utilisateur avec un débogage en temps réel

Les cas de test et codes spécifiques sont les suivants :

Laissez lIA écrire une automatisation efficace de linterface utilisateur avec un débogage en temps réel

Tout d'abord, vous devez accéder au module des droits d'utilisateur plus bas sur la page des détails de la commande, puis cliquer sur le zone d'optimisation des réservations pour faire apparaître la couche flottante des prix.

Laissez lIA écrire une automatisation efficace de linterface utilisateur avec un débogage en temps réel

Vérifiez ensuite si les détails des frais incluent Black Diamond VIP.

Laissez lIA écrire une automatisation efficace de linterface utilisateur avec un débogage en temps réel

Le code de test final généré est le suivant :

Laissez lIA écrire une automatisation efficace de linterface utilisateur avec un débogage en temps réel

5. Implémentation du système

Le schéma d'architecture de base de l'ensemble du système est le suivant. La partie centrale du système est un programme-cadre Langchain. Il accédera au grand modèle, et nous l'avons équipé de plusieurs outils, qui sont principalement divisés en deux catégories, l'une est l'outil d'obtention d'informations sur la page et l'autre est l'outil de débogage.

Langchain utilisera automatiquement l'outil d'acquisition d'informations de page pour obtenir les données de page nécessaires afin de déterminer quel contrôle spécifique est nécessaire pour que l'opération en cours génère du code. Utilisez ensuite l'outil de débogage pour exécuter le code sur le téléphone mobile et jugez si le code que vous avez généré est correct en fonction des commentaires de débogage.

Laissez lIA écrire une automatisation efficace de linterface utilisateur avec un débogage en temps réel

5.1 Mots rapides

Une fois que nous avons la structure de base, nous avons besoin de mots rapides pour coller ces outils ensemble et permettre à l'IA de comprendre comment elle devrait fonctionner. Structurellement, notre mot d'invite contient plusieurs parties : premièrement, dites à l'IA comment elle doit penser et fonctionner, deuxièmement, dites-lui de déboguer chacune de ses instructions générées via Debug, dites-lui à nouveau quel est le format de sortie, et enfin dites-lui Le texte complet du cas d’utilisation à gérer par l’IA.

Pour indiquer à l'IA comment elle doit penser et fonctionner, l'extension comprend les parties suivantes : Tout d'abord, regardez quels modules contient la page, quel module doit être l'étape que je souhaite utiliser, quels contrôles et composants se trouvent dans ce module. , et ce que je veux actuellement utiliser. De quel contrôle ou composant s'agit-il, quelle est l'action que je veux utiliser et quelle est la syntaxe spéciale que je peux utiliser, puis générer une instruction.

Laissez lIA écrire une automatisation efficace de linterface utilisateur avec un débogage en temps réel

5.2 Outil de débogage

L'essence de l'outil de débogage est de se connecter à distance au téléphone via l'outil adb. Après la connexion, nous pouvons envoyer les instructions générées par l'IA au téléphone mobile pour qu'il s'exécute et lire les résultats d'exécution à l'IA, permettant à l'IA de juger si les instructions qu'elle a générées sont correctes.

5.3 Outil d'acquisition d'informations sur les pages

Le but ultime de l'outil d'acquisition d'informations sur les pages est d'aider l'IA à déterminer le contenu à exploiter tel qu'écrit dans le cas d'utilisation BDD, et l'ID du spécifique le contrôle qu'il veut faire fonctionner est quoi, avec l'ID, les instructions de programme ultérieures peuvent être générées en fonction de l'ID. Pour obtenir l'ID, nous avons besoin d'une bibliothèque de contrôles et de composants. Le cœur de cette bibliothèque est l'ID de chaque contrôle et composant et leur description. Avec ces deux contenus, l'IA peut être aidé à deviner quel contrôle est nécessaire en fonction de la description du contrôle après lecture du cas d'utilisation BDD.

Afin d'atteindre cet objectif, nous avons créé une bibliothèque de contrôle de page. Outre l'ID et la description de chaque contrôle de la page, cette bibliothèque contient également la relation entre la page et les composants, ainsi que la relation entre les composants et les contrôles. Cela peut faciliter l’interrogation de l’IA étape par étape.

Laissez lIA écrire une automatisation efficace de linterface utilisateur avec un débogage en temps réel

La bibliothèque de contrôle elle-même est générée sur la base de notre analyse statique du code via des tâches. Cependant, dans les applications réelles, étant donné que les commandes actuellement affichées sur la page diffèrent en fonction de l'état de la scène, les commandes de la page seront masquées dans certains scénarios. Par conséquent, l'outil d'acquisition d'informations de page croisera les contrôles actuellement existants sur la page avec les contrôles interrogés dans la bibliothèque de contrôles, obtenant ainsi les contrôles réellement affichés sur la page actuelle et leurs informations de description.

5.4 Division supplémentaire de l'IA

Laissez lIA écrire une automatisation efficace de linterface utilisateur avec un débogage en temps réel

Après avoir terminé ces tâches, l'IA peut essentiellement effectuer automatiquement la partie jaune de l'image ci-dessus, qui est le travail humain. Le taux de réussite des générations est également passé de 5 % à 55 %, mais le taux de réussite de 55 % n'est toujours pas suffisant.

Nous avons analysé plus en détail les cas ayant échoué. Il a été constaté que le principal problème était l'hallucination de l'IA. Bien que les mots d'invite soient relativement détaillés, l'IA ne les traitait parfois pas comme requis et disait parfois des bêtises d'elle-même.

Notre conclusion est que l’IA se voit confier trop de responsabilités et qu’elle a trop de choses à prendre en compte. Ce n’est pas qu’il n’a pas assez de jetons, mais que s’il doit faire trop de choses, il sera oublié et incapable de remplir avec précision les exigences. Par conséquent, nous avons envisagé le fractionnement et avons toujours utilisé la fonction langchain. Puisque l'IA peut remplir des fonctions via des outils, pourquoi cet outil lui-même ne peut-il pas être une IA ?

Laissez lIA écrire une automatisation efficace de linterface utilisateur avec un débogage en temps réel

Vous pouvez même le diviser à nouveau.

Laissez lIA écrire une automatisation efficace de linterface utilisateur avec un débogage en temps réel

Grâce à ces divisions, nous avons rendu le travail que chaque IA doit prendre en compte de moins en plus simple, et nous avons également rendu son traitement plus précis, et le taux de réussite de la génération finale a augmenté à plus de 80 %.

VI. Développement de suivi

Actuellement, grâce à notre travail, l'IA peut générer du code de test automatisé avec un taux de réussite d'environ 80 % sans participation humaine. continuez à le résoudre.

1) Le coût d'appel de grands modèles est encore élevé. Existe-t-il une meilleure façon de réaliser les travaux à moindre coût ?

2) Il y a actuellement certaines opérations ou vérifications difficiles à gérer. Le taux de réussite de 80% a encore beaucoup de marge d'amélioration, et les gens doivent encore revoir les résultats générés.

3) De plus, il y a place à l'amélioration dans d'autres aspects, ce qui mérite notre amélioration continue.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer