Spectrum-Based Fault Localization Aided by Program Slicing

Péter Soha and Árpád Beszédes
Determining the actual location of the fault during debugging can be aided by various automated techniques. Spectrum-Based Fault Localization (SBFL) is a popular automated fault localization method that is based on test execution statistics (also known as Statistical Fault Localization). The fundamental approach in SBFL is to observe pass/fail and coverage statistics of each test case and based on these assign suspiciousness ranks to program elements using one of the many possible heuristical formulae. A fundamentally different approach is to use the syntactic relationship of the program elements to follow the computation path from the observed behavior to the actual fault. For example, with (backward dynamic) Program Slicing (PS) one computes a program subset (including the fault itself) which might have contributed to the computation at the observed program location.

Both areas have large literatures on their own, but attempts have been made to combine the two as well in the hope to find the fault more effectively. Previous research has shown that these hybrid solutions can combine the advantages of the base techniques, but most of these articles focus on a specific SBFL and PS algorithm, and a specific kind of combination is proposed. The goal of our work is to systematically investigate the possibilities of combining these two approaches for fault localization, and because we believe that the area has not yet been fully explored, we hope to be able to devise novel methods as well.

Keywords: Program Slicing, Spectrum-based Fault Localization, debugging, combined FL.