Artifact of "ReClues: Representing and Indexing Failures in Parallel Debugging with Program Variables"
This artifact supplies the replication package and the supplementary material of the paper “ReClues: Representing and Indexing Failures in Parallel Debugging with Program Variables”, which has been accepted within the ICSE’24 Research Track. In this ICSE 2024 research paper, we present the program variable-based failure proximity, a deeper insight into extracting the signature of failures and thus representing them. We further propose a novel failure indexing approach, ReClues, based on our presented failure proximity. Experimental results show that ReClues performs in a significantly effective way compared to previous SOTA techniques in this field.
We have implemented our approach with Python. To help the readers technically understand ReClues and replicate our work, we make the replication package and the supplementary material. The replication package includes 1) the proposed failure indexing approach’s code and its usage instruction, 2) the benchmark projects used in our experiments, and 3) the tool or strategy for generating multi-fault programs. And the supplementary material includes the detailed running example presented in the paper.
DOI: https://doi.org/10.5281/zenodo.10450586
The link to our repository: https://github.com/yisongy/ReClues_Repo
With the online available approach implementation and the concrete documents, we sincerely apply for the Available Badge and the Reusable Badge.
The abstract of the original paper is as follows: Failures with different root causes can greatly disrupt multi-fault localization, therefore, categorizing failures into distinct groups according to the culprit fault is highly important. In such a failure indexing task, the crux lies in the failure proximity, which comprises two points, i.e., how to effectively represent failures (e.g., extract the signature of failures) and how to properly measure the distance between those proxies for failures. Existing research has proposed a variety of failure proximities. The majority of them extract signatures of failures from execution coverage or suspiciousness ranking lists, and accordingly employ the Euclid or the Kendall tau distances, etc. However, such strategies may not properly reflect the essential characteristics of failures, thus resulting in unsatisfactory effectiveness. In this paper, we propose a new failure proximity, namely, the program variable-based failure proximity, and further present a novel failure indexing approach, ReClues. Specifically, ReClues utilizes the run-time values of program variables to represent failures, and designs a set of rules to measure the similarity between them. Experimental results demonstrate the competitiveness of ReClues: it can achieve 44.12% and 27.59% improvements in faults number estimation, as well as 47.56% and 26.27% improvements in clustering effectiveness, compared with the state-of-the-art technique in this field, in simulated and real-world environments, respectively.