  Failures with different root causes can disturb multi-fault localization
significantly, therefore, dividing failures into distinct groups according to
the responsible faults is highly important. In such a failure indexing task,
the crux lies in the failure proximity, which involves two points, i.e., how to
effectively represent failures (e.g., extract the signature of failures) and
how to properly measure the distance between the proxies for those failures.
Existing studies have proposed a variety of failure proximities. The prevalent
of them extract signatures of failures from execution coverage or
suspiciousness ranking lists, and accordingly employ the Euclid or the Kendall
tau distances. 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, program variable-based
failure proximity, and based on which present a novel failure indexing
approach. Specifically, the proposed approach 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 the proposed approach: it can achieve 44.12% and 27.59%
improvements in faults number estimation, as well as 47.30% and 26.93%
improvements in clustering effectiveness, compared with the state-of-the-art
technique in this field, in simulated and real-world environments,
respectively.
