Abstract
Fault localization is the activity of precisely indicating the faulty commands in a buggy program. It is known to be a highly costly and tedious process. Automating this process has been the goal of many studies, showing it to be a challenging problem. The coverage-spectrum based approaches commonly apply heuristics grounded on the execution of control-flow components to calculate the odds of each program element to be the defective one. The present study aims to investigate another source of fault information by assessing how data-flow analysis is useful when computing suspiciousness scores; and how the combination of scores from different sources impacts fault localization. We present an approach to calculate the suspiciousness score for each program command by using the execution of data-flow components. Then we use an evolutionary algorithm to search sets of weights to combine heuristics from distinct sources of fault data (both control-flow and data-flow as well as a hybrid strategy). The approach was applied to programs with seeded faults and real faults and evaluated by using absolute metrics to asses its efficacy to locate faults. Furthermore, we introduce a new metric to investigate the dependence of tie-break strategies in building the ranking of suspicious commands. Dataflow based methods demonstrate high effectiveness but increase the need for tie-breaks, unlike the evolutionary hybrid method that is still effective but also depends less on tie-break strategies.
Author supplied keywords
Cite
CITATION STYLE
Silva-Junior, D., Leitao-Junior, P. S., Dantas, A., Camilo-Junior, C. G., & Harrison, R. (2020). Data-flow-based evolutionary fault localization. In Proceedings of the ACM Symposium on Applied Computing (pp. 1963–1970). Association for Computing Machinery. https://doi.org/10.1145/3341105.3373946
Register to see more suggestions
Mendeley helps you to discover research relevant for your work.