Visual spectrum-based fault localization for Python programs based on the differentiation of execution slices
Fault localization is one of the most challenging and time-intensive tasks in the maintenance of software systems. We present an automated fault localization technique that can assist developers effectively in localizing the fault locations in Python programs. The proposed method uses spectrum-based fault localization techniques, program slicing, and graph-based visualization to formulate an efficient method for reducing the effort needed in fault localization. The approach takes the source code of a program, a set of passed and failed tests and collects the program spectra information by executing the tests. The tool, FaultLocalizer, facilitates the generation of a call graph for inter-procedural dependency analysis and annotated control flow graphs for different modules with spectra information and suspiciousness scores that need additional code analysis for program repair. The focus of the approach is on the visual analysis of the source code, and it is intended to complement the existing fault localizing approach available. The effectiveness of the proposed approach is evaluated on a set of buggy Python programs. Evaluation on buggy Python programs shows that the tool effectively reduces debugging efforts and can be applied to programs with conditional branching.