Iterative Path Clustering for Software Fault Localization
Rong Chen, Shifeng Chen, Nan Zhang · 2016
A number of studies have been done to pinpoint program faults, among them the testing-based fault localization (TBFL) technique does with ranking suspiciousness of statements by counting statement occurrences in failing and successful runs of a buggy program. However, the downgrade of TBFL is its sensitiveness to the distribution of execution paths produced by test cases, so there still exists the need for improvement, given the great variety and uncertainty of execution paths. Path clustering can not only reduce redundancy, but also casts light on understanding test cases. This paper proposes a fuzzy c-Lines clustering for classifying execution paths and understanding faults iteratively and interactively. In doing so, we figure out vector angles between failed and passed paths to group them into categories, from which we elect some for statistical comparison via TBFL. Empirical results show that our method can help to improve the efficiency and accuracy in locating and understanding faults.