Simple Science

Hochmoderne Wissenschaft einfach erklärt

# Computerwissenschaften# Software-Entwicklung

FormNexus: Eine neue Art, Webformulare zu testen

Hier ist FormNexus, ein Verfahren zur effizienten Automatisierung von Webformulartests.

― 13 min Lesedauer


Automatisiertes TestenAutomatisiertes Testenvon WebformularenAutomatisierungstechniken.Webformular-Tests mit fortschrittlichenDie Revolutionierung von
Inhaltsverzeichnis

Automatisiertes Testen von Webformularen war eine echte Herausforderung, weil diese Formulare so gestaltet sind, dass sie für Menschen einfach zu bedienen sind, und ihre komplizierten Designs auf verschiedenen Geräten funktionieren müssen. In diesem Artikel wird eine neue Methode namens FormNexus vorgestellt, mit der automatisierte Tests für Webformulare generiert werden. Diese Methode konzentriert sich darauf, die Bedeutung einzelner Formularelemente zu verstehen und wie sie miteinander in Beziehung stehen. Indem wir den verwendeten Text, die Struktur des Objektmodells (DOM) und die Anordnung der Elemente betrachten, möchte FormNexus nützliche Einblicke gewinnen. Diese Einblicke werden in einem, was wir den Form Entity Relation Graph (FERG) nennen, organisiert, der Computern hilft, die Informationen in Formularen besser zu verstehen.

FormNexus nutzt auch Grosse Sprachmodelle (LLMs), um einen Prozess zu schaffen, der sich im Laufe der Zeit verbessert. Dieser Prozess hilft dabei, die Regeln für Eingaben basierend auf den Antworten zu erstellen und zu verfeinern, die beim Absenden von Formularen eingehen. Letztendlich produziert diese Methode einen vollständigen Satz von Testfällen, die die Webformulare gründlich bewerten, indem sie systematisch ungültige Eingaben testen. Unsere Ergebnisse zeigen, dass FormNexus, wenn es mit GPT-4 kombiniert wird, mehr Formularübermittlungszustände abdeckt als bestehende Modelle.

In der heutigen digitalen Welt sind Webanwendungen für unsere täglichen Aufgaben unverzichtbar. Diese Anwendungen sind immer komplexer geworden, was den Nutzern ermöglicht, auf fortgeschrittene Weise zu interagieren. Ein wichtiger Aspekt dieser Interaktion geschieht über Formulare, die entscheidend sind, um Nutzerinformationen zu sammeln und die Kommunikation zwischen Nutzern und Software zu erleichtern. Angesichts ihrer Bedeutung ist es entscheidend, diese Formulare gründlich zu testen, um sicherzustellen, dass sie korrekt funktionieren.

Obwohl es Verbesserungen bei den Methoden zum Testen von Webanwendungen gegeben hat, bleibt der Bereich des Formular-Tests unterexploriert. Die Erstellung von Eingabewerten und Testfällen für Formulare bringt eine einzigartige Reihe von Herausforderungen mit sich. Da Formulare für die Interaktion mit Menschen konzipiert sind, erfordert das Generieren geeigneter Werte ein Verständnis für die Einzelheiten jedes Eingabefeldes: zu erkennen, was jedes Feld bedeutet und wie sie miteinander verbunden sind. Die Komplexität wächst, da das Document Object Model (DOM) eine zusätzliche Schwierigkeitsebene hinzufügt, die die ursprünglichen Bedeutungen des Formulars überschattet. Ausserdem erschwert die Notwendigkeit, dass Webanwendungen nahtlos auf verschiedenen Geräten funktionieren, das Design von HTML-Strukturen, was das Testen weiter erschwert.

Es gibt einen wachsenden Bedarf, die Bedeutungen von Formularen zu verstehen, um effektive automatisierte Testgenerierung zu ermöglichen, was die Anwendung von Techniken der Verarbeitung natürlicher Sprache (NLP) zu einer vielversprechenden Lösung macht. Mit den neuesten Fortschritten in LLMs wie GPT-4 und Llama-2 hat sich die Bandbreite möglicher Methoden erheblich erweitert. Diese LLMs können menschliches Sprachverständnis und -erzeugung nachahmen und bieten eine neue Herangehensweise an die Aufgabe. Jüngste Studien haben bereits LLMs für Aufgaben wie die Erstellung von Unit-Tests und das Ausfüllen von mobilen App-Formularen genutzt, was neue Möglichkeiten zur Bewältigung der Komplikationen der automatisierten Webformular-Testgenerierung eröffnet.

Dieser Artikel führt FormNexus ein, eine neuartige Technik, die für die Generierung von Tests für Webformulare durch LLMs entwickelt wurde. Im Kern befasst sich diese Methode mit den Komplexitäten, die mit dem Verständnis des Kontexts von Eingabefeldern verbunden sind. Wir tun dies, indem wir das Layout des Formulars im DOM in eine besser organisierte Struktur namens Form Entity Relation Graph umwandeln. Diese neue Struktur klärt die Bedeutungen und Beziehungen der Formularelemente und macht sie für Maschinen leichter interpretierbar. Um diese Transformation zu erreichen, analysieren wir die Eigenschaften jedes Knotens, einschliesslich des Textes und seiner Position in der DOM-Hierarchie. Basierend auf diesen Faktoren identifizieren wir Ähnlichkeiten zwischen verschiedenen Knoten und stellen potenzielle Beziehungen her, was Einblicke in die Bedeutungen einzelner Eingaben und die Verbindungen, die zwischen ihnen bestehen, bietet.

Sobald die semantischen Beziehungen zwischen den Formularelementen definiert sind, wenden wir einen feedbackgesteuerten Prozess an, der diese Verbindungen nutzt und LLMs verwendet, um Testfälle für das Formular zu erstellen. Der Prozess beginnt damit, erste Regeln basierend auf den semantischen Links zu bestimmen und dann Eingabewerte gemäss diesen Regeln zu generieren. Der nächste Schritt besteht darin, diese Regeln zu überprüfen, sie nach Bedarf zu ändern und neue Eingabewerte zu generieren, um das Formular unter diesen angepassten Regeln einzureichen. Unser Ziel ist es, die Regeln zu bestätigen, indem wir das Feedback, das nach den Einreichungen erhalten wird, analysieren. Sobald die Regeln validiert sind, werden sie in einen robusten Satz von Testfällen umgewandelt, der verwendet werden kann, um die Funktionsweise des Formulars über die Zeit zu überprüfen.

Um die Leistung von FormNexus zu bewerten, verwenden wir verschiedene reale und Open-Source-Anwendungen und setzen GPT-4 als LLM ein. Die Ergebnisse zeigen, dass FormNexus in Kombination mit GPT-4 die beste Leistung bei der Abdeckung von Formularübermittlungszuständen erzielt, deutlich besser als das nächstvergleichbare Modell.

Webanwendungen sind heute ein wesentlicher Bestandteil unserer täglichen Interaktionen, wachsen in der Komplexität und ermöglichen eine ausgeklügelte Nutzerbindung. Ein entscheidender Teil dieses Engagements erfolgt über Formulare, die Nutzerinformationen sammeln und die Kommunikation zwischen Nutzern und Anwendungen herstellen. Daher ist es wichtig, diese Formulare rigoros zu testen, um ihre Genauigkeit und Zuverlässigkeit zu gewährleisten.

Obwohl es Verbesserungen in den Testmethoden gegeben hat, bleibt der Bereich der Testgenerierung für Formulare unterexploriert. Die Erstellung von Eingabewerten und Testfällen für Formulare stellt aufgrund ihres Designs für die menschliche Interaktion einzigartige Herausforderungen dar. Geeignete Werte zu generieren erfordert ein Verständnis der Semantik der Eingabefelder und der Beziehungen zwischen ihnen. Im Kontext der Black-Box-Testgenerierung für Webformulare können die durch das DOM eingeführten Komplexitäten oft die ursprünglichen Bedeutungen des Formulars verdecken.

Die Flexibilität beim Codieren, die visuell ähnliche Darstellungen ermöglicht, kompliziert die Architektur von Webformularen zusätzlich. Der Drang, dass Webanwendungen geräteunabhängig funktionieren, beeinflusst auch das HTML-Design und schafft zusätzliche Herausforderungen für das automatisierte Testen von Webformularen.

Um geeignete Eingaben für die automatisierte Testgenerierung zu erzeugen, ist es wichtig, die Semantik der Formularelemente zu verstehen. Die Nutzung von NLP-Techniken zur Eingabegenerierung erscheint als vielversprechender Ansatz. Die Einführung von LLMs wie GPT-4 und Llama-2 hat die potenziellen Methoden erheblich erweitert. Die Fähigkeit von LLMs, menschenähnliche Sprachverarbeitung und -generierung zu replizieren, bietet eine neue Möglichkeit, sich diesem Bereich zu widmen. Verschiedene Studien haben bereits die Anwendung von LLMs in unterschiedlichen Aufgaben untersucht, wodurch ihre Vielseitigkeit bei der Eingabegenerierung und dem Testen deutlich wird.

In diesem Papier präsentieren wir FormNexus, eine LLM-unabhängige Methode, die speziell für die Generierung von Tests für Webformulare entwickelt wurde. Diese Technik beschäftigt sich mit den Feinheiten des Verständnisses von Eingabefeldkontexten, indem sie das DOM des Formulars in den Form Entity Relation Graph umorganisiert. Diese Transformation verbessert die kontextuellen Informationen für jedes Eingabefeld und erfasst, wie relevante Formelemente miteinander in Beziehung stehen.

Allein auf die sprachlichen oder strukturellen Attribute von Formelementen zu vertrauen, kann die Interkonnektivität nicht umfassend offenlegen. Wir nehmen an, dass die Kombination dieser Attribute ein klareres Verständnis davon bietet, wie Elemente verbunden sind, verglichen mit der Betrachtung von ihnen einzeln. Um dies zu erreichen, verwenden wir Einbettungstechniken, um einzelne Merkmale zu kombinieren, was hilft, ihre einzigartigen Einschränkungen anzugehen. Diese kombinierten Einbettungen werden verwendet, um potenzielle Beziehungen zwischen Formelementen aufzudecken, was zu einem Graphen führt, der die vernetzte Natur dieser Elemente veranschaulicht.

Der erste Schritt beim Erstellen des Graphen besteht darin, einen Einbettungsraum für die Elemente innerhalb des Formulars einzurichten. Wir beginnen damit, textuelle und strukturelle Einbettungen für Nicht-Container-Elemente zu generieren, die definiert sind als solche, die entweder Text enthalten oder als Eingabeelemente dienen. Für die Generierung von Texteingabewerten verwenden wir ADA-Einbettungen, während die node2vec-Methode zur Erläuterung struktureller Beziehungen im DOM-Baum eingesetzt wird. Jedem Knoten im DOM-Baum wird ein einzigartiger Einbettungsvektor zugewiesen.

Indem wir über die relevanten Knoten aus dem DOM-Baum iterieren, berechnen wir textuelle und strukturelle Einbettungen. Wir kombinieren diese Einbettungen, um einen Einbettungsraum zu schaffen, der die Ähnlichkeit verschiedener Knoten widerspiegelt. Zum Beispiel werden Knoten, die strukturell nah beieinander liegen und ähnlichen Text teilen, voraussichtlich in diesem Raum zusammengeclustert.

Der erste Kontext, den wir klären, ist der lokale textuelle Kontext, der jeden Text umfasst, der eine Klarstellung für ein Eingabefeld bietet, wie z. B. Labels oder Feedback. Diese Beziehungen helfen erheblich dabei, die Natur jedes Eingabefeldes zu verstehen.

Zum Beispiel sind die textuellen Elemente, die mit einem Eingabefeld verbunden sind, normalerweise eng beieinander angeordnet. Diese Nähe ermöglicht eine einfache Assoziation zwischen dem Eingabefeld und dem zugehörigen Text, was entscheidend für die genaue Interpretation ist. Daher beginnen wir in dieser Phase unserer Methodik damit, Elemente, die visuell aneinander angrenzen, zu verbinden.

Als Nächstes berechnen wir die Kosinusähnlichkeiten zwischen Eingabefeldern und ihren benachbarten Textelementen. Diese Berechnungen bilden einen Graphen, in dem Knoten die Elemente innerhalb des Formulars repräsentieren und Kanten visuell verwandte Elemente verbinden. Das Gewicht dieser Kanten wird durch die Kosinusähnlichkeit zwischen den Einbettungsvektoren der Elemente bestimmt.

Allerdings garantiert Nachbarschaft keine bedeutungsvolle Beziehung. Zum Beispiel könnte Feedbacktext, der an ein Eingabefeld grenzt, nicht auf dieses zutreffen. Daher wenden wir nach der Bildung des ersten Graphen einen Pruning-Prozess an. Wir kategorisieren Knoten innerhalb des Formulars als entweder Haupt- oder Hilfseinheiten. Eingabefelder werden als Hauptseinheiten betrachtet, während Hilfselemente von der Anwesenheit von Eingabefeldern für ihre Bedeutung abhängen.

Während der Pruning-Phase untersuchen wir Hilfsknoten und ihre verbundenen Kanten, um sicherzustellen, dass nur die stärksten Assoziationen im Graphen verbleiben. Durch das Herausfiltern von Verbindungen mit niedrigeren Ähnlichkeitswerten verfeinern wir den Graphen, um bedeutungsvolle Beziehungen zwischen den Elementen besser darzustellen.

Nachdem der textuelle Kontext für jedes Eingabefeld entwickelt wurde, besteht der nächste Schritt darin, verwandte Eingaben zu entdecken, die Verbindungen teilen. Eingabefelder, die miteinander verbunden sind, teilen oft einen ähnlichen textuellen Kontext und befinden sich normalerweise dicht beieinander. Diese Beziehungen zu verstehen ist intuitiv für Menschen, pose jedoch Herausforderungen für computergestützte Systeme, die Eingabeverbindungen erkennen müssen.

Wir nutzen die zuvor erstellten Einbettungen, um den Grad der Interkonnektivität zwischen Gruppen von Eingabefeldern zu bewerten. Der Beziehungscore zwischen zwei Eingabefeldern wird basierend auf den maximalen Ähnlichkeitswerten definiert, die sowohl aus Eingabe-zu-Eingabe- als auch aus Label-zu-Label-Vergleichen gewonnen werden.

Zu erkennen, dass Verbindungen zwischen Eingabefeldern nicht immer zwingende Beziehungen signalisieren, erlaubt es uns, einen statistischen Ansatz zu wählen, um bedeutungsvolle Verbindungen von solchen zu trennen, die möglicherweise irrelevant sind.

Mit dem etablierten Kontext besteht unser nächstes Ziel darin, eine Reihe von Einschränkungen abzuleiten, die mit den Eigenschaften und Beziehungen der Eingabefelder übereinstimmen. Ein iterativer Prozess umfasst das Abfragen des konstruierten Graphen, um relevante Elemente für jedes Eingabefeld zu extrahieren. Wir erstellen Aufforderungen basierend auf diesen Informationen und beauftragen das LLM mit der Generierung von Einschränkungen und Werten.

Zunächst generierte Einschränkungen leiten unser Verständnis der Anforderungen jedes Eingabefelds. Indem wir relevante Kontextinformationen bieten, erwarten wir, dass das LLM ähnlich wie menschliche Inferenz funktioniert.

Nach der Generierung von Einschränkungen besteht der nächste Schritt darin, Werte basierend auf diesen Einschränkungen zu generieren. Der Formular-Kontext, das spezifische Eingabefeld und der lokale Kontext werden als Leitfaden für das LLM bereitgestellt. Auf diese Weise wird das LLM angewiesen, geeignete Eingabewerte zu erstellen, die mit den definierten Einschränkungen übereinstimmen.

Sobald wir eine Reihe von Eingabewerten haben, reichen wir das Formular ein, um die Ergebnisse zu beobachten. Das Formular kann entweder auf der gleichen Seite bleiben oder zu einer neuen weitergeleitet werden. In beiden Fällen suchen wir nach textuellen Hinweisen, die signalisieren, ob die Einreichung erfolgreich oder fehlgeschlagen ist.

Um den Erfolg oder Misserfolg der Formularübermittlung zu bewerten, definieren wir klare Kriterien. Eine erfolgreiche Einreichung bringt den Nutzer zum vorgesehenen Ziel, während ein Misserfolg eine Fehlerrückmeldung generiert. Wir wenden eine heuristische Methode an, um den Status des Formulars nach der Einreichung zu bewerten. Diese Methode umfasst die Untersuchung der Unterschiede im DOM-Baum vor und nach der Einreichung, wobei Ergebnisse für Hinweise gefiltert werden, die normalerweise mit Rückmeldungsnachrichten verbunden sind.

Nachdem das Formular eingereicht wurde, können wir das Feedback wieder mit den entsprechenden Eingabefeldern verknüpfen, indem wir den etablierten lokalen Kontext verwenden. Es kann jedoch Fälle geben, in denen globale Rückmeldungen für mehrere Felder gelten. Jegliches Feedback, das nicht an ein bestimmtes Eingabefeld gebunden ist, wird als globale Rückmeldung behandelt und in den Prozess der Verfeinerung der Einschränkungen einbezogen.

Durch die Nutzung des Feedbacks, das während der Einreichung erhalten wurde, können wir unsere Einschränkungen verfeinern, um sicherzustellen, dass sie die Anforderungen des Formulars genau widerspiegeln. Dieser Prozess der Aktualisierung von Einschränkungen führt zur Generierung neuer Werte, die erneut eingereicht werden. Dieser Zyklus wiederholt sich, bis wir eine erfolgreiche Formularübermittlung erreichen, was signalisiert, dass unsere abgeleiteten Einschränkungen mit den tatsächlichen Anforderungen des Formulars übereinstimmen.

Nach erfolgreichen Einreichungen protokollieren wir verschiedene Eingabewerte und erhaltenes Feedback als potenzielle Testfälle für die zukünftige Verwendung. Jeder Testfall ist so strukturiert, dass er bestätigt, dass das Formular unter unterschiedlichen Eingabebedingungen korrekt funktionieren kann. Dieser Prozess ermöglicht eine umfassende Abdeckung der Zustände der Formularübermittlung.

Unsere Methode zur automatisierten Testgenerierung wurde in Python implementiert und integriert sich nahtlos mit fortschrittlichen LLMs. Für die Generierung von Texteingabewerten haben wir die ADA-Architektur und die Standardimplementierung von node2vec verwendet, um die zugrunde liegende Graphstruktur zu erfassen.

Um die Effektivität unserer Technik zu bewerten, haben wir Forschungsfragen formuliert, um die Effizienz unseres Ansatzes zu beurteilen. Wir wollten herausfinden, wie effektiv unsere Methode bei der Generierung von Tests für Webformulare war, wie sie im Vergleich zu anderen Techniken abschnitt und welche spezifischen Komponenten zu den Endergebnissen beitrugen.

Angesichts des Fehlens öffentlich verfügbarer Datensätze für Formularwerte und Übermittlungszustände haben wir eine Liste von Webformularen zusammengestellt und annotiert. Wir haben Formulare ausgewählt, die verschiedene Bereiche von Webanwendungen repräsentieren, und sichergestellt, dass sie Eingabewertvalidierungen enthalten, um die Leistung unserer Technik zu bewerten.

Um die Effektivität unserer Methode zu beurteilen, haben wir die Anzahl der abgedeckten Formularübermittlungszustände gemessen, die sowohl erfolgreiche als auch erfolglose Übermittlungen umfasst. Indem wir systematisch unterschiedliche Werte eingereicht und Feedback erfasst haben, zielten wir darauf ab, ein umfassendes Verständnis der Anforderungen jedes Formulars zu entwickeln.

Während der Prozess der Testgenerierung für Webformulare unterexploriert bleibt, zeigt unser Ansatz bemerkenswerte Fortschritte gegenüber bestehenden Methoden. Wir haben festgestellt, dass unsere Technik die Abdeckung der Zustände der Formularübermittlung im Vergleich zu statischen Methoden und Webcrawlern, die zufällige Werte generieren, erheblich verbessert.

Die Anwendung und Erfolgsraten der generierten Testfälle zeigen die Effektivität unserer Methode. Unser Ansatz erlaubt eine tiefere Erkundung des Verhaltens von Formularen und verbessert die Genauigkeit des automatisierten Testens von Webformularen.

Trotz ihrer Vorteile steht unsere Methode vor Einschränkungen, insbesondere in Fällen, in denen Fehlerfeedback an Spezifität oder Relevanz mangelt. Die Behebung dieser Probleme könnte zukünftige Iterationen unseres Ansatzes verbessern. Dennoch hat FormNexus vielversprechende Ergebnisse bei der Aufdeckung verschiedener Übermittlungszustände gezeigt und bietet einen grundlegenden Rahmen für weitere Forschungen im Bereich automatisiertes Testen von Webformularen.

Durch diese Erkenntnisse können wir klar das Potenzial erkennen, das in der Verbesserung automatisierter Testmethoden für Webformulare liegt. Lücken im aktuellen Testen von Formularen zu schliessen, kann zu besserer Softwareleistung, höherer Nutzerzufriedenheit und weniger Fehlern in Webanwendungen führen.

Originalquelle

Titel: Semantic Constraint Inference for Web Form Test Generation

Zusammenfassung: Automated test generation for web forms has been a longstanding challenge, exacerbated by the intrinsic human-centric design of forms and their complex, device-agnostic structures. We introduce an innovative approach, called FormNexus, for automated web form test generation, which emphasizes deriving semantic insights from individual form elements and relations among them, utilizing textual content, DOM tree structures, and visual proximity. The insights gathered are transformed into a new conceptual graph, the Form Entity Relation Graph (FERG), which offers machine-friendly semantic information extraction. Leveraging LLMs, FormNexus adopts a feedback-driven mechanism for generating and refining input constraints based on real-time form submission responses. The culmination of this approach is a robust set of test cases, each produced by methodically invalidating constraints, ensuring comprehensive testing scenarios for web forms. This work bridges the existing gap in automated web form testing by intertwining the capabilities of LLMs with advanced semantic inference methods. Our evaluation demonstrates that FormNexus combined with GPT-4 achieves 89% coverage in form submission states. This outcome significantly outstrips the performance of the best baseline model by a margin of 25%.

Autoren: Parsa Alian, Noor Nashid, Mobina Shahbandeh, Ali Mesbah

Letzte Aktualisierung: 2024-07-22 00:00:00

Sprache: English

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

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

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