Key points are not available for this paper at this time.
Die Fehlerlokalisierung hat in letzter Zeit viel Aufmerksamkeit auf sich gezogen. Die meisten bestehenden Methoden konzentrieren sich darauf, eine einzelne Anweisung oder Funktionsaufruf zu identifizieren, die sehr wahrscheinlich Fehler enthält. Obwohl solche Methoden sehr genau sein könnten, ist es für Entwickler in der Regel sehr schwierig, den Kontext des Fehlers zu verstehen, wenn man jeden Fehlerort isoliert betrachtet. In dieser Studie schlagen wir vor, Softwareausführungen auf zwei Granularitätsebenen mit Graphen zu modellieren: Methoden und Grundblöcke. Ein einzelner Knoten stellt eine Methode oder einen Grundblock dar, und eine Kante stellt einen Funktionsaufruf, eine Rückgabe der Methode oder einen Übergang dar (auf der Granularität von Methode oder Grundblock). Aus einer Menge von Graphen korrekter und fehlerhafter Ausführungen schlagen wir vor, die diskriminativsten Teilgraphen zu extrahieren, die den Programmfluss korrekter und fehlerhafter Ausführungen kontrastieren. Die extrahierten Teilgraphen zeigen nicht nur den Fehler auf, sondern bieten auch einen informativen Kontext für das Verständnis und die Behebung des Fehlers. Anders als beim traditionellen Graphmining, das eine sehr große Menge häufiger Teilgraphen abbaut, formulieren wir das Teilgraphen-Mining als Optimierungsproblem und erzeugen direkt den diskriminativsten Teilgraphen mit einem kürzlich vorgeschlagenen Graphmining-Algorithmus namens LEAP. Wir erweitern dies weiter, um eine rangierte Liste der Top-k diskriminativen Teilgraphen zu generieren, die verschiedene Orte darstellen, die Fehler enthalten können. Experimentelle Ergebnisse und Fallstudien zeigen, dass unsere vorgeschlagene Methode sowohl effektiv als auch effizient ist, um diskriminative Teilgraphen für die Fehlerlokalisierung und Kontextidentifikation zu extrahieren.
Cheng et al. (Sun,) haben diese Frage untersucht.