Core Concepts
Eine neuartige Technik zur Verbesserung der Testabdeckung für schwer zu erreichende Zweige durch Programmanalyse-gestützte Prompts für Large Language Models.
Abstract
Die Studie präsentiert TELPA, eine neuartige Technik zur Testgenerierung, die darauf abzielt, die Abdeckung schwer zu erreichender Zweige zu verbessern. TELPA nutzt Programmanalyse, um relevante Informationen für Large Language Models (LLMs) zu extrahieren und in den Prompt zu integrieren.
Zunächst führt TELPA eine rückwärtsgerichtete Methodenaufrufanalyse durch, um Sequenzen von Methodenaufrufen zu extrahieren, die zum Zielmethod führen. Dies hilft LLMs dabei, komplexe Objekte zu konstruieren, die für die Zweigbedingungen erforderlich sind. Zusätzlich führt TELPA eine vorwärtsgerichtete Methodenaufrufanalyse durch, um alle Methoden zu identifizieren, die für die Interpretation der Zweigbedingungen relevant sind. Diese Informationen werden ebenfalls in den Prompt integriert, um LLMs ein tieferes Verständnis der Semantik der Zielmethod zu vermitteln.
Um die Effizienz zu erhöhen, wählt TELPA eine Teilmenge vorhandener, ineffektiver Tests als Gegenbeispiele aus und integriert sie in den Prompt. Dies leitet die LLMs an, Tests zu generieren, die von diesen Gegenbeispielen abweichen. Der gesamte Testgenerierungsprozess ist iterativ, wobei neue Tests basierend auf der Abdeckungsrückmeldung generiert werden.
Die Evaluierung auf 27 Open-Source-Python-Projekten zeigt, dass TELPA die Zweigabdeckung im Durchschnitt um 31,39% und 22,22% im Vergleich zu den State-of-the-Art-Techniken Pynguin und CODAMOSA verbessert. Die Ablationsanalyse bestätigt den Beitrag der einzelnen Komponenten von TELPA.
Stats
Die Zweigabdeckung von TELPA ist im Durchschnitt 31,39% höher als die von Pynguin.
Die Zweigabdeckung von TELPA ist im Durchschnitt 22,22% höher als die von CODAMOSA.
Die Zeilenabdeckung von TELPA ist im Durchschnitt 15,67% höher als die von Pynguin.
Die Zeilenabdeckung von TELPA ist im Durchschnitt 11,31% höher als die von CODAMOSA.
Quotes
"Eine neuartige Technik zur Verbesserung der Testabdeckung für schwer zu erreichende Zweige durch Programmanalyse-gestützte Prompts für Large Language Models."
"TELPA nutzt Programmanalyse, um relevante Informationen für Large Language Models (LLMs) zu extrahieren und in den Prompt zu integrieren."
"Der gesamte Testgenerierungsprozess ist iterativ, wobei neue Tests basierend auf der Abdeckungsrückmeldung generiert werden."