Abstract

Many spectrum-based fault localization (SBFL) techniques have been proposed in order to improve debugging efficiency. These SBFL techniques were designed according to different underlying assumptions and then adopt different fault locator functions to evaluate the likelihood of each statement being faulty, called suspiciousness. So far no single SBFL technique claims that it can outperform all of the others under every scenario. That is, the effectiveness of fault localization may vary considerably by just adopting a single SBFL technique. Due to the aforementioned reasons, this study presents a framework for improving fault localization effectiveness by using a Fuzzy Expert System (FES) to integrate different SBFL techniques. In the presented framework, the outputs of several SBFL techniques will be put into the fuzzification and then transferred to fuzzy input sets. After undergoing the fuzzy inference based on the given fuzzy rules, the fuzzy input sets will be transferred to a fuzzy output set. Finally, the fuzzy set will be transferred to a crisp output (called a weighted suspiciousness value). The code statements will then be ranked according to their weighted suspiciousness values. In other words, no additional instrumentations and analyses on the source code and the test suite are necessary for our approach. Our experiment results indicate that our FES-based framework is effective at combining the SBFL techniques from different equivalent groups and achieves high effectiveness on the nine subject programs. It is also noted that in the literature, most of the approaches that combine multiple SBFL techniques are learning-based and they are suitable for long-term projects with sufficient historical data. Since our approach does not reference historical data for model training, it can be applied to new software projects. Thus, the application scenarios of our approach should be complementary to those of the state-of-the-art learning-based approaches.

Full Text
Published version (Free)

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call