Heim  >  Artikel  >  Technologie-Peripheriegeräte  >  Lassen Sie KI eine effektive UI-Automatisierung mit Echtzeit-Debugging schreiben

Lassen Sie KI eine effektive UI-Automatisierung mit Echtzeit-Debugging schreiben

WBOY
WBOYnach vorne
2024-03-15 15:46:111053Durchsuche

Über den Autor

Thales Fu, leitender F&E-Manager von Ctrip, setzt sich dafür ein, bessere Wege zu finden, KI und Technik zu kombinieren, um reale Probleme zu lösen.

Einführung

Im schnell iterativen Softwareentwicklungszyklus ist das automatisierte Testen der Benutzeroberfläche (UI) zum Schlüssel zur Verbesserung der Effizienz und zur Sicherstellung der Produktqualität geworden. Da Anwendungen jedoch immer komplexer werden, stoßen herkömmliche UI-Automatisierungsmethoden allmählich an ihre Grenzen. Die KI-gesteuerte UI-Automatisierung ist da, steht aber immer noch vor Herausforderungen in Bezug auf Genauigkeit und Zuverlässigkeit. In diesem Zusammenhang schlägt dieser Artikel eine innovative Perspektive vor: Durch Echtzeit-Debugging-Technologie kann die Wirksamkeit von KI-geschriebenen UI-Automatisierungsskripten erheblich verbessert werden.

Dieses Problem ist nicht nur eine technische Herausforderung, es hängt auch damit zusammen, wie die Bereitstellung von Software beschleunigt und gleichzeitig die Softwarequalität sichergestellt werden kann. In diesem Artikel wird untersucht, wie Echtzeit-Debugging der KI dabei helfen kann, UI-Testskripte genauer zu verstehen und auszuführen, und wie diese Methode revolutionäre Veränderungen in der Softwareentwicklung bewirken kann.

1. Aktueller Stand der UI-Automatisierung

Die UI-Automatisierung hat eine beträchtliche Entwicklung erfahren, vom ursprünglichen einfachen Aufzeichnungs- und Wiedergabetool bis zum heutigen komplexen Skript-Framework. Trotz der kontinuierlichen Weiterentwicklung der Technologie stehen traditionelle UI-Automatisierungsmethoden immer noch vor Herausforderungen, wenn es um den Umgang mit sich schnell ändernden Anwendungsschnittstellen geht. Da Anwendungen immer komplexer und dynamischer werden, reichen herkömmliche Ansätze möglicherweise nicht mehr aus. Daher suchen Ingenieure nach flexibleren und zuverlässigeren Lösungen, um die Effizienz und Zuverlässigkeit der UI-Automatisierung zu verbessern. Es entsteht eine neue Generation von UI-Automatisierungstools und -technologien.

Laut Ergebnissen einer Branchenumfrage ist das manuelle Schreiben von Testskripten ineffizient und nimmt bei der Anwendung von Updates viel Zeit für die Überarbeitung in Anspruch. Untersuchungen zeigen, dass die Pflege von UI-Automatisierungstestskripten 60 bis 70 % der gesamten Testarbeit ausmachen kann. In einer agilen Entwicklungsumgebung kann es mehr als 100 Stunden dauern, vorhandene Automatisierungsskripte für jedes Anwendungsupdate neu zu schreiben und zu testen. Diese hohen Wartungskosten verdeutlichen die Ineffizienz und den Ressourcenverbrauch herkömmlicher UI-Automatisierungsmethoden.

2. Einführung von Behavior-Driven Development BDD

Behavior-Driven Development (BDD) ist eine agile Softwareentwicklungspraxis, die die Kommunikation zwischen Entwicklern, Testern und nicht-technischen Stakeholdern von Softwareprojekten fördert. Kommunizieren Sie effektiver. Cucumber ist ein beliebtes Tool zur Implementierung der BDD-Methodik, das es Teammitgliedern ermöglicht, explizite, ausführbare Testfälle in natürlicher Sprache zu schreiben.

Cucumber verwendet eine domänenspezifische Sprache (DSL) namens Gherkin, die extrem einfach zu lesen ist und es auch technisch nicht versierten Personen ermöglicht, den Zweck und Inhalt des Tests zu verstehen. Testszenarien werden in Form einer Reihe von „Give-When-Then“-Anweisungen geschrieben, die klar beschreiben, wie das System unter bestimmten Bedingungen reagieren soll.

Zum Beispiel kann die Warenkorbfunktion einer Online-Shopping-Website das folgende Gherkin-Szenario aufweisen:

Lassen Sie KI eine effektive UI-Automatisierung mit Echtzeit-Debugging schreiben

Dieser Ansatz nutzt natürliche Sprachbeschreibungsfunktionen, um eine bessere Kommunikation und Kommunikation zwischen technischen und nichttechnischen Teams zu ermöglichen verstehen. Gleichzeitig übernimmt das Testszenario in natürlicher Sprache auch die Rolle der Projektdokumentation und hilft neuen Teammitgliedern, die Projektfunktionen schnell zu verstehen. Dies ermöglicht es nicht-technischem Personal, direkt am Testfall-Schreib- und Verifizierungsprozess teilzunehmen, wodurch sichergestellt wird, dass die Entwicklungsarbeit eng an den Geschäftsanforderungen ausgerichtet ist.

Aber es gibt auch Einschränkungen. Obwohl das Testszenario in natürlicher Sprache geschrieben ist, erfordert die Implementierung (Schrittdefinition) hinter jedem Schritt immer noch, dass technisches Personal es in einer Programmiersprache schreibt. Das bedeutet, dass die Implementierung der Testlogik einen komplexen Codierungsaufwand erfordern kann. Wenn Anwendungen wachsen und sich ändern, kann die Wartung und Aktualisierung der entsprechenden Testschritte mühsam werden. Insbesondere wenn sich die Benutzeroberfläche häufig ändert, müssen auch die relevanten Schrittdefinitionen entsprechend aktualisiert werden. Es gibt auch Einschränkungen in Bezug auf Flexibilität und Anpassbarkeit: Cucumber-Testskripte basieren auf vordefinierten Schritten und Strukturen, was die Flexibilität des Tests einschränken kann. Bei einigen komplexen Testszenarien erfordert die Implementierung einer bestimmten Testlogik möglicherweise kreative Möglichkeiten, um die Einschränkungen des Frameworks zu umgehen.

Lassen Sie KI eine effektive UI-Automatisierung mit Echtzeit-Debugging schreiben

3. Aktuelle Anwendung von KI in der UI-Automatisierung

In den letzten Jahren wurde die KI-Technologie in die UI-Automatisierung integriert, insbesondere nach dem Aufkommen großer Modelle, die durch GPT dargestellt werden, da sie selbst über Codegenerierung verfügt Fähigkeiten. Die Branche hat auch damit begonnen, die Testfallbeschreibungssprache von Gherkin über große Modelle direkt in Testcode zu generieren.

Lassen Sie KI eine effektive UI-Automatisierung mit Echtzeit-Debugging schreiben

Der vom aktuellen großen Modell generierte Testcode kann die Erwartungen jedoch nicht vollständig erfüllen. Es gibt mehrere Hauptprobleme: Erstens kann das generierte Skript aufgrund von Syntaxfehlern möglicherweise nicht ausgeführt werden Der Anwendungsfall erfordert es, die Prüfpunkte zu testen. In unserer Praxis liegt die Erfolgsquote beim ersten Versuch bei maximal 5 %.

Nachdem die Generierung fehlgeschlagen ist, müssen die Leute eingreifen und Abhilfe schaffen. Einschließlich: Debuggen, Ändern des neu zu generierenden Anwendungsfalls oder direktes Ändern des generierten Skripts.

Lassen Sie KI eine effektive UI-Automatisierung mit Echtzeit-Debugging schreiben

Und diese Aufgaben selbst erfordern auch viel Manpower, was im Widerspruch zur ursprünglichen Absicht unseres Systems steht, Testskripte automatisch durch KI zu generieren.

4. KI schreibt vollautomatisch effektive Testskripte

Um dieses Problem zu lösen, haben wir den gesamten Prozess der KI-Erstellung von Testskripten neu überdacht.

Lassen Sie KI eine effektive UI-Automatisierung mit Echtzeit-Debugging schreiben

Wir berücksichtigen auch die Zusammenarbeit der Menschen. Die Leute haben die Debugging- und Änderungsarbeiten im System durchgeführt. Kann die KI diesen Teil der Arbeit übernehmen? Lassen Sie das System den generierten Code selbst ausführen und lassen Sie die KI die von ihr generierten Fehlercodes debuggen und ändern.

Daher haben wir das Systemdesign so angepasst, dass die KI diese Aufgaben autonom anstelle von Menschen erledigt. Letztendlich wurden für alle Anwendungsfälle der Ctrip-Seite mit Hotelbestelldetails 83,3 % der Fälle erfolgreich generiert, ohne dass irgendjemand beteiligt war. Während des Skriptgenerierungsprozesses wurden in 8 % der Fälle Fehler entdeckt. Wir haben diese Anwendungsfälle dreimal hintereinander generiert, mit Erfolgsraten von 84,3 %, 81,4 % bzw. 83,3 %. Das System ist stabil und effektiv.

Lassen Sie KI eine effektive UI-Automatisierung mit Echtzeit-Debugging schreiben

Die spezifischen Testfälle und Codes lauten wie folgt:

Lassen Sie KI eine effektive UI-Automatisierung mit Echtzeit-Debugging schreiben

Zunächst müssen Sie zum Benutzerrechtemodul weiter unten auf der Bestelldetailseite blättern und dann auf klicken Bereich zur Buchungsoptimierung, um die Preis-Floating-Ebene einzublenden.

Lassen Sie KI eine effektive UI-Automatisierung mit Echtzeit-Debugging schreiben

Dann prüfen Sie, ob in den Gebührenangaben Black Diamond VIP enthalten ist.

Lassen Sie KI eine effektive UI-Automatisierung mit Echtzeit-Debugging schreiben

Der endgültig generierte Testcode lautet wie folgt:

Lassen Sie KI eine effektive UI-Automatisierung mit Echtzeit-Debugging schreiben

5. Systemimplementierung

Das Kernarchitekturdiagramm des gesamten Systems lautet wie folgt. Der Kernbestandteil des Systems ist ein Langchain-Rahmenprogramm. Es greift auf das große Modell zu und wir haben es mit mehreren Tools ausgestattet, die hauptsächlich in zwei Kategorien unterteilt sind: Das eine ist das Tool zum Abrufen von Seiteninformationen und das andere das Debugging-Tool.

Langchain verwendet automatisch das Tool zur Erfassung von Seiteninformationen, um die Seitendaten nach Bedarf abzurufen und zu bestimmen, welche spezifische Steuerung für den aktuellen Vorgang zum Generieren von Code erforderlich ist. Verwenden Sie dann das Debugging-Tool, um den Code tatsächlich auf dem Mobiltelefon auszuführen, und beurteilen Sie anhand des Debugging-Feedbacks, ob der von Ihnen generierte Code korrekt ist.

Lassen Sie KI eine effektive UI-Automatisierung mit Echtzeit-Debugging schreiben

5.1 Aufforderungsworte

Nachdem wir die Grundstruktur haben, brauchen wir schnelle Worte, um diese Werkzeuge zusammenzufügen und der KI verständlich zu machen, wie sie funktionieren soll. Strukturell besteht unser Eingabeaufforderungswort aus mehreren Teilen: Teilen Sie der KI zunächst mit, wie sie denken und arbeiten soll, und weisen Sie sie zweitens an, jede ihrer generierten Anweisungen über Debug zu debuggen, teilen Sie ihr erneut das Ausgabeformat mit und teilen Sie ihr schließlich mit Der vollständige Text des Anwendungsfalls, der von der KI bearbeitet werden soll.

Um der KI zu sagen, wie sie denken und funktionieren soll, umfasst die Erweiterung folgende Teile: Schauen Sie sich zunächst an, welche Module die Seite hat, welches Modul der Schritt sein soll, den ich bedienen möchte, welche Bedienelemente und Komponenten sich in diesem Modul befinden , und was ich gerade bedienen möchte Um welches Steuerelement oder welche Komponente handelt es sich, welche Aktion möchte ich ausführen und welche spezielle Syntax kann ich verwenden und dann eine Anweisung generieren.

Lassen Sie KI eine effektive UI-Automatisierung mit Echtzeit-Debugging schreiben

5.2 Debugging-Tool

Der Kern des Debugging-Tools besteht darin, über das ADB-Tool eine Fernverbindung zum Telefon herzustellen. Nach der Verbindung können wir die von der KI generierten Anweisungen zum Ausführen an das Mobiltelefon senden und die Laufergebnisse an die KI lesen, sodass die KI beurteilen kann, ob die von ihr generierten Anweisungen korrekt sind. 5.3 Tool zur Erfassung von Seiteninformationen Das Steuerelement, das es bedienen möchte, ist Was, mit der ID können nachfolgende Programmanweisungen basierend auf der ID generiert werden. Um die ID zu erhalten, benötigen wir eine Steuerelement- und Komponentenbibliothek. Der Kern dieser Bibliothek ist die ID jedes Steuerelements und jeder Komponente sowie deren Beschreibung. Mit diesen beiden Inhalten kann die KI anhand der Beschreibung der Steuerung nach dem Lesen des BDD-Anwendungsfalls erraten werden, welche Steuerung benötigt wird.

Um diesen Zweck zu erreichen, haben wir eine Seitensteuerungsbibliothek eingerichtet. Zusätzlich zur ID und Beschreibung jedes Steuerelements auf der Seite enthält diese Bibliothek auch die Beziehung zwischen der Seite und Komponenten sowie die Beziehung zwischen Komponenten und Steuerelementen. Es kann der KI die schrittweise Abfrage erleichtern.

Die Steuerbibliothek selbst wird basierend auf unserer statischen Analyse des Codes durch Jobs generiert. In tatsächlichen Anwendungen werden die Steuerelemente auf der Seite jedoch in einigen Szenarien ausgeblendet, da die derzeit auf der Seite angezeigten Steuerelemente je nach Szenenstatus unterschiedlich sind. Daher schneidet das Tool zur Erfassung von Seiteninformationen die derzeit auf der Seite vorhandenen Steuerelemente mit den in der Steuerelementbibliothek abgefragten Steuerelementen ab und erhält so die tatsächlich auf der aktuellen Seite angezeigten Steuerelemente und ihre Beschreibungsinformationen. 5.4 Weiter gespaltene KI Die Erfolgsquote bei der Generierung ist ebenfalls von 5 % auf 55 % gestiegen, aber die Erfolgsquote von 55 % reicht immer noch nicht aus.

Wir haben die fehlgeschlagenen Fälle weiter analysiert. Es stellte sich heraus, dass das Hauptproblem die Halluzination der KI war. Obwohl die prompten Worte relativ detailliert waren, ging die KI manchmal nicht wie erforderlich mit der Situation um und redete manchmal selbst Unsinn.

Unser Fazit ist, dass der KI zu viel Verantwortung übertragen wird und zu viele Dinge berücksichtigt werden müssen. Es ist nicht so, dass es nicht genügend Token hat, aber wenn es zu viele Dinge tun muss, wird es vergessen und kann die Anforderungen nicht genau erfüllen. Daher haben wir über eine Aufteilung nachgedacht und dennoch die Funktion von Langchain verwendet. Da KI Funktionen durch Tools ausführen kann, warum kann dieses Tool selbst keine KI sein? Lassen Sie KI eine effektive UI-Automatisierung mit Echtzeit-Debugging schreiben

Du kannst es sogar noch einmal teilen.

Lassen Sie KI eine effektive UI-Automatisierung mit Echtzeit-Debugging schreibenDurch diese Aufteilungen haben wir die Arbeit, die jede KI berücksichtigen muss, weniger und einfacher gemacht und sie auch genauer verarbeitet, und die Erfolgsquote der endgültigen Generation ist auf über 80 % gestiegen.

Follow-up-Entwicklung

Derzeit kann KI durch unsere Arbeit automatisierten Testcode mit einer Erfolgsquote von etwa 80 % ohne menschliche Beteiligung generieren Löse es weiter.

1) Die Kosten für den Anruf bei großen Modellen sind immer noch hoch. Gibt es eine bessere Möglichkeit, die Arbeit zu geringeren Kosten abzuschließen?

2) Es gibt derzeit einige Vorgänge oder Überprüfungen, die schwierig zu handhaben sind. Die Erfolgsquote von 80 % bietet noch viel Raum für Verbesserungen und die generierten Ergebnisse müssen noch überprüft werden.

3) Darüber hinaus gibt es in anderen Aspekten Verbesserungspotenzial, das unserer kontinuierlichen Verbesserung würdig ist.

Das obige ist der detaillierte Inhalt vonLassen Sie KI eine effektive UI-Automatisierung mit Echtzeit-Debugging schreiben. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:51cto.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen