Eine Gruppe von Forschern der Chinesischen Akademie der Wissenschaften und der Monash University präsentierte a neuer Ansatz zur Generierung von Texteingaben für das Testen mobiler Apps basierend auf einem großen vortrainierten Sprachmodell (LLM). Der Ansatz mit dem Namen QTypist wurde mit 106 Android-Apps und automatisierten Testtools evaluiert und zeigte eine deutliche Verbesserung der Testleistung.
Laut den Forschern ist eines der größten Hindernisse für die Automatisierung des Testens mobiler Apps die Notwendigkeit, Texteingaben zu generieren, was selbst für menschliche Tester schwierig sein kann. Dies ist eine Folge der Tatsache, dass verschiedene Eingabekategorien erforderlich sein können, einschließlich Geolokalisierung, Adressen, Gesundheitsmaßnahmen sowie die Beziehung, die zwischen verschiedenen Eingaben bestehen kann, die auf aufeinanderfolgenden Eingabeseiten erforderlich sind und zu Validierungseinschränkungen führen. Darüber hinaus, wie einer der Autoren des Artikels weiter erklärt TwitterDie in einer Anwendungsansicht bereitgestellte Eingabe bestimmt, welche anderen Ansichten angezeigt werden.
Large Language Models (LLM) wie z Bert und GPT-3 gezeigt, dass sie es können Aufsätze schreibenzu beantworte die Fragenund zu Quellcode generieren. QTypist versucht, die Fähigkeit von LLMs zu nutzen, aus einer mobilen Anwendung extrahierte Eingabeaufforderungen zu verstehen, um aussagekräftige Ausgaben zu generieren, die als Texteingabe für die Anwendung verwendet werden können.
Ausgehend von einer GUI-Seite mit Texteingabe und ihrer entsprechenden Ansichtshierarchiedatei extrahieren wir zunächst Kontextinformationen für die Texteingabe und entwerfen Sprachmodelle, um Eingabeaufforderungen für die Eingabe in das LLM zu generieren. Um die Leistung von LLM in mobilen Eingabeszenarien zu verbessern, entwickeln wir eine prompt-basierte Datenkonstruktions- und Tuning-Methode, die automatisch die Prompts und Antworten für die Modelloptimierung erstellt.
In einem ersten Schritt extrahiert QTypist mithilfe eines GUI-Testwerkzeugs Kontextinformationen für eine GUI-Ansicht, einschließlich Metadaten, die mit Eintrags-Widgets verknüpft sind, z.
Der Eingabeaufforderungserzeugungsschritt verwendet die drei Kategorien von extrahierten Informationen, um eine Eingabeaufforderung basierend auf einer Reihe von Modellen zu erstellen, die von linguistischen Autoren definiert wurden, die an einem Satz von 500 Referenzanwendungen arbeiten.
Dieser Prozess endet mit 14 Sprachmodellen, die sich jeweils auf das Eingabe-Widget, den lokalen Kontext und den globalen Kontext beziehen […]. Die Eingabe-Widget-Vorlagen geben explizit an, was in das Widget eingegeben werden soll, und wir verwenden Schlüsselwörter wie Substantiv (widget[n]), Verb (Widget[v]) und Präposition (widget[prep]), um das Muster zu entwerfen.
Der Prompt-Datensatz wird schließlich als Eingabe für GPT-3 verwendet, dessen Ausgabe als Eingabeinhalt verwendet wird. Die Wirksamkeit dieses Ansatzes wurde bewertet, indem er mit den Ausgangswerten einer Reihe alternativer Ansätze verglichen wurde, einschließlich DroidBot, humanoid, und andere, sowie menschliche Beurteilung der Qualität der generierten Eingaben. Darüber hinaus führten die Forscher eine Nützlichkeitsbewertung von 106 auf Google Play verfügbaren Android-Apps durch, indem sie QTypist in automatisierte Testtools integrierten. In jedem Fall, so heißt es, konnte QTypist die Leistung bestehender Ansätze verbessern.
Während die anfängliche Arbeit des Forscherteams hinter QTypist vielversprechend ist, ist weitere Arbeit erforderlich, um sie auf Fälle auszudehnen, in denen die Anwendung nicht genügend Kontextinformationen liefert, und um sie auf Fälle anzuwenden, die über GUI-Tests hinausgehen.