Improving spectral-based fault localization using static analysis

Neelofar Neelofar, Lee Naish, Jason Lee, Kotagiri Ramamohanarao

Research output: Contribution to journalArticleResearchpeer-review

15 Citations (Scopus)

Abstract

Debugging is crucial for producing reliable software. One of the effective bug localization techniques is spectral-based fault localization (SBFL). It helps to locate a buggy statement by applying an evaluation metric to program spectra and ranking program components on the basis of the score it computes. SBFL is an example of a dynamic analysis – an analysis of computer program that is performed by executing it with sufficient number of test cases. Static analysis, on the other hand, is performed in a non-runtime environment. We introduce a weighting technique by combining these two kinds of program analysis. Static analysis is performed to categorize program statements into different classes and giving them weights based on the likelihood of being buggy statement. Statements are finally ranked on the basis of the weights computed by statements' categorization (static analysis) and scores computed by SBFL metrics (dynamic analysis). We evaluate the performance of our technique on Siemens test suite and Flex (having seeded bugs seeded by expert developers), Sed (having mixture of real and seeded bugs), and Space (having real bugs). In our evaluation, proposed weighting technique improves the performance of a wide variety of fault localization metrics up to 20% on single bug datasets and up to 42% on multi-bug datasets.

Original languageEnglish
Pages (from-to)1633-1655
Number of pages23
JournalSoftware: Practice and Experience
Volume47
Issue number11
DOIs
Publication statusPublished - Nov 2017
Externally publishedYes

Keywords

  • dynamic analysis
  • fault localization metrics
  • spectral debugging
  • static analysis

Cite this