journal article·2025-02-16Open access

Software Fault Localization Based on SALSA Algorithm

Xin Fan, Zuxiong Shen, Zhenlei Fu, Yun Ge

Applied Sciences· Volume 15· Issue 4

Abstract

In software development, debugging is the most tedious and time-consuming phase. Therefore, various automated fault localization techniques have been proposed to assist debugging. Among existing fault localization techniques, Spectrum-Based Fault Localization (SBFL) is one of the most extensively researched methods. Traditional SBFL techniques rely solely on the coverage of program execution for fault localization, which means they neglect the interactions between program entities and fault propagation paths during the execution of the program, resulting in a tie problem that reduces the accuracy of fault localization. To solve the above problem, this paper proposes SA-SBFL, a fault localization method based on the SALSA (Random Method for Link Structure Analysis) algorithm. First, a link graph of program entities is constructed, which includes interactions between program entities and fault propagation paths. Then, the suspicion values obtained from traditional SBFL methods are used as the initial weights of the link graph. Finally, the random walk model is employed to simulate the propagation of faults among program entities, analyze the importance of program entities in the fault propagation process, and obtain a ranking list of suspicious program entities. The experiments in this paper demonstrate that the SA-SBFL method significantly outperforms general SBFL methods. For instance, in the Defects4J dataset, the SA-SBFL technique outperforms traditional SBFL in terms of fault localization accuracy, with a 47% improvement in the Top-1 metric and a 10% increase in the Top-5 metric, and it also showed an average improvement of 19% in the EXAM metric.
Source: crossref · Quality: baseline

Research context

OpenAlex topics: Anomaly Detection Techniques and Applications · Software System Performance and Reliability · Network Security and Intrusion Detection

SciVX discovery tags are terminology-based. OpenAlex topics are source-provided classifications.

Affiliations

School of Software, Nanchang Hangkong University, Nanchang 330063, China

Funding

National Natural Science Foundation of China

References (26)

Show source-provided references
1. Studying the advancement in debugging practice of professional software developers10.1007/s11219-015-9294-2 ↗
2. Software debugging, testing, and verification10.1147/sj.411.0004 ↗
3. Wong, W.E., Gao, R., Li, Y., Abreu, R., Wotawa, F., and Li, D. (2023). Software fault localization: An overview of research, techniques, and tools. Handbook of Software Fault Localization: Foundations and Advances, Wiley-IEEE Press.10.1002/9781119880929.ch1 ↗
4. Abreu, R., Zoeteweij, P., and Van Gemund, A.J.C. (2007, January 10–14). On the accuracy of spectrum-based fault localization. Proceedings of the Testing: Academic and Industrial Conference Practice and Research Techniques-MUTATION (TAICPART-MUTATION 2007), Windsor, UK.10.1109/TAICPART.2007.4344104 ↗
5. Ajibode, A., Shu, T., Said, K., and Ding, Z. (2022). A fault localization method based on metrics combination. Mathematics, 10.10.3390/math10142425 ↗
6. GECOJAP: A novel source-code preprocessing technique to improve code coverage10.1016/j.csi.2017.04.003 ↗
7. A fault localization approach based on fault propagation context10.1016/j.infsof.2023.107245 ↗
8. Fault centrality: Boosting spectrum-based fault localization via local influence calculation10.1007/s10489-021-02822-4 ↗
9. Prioritized static slicing and its application to fault localization10.1016/j.jss.2015.10.052 ↗
10. Hofer, B., and Wotawa, F. (2012). Spectrum enhanced dynamic slicing for better fault localization. ECAI, IOS Press.
11. GNet4FL: Effective fault localization via graph convolutional neural network10.1007/s10515-023-00383-z ↗
12. The flowing nature matters: Feature learning from the control flow graph of source code for bug localization10.1007/s10994-021-06078-4 ↗
13. Context-aware neural fault localization10.1109/TSE.2023.3279125 ↗
14. Jones, J.A., and Harrold, M.J. (2005, January 7–11). Empirical evaluation of the tarantula automatic fault-localization technique. Proceedings of the 20th IEEE/ACM international Conference on Automated Software Engineering, Long Beach, CA, USA.10.1145/1101908.1101949 ↗
15. Chen, M.Y., Kiciman, E., Fratkin, E., Fox, A., and Brewer, E. (2002, January 23–26). Pinpoint: Problem determination in large, dynamic internet services. Proceedings of the International Conference on Dependable Systems and Networks, Washington, DC, USA.
16. A practical evaluation of spectrum-based fault localization10.1016/j.jss.2009.06.035 ↗
17. A model for spectra-based software diagnosis10.1145/2000791.2000795 ↗
18. The DStar method for effective software fault localization10.1109/TR.2013.2285319 ↗
19. No pot of gold at the end of program spectrum rainbow: Greatest risk evaluation formula does not exist
20. Contextualizing spectrum-based fault localization10.1016/j.infsof.2017.10.014 ↗
21. Enhancing spectrum-based fault localization using fault influence propagation10.1109/ACCESS.2020.2965139 ↗
22. Fan, X., Wu, K., Zhang, S., Yu, L., Zheng, W., and Ge, Y. (2023). Fault Localization Using TrustRank Algorithm. Appl. Sci., 13.10.3390/app132212344 ↗
23. An effective fault localization approach based on PageRank and mutation analysis10.1016/j.jss.2023.111799 ↗
24. Zhang, M., Li, X., Zhang, L., and Khurshid, S. (2017, January 10–14). Boosting spectrum-based fault localization using pagerank. Proceedings of the 26th ACM SIGSOFT International Symposium on Software Testing and Analysis, Santa Barbara, CA, USA.10.1145/3092703.3092731 ↗
25. Podgurski, A., and Clarke, L. (1989, January 13–15). The implications of program dependencies for software testing, debugging, and maintenance. Proceedings of the ACM SIGSOFT’89 Third Symposium on Software Testing, Analysis, and Verification, Key West, FL, USA.10.1145/75308.75328 ↗
26. An approach to fault modeling and fault seeding using the program dependence graph10.1016/S0164-1212(96)00175-6 ↗