Program structure aware fault localization

Software testing is always an effective method to show the presence of bugs in programs, while debugging is never an easy task to remove a bug from a program in software development. To facilitate the debugging task, statistical fault localization estimates the location of faults in programs automat...

Full description

Bibliographic Details
Main Authors: Li, H., Liu, Y., Zhang, Z., Liu, Jian
Format: Conference Paper
Published: 2014
Online Access:http://hdl.handle.net/20.500.11937/71310
Description
Summary:Software testing is always an effective method to show the presence of bugs in programs, while debugging is never an easy task to remove a bug from a program in software development. To facilitate the debugging task, statistical fault localization estimates the location of faults in programs automatically by analyzing the program executions to narrow down the suspicious code region. We observe that program structure has strong impacts on the assessed suspiciousness of the program elements. However, existing techniques inadequately pay attention to this problem in locating faults. In this paper, we emphasize the biases caused by program structure in fault localization, and propose a method to address them. Our method is dedicated to boost a fault localization technique by adapting it to various program structures, in a software development process. It collects the suspiciousness of program elements when locating historical faults, statistically captures the biases caused by program structure, and removes such an impact factor from a fault localization result. An empirical study using the Siemens test suite shows that our method can greatly improve the effectiveness of the most representative fault localization Tarantula.