Simple Science

Hochmoderne Wissenschaft einfach erklärt

# Computerwissenschaften# Software-Entwicklung

Sprachmodelle nutzen, um App-Bugs zu entdecken

Diese Studie zeigt, wie Sprachmodelle versteckte Bugs in mobilen Apps finden können.

― 7 min Lesedauer


LLMs bei der FehlersucheLLMs bei der Fehlersuchein Mobilappsvon funktionalen Bugs in Apps.Sprachmodelle verbessern die Erkennung
Inhaltsverzeichnis

Mobile Apps sind ein wichtiger Teil unseres Alltags geworden, mit Millionen von Apps in den App-Stores. Viele Nutzer werfen jedoch das Handtuch, weil es funktionale Probleme gibt. Diese Realität zwingt Entwickler dazu, schnell Probleme zu finden und zu beheben. Es gibt viele automatisierte Methoden, um mobile Apps zu testen, die sich auf das konzentrieren, was wir grafische Benutzeroberflächen (GUIs) nennen. Diese Methoden zielen darauf ab, Fehler zu überprüfen, besonders die, die die App zum Absturz bringen. Leider werden oft subtilere Probleme übersehen, die als Non-Crash Functional (NCF) Bugs bekannt sind.

NCF Bugs sind Probleme, die den normalen Betrieb der App stören, ohne sie zum Absturz zu bringen. Zum Beispiel könnte ein Nutzer erwarten, eine Datei mit einem bestimmten Namen zu speichern, aber ein Fehler sorgt dafür, dass sich der Name unerwartet ändert. Diese Bugs zu entdecken ist entscheidend, da sie auch zu schlechten Nutzererlebnissen führen können, selbst wenn die App nicht abstürzt.

Traditionelle Testmethoden

Zu den traditionellen Methoden für das Testen von mobilen Apps gehören Zufälliges Testen und modellbasiertes Testen. Zufälliges Testen generiert Aktionssequenzen, um verschiedene Teile der App zu prüfen. Modellbasiertes Testen basiert auf der Erstellung eines Modells der App zur Generierung von Tests. Beide Ansätze zielen darauf ab, so viel Code wie möglich abzudecken. Sie konzentrieren sich jedoch hauptsächlich auf die Absturzdiagnose und erkennen NCF Bugs nicht effektiv.

Es gibt einige spezialisierte Tools zur Erkennung bestimmter Arten von NCF Bugs, die oft Einschränkungen haben. Sie basieren auf vordefinierten Regeln und können nur einen engen Bereich von Problemen angehen. Zum Beispiel können bestimmte Tools Datenverluste oder einstellungsbezogene Probleme identifizieren, generalisieren jedoch nicht gut auf verschiedene NCF Bug-Typen. Daher gibt es einen Bedarf an effektiveren Testmethoden, um NCF Bugs zu finden.

Die Rolle grosser Sprachmodelle

Grosse Sprachmodelle (LLMs) haben in verschiedenen Bereichen, einschliesslich des Verständnisses von Sprache und der Generierung menschenähnlicher Texte, vielversprechende Ergebnisse gezeigt. Wir glauben, dass diese Modelle helfen können, NCF Bugs in mobilen Apps zu identifizieren.

LLMs werden mit riesigen Textmengen trainiert und haben Wissen über häufige Probleme, die in mobilen Anwendungen auftreten. Indem wir LLMs als Testorakel verwenden, können wir ihre Fähigkeit zur Erkennung von NCF Bugs untersuchen. Ein Testorakel ist ein Mechanismus, um festzustellen, ob ein bestimmtes Verhalten der App korrekt ist oder nicht. LLMs auf diese Weise zu nutzen, könnte den Erkennungsbereich von NCF Bugs erweitern und die Erkennungsraten über das hinaus erhöhen, was bestehende Tools leisten können.

Methodologie

In unserer Studie wollten wir herausfinden, wie gut LLMs als Testorakel zur Erkennung von NCF Bugs in Android-Anwendungen funktionieren. Wir haben mehrere Fragen formuliert, um unsere Forschung zu leiten:

  1. Wie effektiv sind LLMs als Testorakel im Vergleich zu bestehenden Bug-Detection-Tools?
  2. Welchen Einfluss haben spezifische Techniken, die mit LLMs verwendet werden, auf deren Effektivität?
  3. Wie schneiden verschiedene LLM-Modelle bei der Erkennung von NCF Bugs ab?
  4. Können LLMs echte NCF Bugs mithilfe zufällig generierter Testsequenzen effektiv erkennen?

Um diese Fragen zu untersuchen, haben wir einen systematischen Ansatz entworfen, der Datensammlung, Prompt-Designs und Ausführungsphasen umfasst.

Informationsauszug aus Testsequenzen

Wir haben damit begonnen, nützliche Informationen aus Testsequenzen zu extrahieren, die die Interaktionen der Nutzer mit der App simulieren. Diese Interaktionen führen zu bestimmten Ergebnissen in der App, die wir als Ausführungsresultate (ERs) bezeichnen. Wir haben verschiedene Aktionen wie Klicks und Eingaben überwacht und das resultierende Verhalten der App erfasst.

Unser Prozess umfasste die Sammlung sowohl textbasierter Informationen als auch Bilder des Layouts der App während der Tests. Dieser Multimedia-Ansatz hilft den LLMs, den Kontext rund um die Benutzeraktionen und das Verhalten der App zu verstehen.

Prompt-Generierung

Nachdem wir die notwendigen Informationen gesammelt hatten, haben wir Prompts für die LLMs erstellt. Prompts sind strukturierte Fragen oder Anweisungen, die dazu dienen, die Antwort des Modells zu leiten. Wir haben zwei Arten von Prompts erstellt: einen zur Erkennung von UI-Logikfehlern und einen anderen zur Identifizierung von Anzeigeproblemen.

Der erste Prompt verwendete Textdaten, um logische Fehler, wie falsche Interaktionen, zu identifizieren. Der zweite Prompt kombinierte Text mit Bildern der App, um Anzeigeprobleme wie visuelle Inkonsistenzen zu erkennen.

Prompt-Ausführung

In dieser Phase führten wir die Prompts mit den LLMs aus. Da LLMs möglicherweise nicht speziell für die Erkennung von NCF Bugs trainiert sind, haben wir Beispiele für typische funktionale Bugs bereitgestellt, um ihre Antworten zu leiten. Diese Strategie wird als In-Context Learning bezeichnet. Durch die Präsentation relevanter Beispiele wollten wir die Genauigkeit der Fehlererkennung verbessern.

Die Antworten beider Prompts wurden dann gemeinsam analysiert. Wenn einer der Prompts auf einen potenziellen NCF Bug hinwies, klassifizierten wir ihn als erkannten Bug. Dieser integrierte Ansatz zielte darauf ab, die Erkennungsraten zu maximieren und Fehlalarme zu minimieren.

Ergebnisse

Durch unsere Analyse wollten wir bewerten, wie effektiv LLMs bei der Erkennung von NCF Bugs waren. Wir konzentrierten uns auf 71 gut dokumentierte Bugs aus mehreren Android-Anwendungen. Unsere Ergebnisse deuteten darauf hin, dass LLMs NCF Bugs mit einer relativ hohen Erfolgsquote erkennen konnten.

In unseren Tests identifizierten die LLMs etwa 49% der Bugs. Diese Leistung war bemerkenswert besser als die bestehenden Tools, die nur einen kleinen Bruchteil der gleichen Bugs erkannten. Darüber hinaus haben wir während der Tests erfolgreich 24 zuvor unbekannte NCF Bugs aufgedeckt, was das Potenzial der LLMs in realen Szenarien zeigt.

Vergleich mit bestehenden Tools

Beim Vergleich unserer Ergebnisse mit denen bestehender Bug-Detection-Methoden wurde klar, dass LLMs deutlich besser abschneiden. Während traditionelle Tools nur eine begrenzte Anzahl von Bugs abdecken konnten, erweiterte unser LLM-basiertes Konzept den Bereich erkennbarer Probleme. Diese markante Verbesserung ist hauptsächlich auf die Fähigkeit der LLMs zurückzuführen, textuelle Daten und kontextuelle Hinweise aus dem Layout der App zu verstehen, was eine umfassendere Beurteilung der Funktionalität ermöglicht.

Herausforderungen und Einschränkungen

Trotz der vielversprechenden Ergebnisse hatten wir auch einige Herausforderungen bei der Verwendung von LLMs als Testorakel. Ein grosses Problem war die Zufälligkeit der Ergebnisse. Die Leistung der LLMs variierte erheblich zwischen verschiedenen Testdurchläufen, was zu Inkonsistenzen bei der Fehlererkennung führte. Diese Inkonsistenz erweckte Bedenken hinsichtlich ihrer Zuverlässigkeit in praktischen Anwendungen.

Ausserdem beobachteten wir eine relativ hohe Rate von Fehlalarmen. Das bedeutet, dass die LLMs manchmal Funktionen als fehlerhaft markierten, obwohl sie richtig funktionierten. Hohe Fehlalarmraten könnten dazu führen, dass unnötig Zeit und Mühe aufgewendet werden müssen, um die Ergebnisse zu überprüfen, insbesondere wenn Entwickler jeden gemeldeten Bug manuell prüfen müssen.

Wir identifizierten auch eine Leistungsminderung über die Zeit. In Fällen, in denen wir Tests mit denselben Prompts wiederholten, sahen wir einen Rückgang der Erkennungsraten. Diese Verschlechterung deutet darauf hin, dass LLMs kontinuierliche Anpassungen benötigen, um effektiv zu bleiben.

Zukünftige Richtungen

Um die Einschränkungen und Herausforderungen, denen wir begegnet sind, anzugehen, ergeben sich mehrere Ansätze für zukünftige Forschung. Ein zentraler Bereich ist die Verbesserung der Zuverlässigkeit von LLMs bei der Fehlererkennung. Dies könnte die Entwicklung adaptiver Systeme umfassen, die das Prompt-Design basierend auf den schnellen Änderungen der LLM-Leistung anpassen.

Darüber hinaus ist es wichtig, sich auf die Reduzierung von Fehlalarmen zu konzentrieren. Das Entwerfen von Filtermechanismen oder das spezifische Trainieren von LLMs auf materialbezogene NCF Bugs könnte helfen, ihre Genauigkeit bei der Identifizierung echter Bugs zu verbessern. Zudem wird die Entwicklung von Methoden zur Generierung optimierter Testsequenzen ein wichtiger Schritt zur Verbesserung der Erkennungsfähigkeit sein.

Fazit

Unsere Studie hebt die Effektivität grosser Sprachmodelle als Testorakel zur Erkennung von Non-Crash Functional Bugs in Android-Anwendungen hervor. Durch den Einsatz eines LLM-basierten Ansatzes erzielten wir eine bemerkenswert höhere Erkennungsrate im Vergleich zu bestehenden Tools und zeigten das Potenzial der LLMs, den Prozess der Fehlererkennung zu verändern.

Durch systematisches Testen und die Integration von multimedialen Informationen demonstrierten wir, dass LLMs effektiv verschiedene Arten von NCF Bugs in realen Anwendungen identifizieren können. Trotz Herausforderungen wie Leistungsvariabilität und hohen Fehlalarmraten legen unsere Ergebnisse eine solide Grundlage für zukünftige Forschung und Entwicklung in diesem Bereich.

Insgesamt unterstreicht diese Arbeit die Notwendigkeit innovativer Lösungen zur Verbesserung des Testens mobiler Apps und bahnt den Weg für bessere Nutzererlebnisse und zuverlässigere Softwareanwendungen.

Originalquelle

Titel: A Study of Using Multimodal LLMs for Non-Crash Functional Bug Detection in Android Apps

Zusammenfassung: Numerous approaches employing various strategies have been developed to test the graphical user interfaces (GUIs) of mobile apps. However, traditional GUI testing techniques, such as random and model-based testing, primarily focus on generating test sequences that excel in achieving high code coverage but often fail to act as effective test oracles for non-crash functional (NCF) bug detection. To tackle these limitations, this study empirically investigates the capability of leveraging large language models (LLMs) to be test oracles to detect NCF bugs in Android apps. Our intuition is that the training corpora of LLMs, encompassing extensive mobile app usage and bug report descriptions, enable them with the domain knowledge relevant to NCF bug detection. We conducted a comprehensive empirical study to explore the effectiveness of LLMs as test oracles for detecting NCF bugs in Android apps on 71 well-documented NCF bugs. The results demonstrated that LLMs achieve a 49% bug detection rate, outperforming existing tools for detecting NCF bugs in Android apps. Additionally, by leveraging LLMs to be test oracles, we successfully detected 24 previously unknown NCF bugs in 64 Android apps, with four of these bugs being confirmed or fixed. However, we also identified limitations of LLMs, primarily related to performance degradation, inherent randomness, and false positives. Our study highlights the potential of leveraging LLMs as test oracles for Android NCF bug detection and suggests directions for future research.

Autoren: Bangyan Ju, Jin Yang, Tingting Yu, Tamerlan Abdullayev, Yuanyuan Wu, Dingbang Wang, Yu Zhao

Letzte Aktualisierung: 2024-07-26 00:00:00

Sprache: English

Quell-URL: https://arxiv.org/abs/2407.19053

Quell-PDF: https://arxiv.org/pdf/2407.19053

Lizenz: https://creativecommons.org/licenses/by/4.0/

Änderungen: Diese Zusammenfassung wurde mit Unterstützung von AI erstellt und kann Ungenauigkeiten enthalten. Genaue Informationen entnehmen Sie bitte den hier verlinkten Originaldokumenten.

Vielen Dank an arxiv für die Nutzung seiner Open-Access-Interoperabilität.

Mehr von den Autoren

Ähnliche Artikel