Abstract
Since the birth of software, fault localization has been a time-consuming and laborious task. Programmers need to constantly find faults in software through program logging, assertions, breakpoints, and profiling. In order to improve the debugging efficiency, many fault localization methods based on test cases have been proposed, such as program spectrum-based methods, and slice-based methods. However, these methods are far from the logic of actual debugging and still require programmers to use traditional methods. However, programmers cannot access the execution process of the program, they need to constantly modify breakpoints and repeatedly check variable values, which makes fault localization very time-consuming. After interviewing five experts in the field of visualization and software testing, we designed SFLVis to provide users with a new method to improve the efficiency of fault localization. We designed an algorithm to obtain the process of program execution and combined it with existing fault localization methods. The goal is to show users the execution results of test cases, source code logic, and the level of suspicion of statements, and reproduce the execution process of test cases. We designed rich interactive features to help users explore SFLVis and correlate information from various views to improve the efficiency of fault localization. To verify the effectiveness of SFLVis, we conducted a case study using the program in the Siemens Suite dataset and conducted group experiments and related interviews with 20 volunteers. The results show that SFLVis can effectively improve programmers’ efficiency compared with existing fault localization methods.
Graphical abstract
















Similar content being viewed by others
References
Abreu R, González A, Zoeteweij P, Gemund AJ (2008) Automatic software fault localization using generic program invariants. In: Proceedings of the 2008 ACM symposium on applied computing, pp 712–717
Abreu R, Mayer W, Stumptner M, Gemund AJ (2009) Refining spectrum-based fault localization rankings. In: Proceedings of the 2009 ACM symposium on applied computing, pp 409–414
Abreu R, Zoeteweij P, Van Gemund AJ (2006) An evaluation of similarity coefficients for software fault localization. In: 2006 12th Pacific rim international symposium on dependable computing (PRDC’06), IEEE, pp 39–46
Bhushan RC, Yadav D (2017) Number of test cases required in achieving statement, branch and path coverage using ‘gcov’: an analysis. In: 7th international workshop on computer science and engineering (WCSE 2017) Beijing, China, pp 176–180
Binkley DW, Harman M (2004) A survey of empirical results on program slicing. Adv Comput 62(105178):105–178
Campos J, Riboira A, Perez A, Abreu R (2012) Gzoltar: an eclipse plug-in for testing and debugging. In: Proceedings of the 27th IEEE/ACM international conference on automated software engineering, pp 378–381
Cellier P, Ducassé M, Ferré S, Ridoux O (2008) Formal concept analysis enhances fault localization in software. In: Formal concept analysis: 6th international conference, ICFCA 2008, Montreal, Canada, February 25-28, 2008. Proceedings, Springer, 6, pp 273–288
Choi S-S, Cha S-H, Tappert CC et al (2010) A survey of binary similarity and distance measures. J Syst Cybern Inf 8(1):43–48
Collofello JS, Cousins L (1987) Towards automatic software fault location through decision-to-decision path analysis. In: Managing requirements knowledge, international workshop On, IEEE Computer Society, pp 539–539
Do H, Elbaum S, Rothermel G (2005) Supporting controlled experimentation with testing techniques: an infrastructure and its potential impact. Empir Softw Eng 10:405–435
Edwards JC (2003) Method, system, and program for logging statements to monitor execution of a program. Google Patents. US Patent 6,539,501
Ghandehari LSG, Bourazjany MN, Lei Y, Kacker RN, Kuhn DR (2013) Applying combinatorial testing to the siemens suite. In: 2013 IEEE Sixth international conference on software testing, verification and validation workshops, IEEE, pp 362–371
Hao D, Zhang L, Zhang L, Sun J, Mei H (2009) Vida: visual interactive debugging. In: 2009 IEEE 31st international conference on software engineering, IEEE, pp 583–586
Hauswirth M, Chilimbi TM (2004) Low-overhead memory leak detection using adaptive statistical profiling. In: Proceedings of the 11th international conference on architectural support for programming languages and operating systems, pp 156–164
Hennessy J (1982) Symbolic debugging of optimized code. ACM Trans Program Languag Syst (TOPLAS) 4(3):323–344
Janssen T, Abreu R, Van Gemund AJ (2009) Zoltar: a spectrum-based fault localization tool. In: Proceedings of the 2009 ESEC/FSE workshop on software integration and evolution@ Runtime, pp 23–30
Jones JA, Harrold MJ (2005) Empirical evaluation of the tarantula automatic fault-localization technique. In: Proceedings of the 20th IEEE/ACM international conference on automated software engineering, pp 273–282
Jones JA, Harrold MJ, Stasko J (2002) Visualization of test information to assist fault localization. In: Proceedings of the 24th international conference on software engineering. ICSE, IEEE, pp 467–477
Kanda T, Shimari K, Inoue K (2022)didiffff: a viewer for comparing changes in both code and execution traces. In: Proceedings of the 30th IEEE/ACM international conference on program comprehension, pp 528–532
Korel B, Rilling J (1998) Dynamic program slicing methods. Inf Softw Technol 40(11–12):647–659
Mutti D (2014) Coverage based debugging visualization. PhD thesis, Universidade de São Paulo
Nadim M, Mondal D, Roy CK (2022) Leveraging structural properties of source code graphs for just-in-time bug prediction. Autom Softw Eng 29(1):1–30
Naish L, Lee HJ, Ramamohanarao K (2011) A model for spectra-based software diagnosis. ACM Trans Softw Eng Methodol (TOSEM) 20(3):1–32
Nessa S, Abedin M, Wong WE, Khan L, Qi Y (2009) Fault localization using n-gram analysis. In: Proceedings of the 3rd international conference on wireless algorithms, systems, and applications, pp 548–559
Orso A, Jones JA, Harrold MJ, Stasko J Gammatella (2004) Visualization of program-execution data for deployed software. In: Proceedings. 26th international conference on software engineering, IEEE, pp 699–700
Pai GJ, Dugan JB (2007) Empirical analysis of software fault content and fault proneness using Bayesian methods. IEEE Trans Softw Eng 33(10):675–686
Planning S (2002) The economic impacts of inadequate infrastructure for software testing. National Institute of Standards and Technology, 1
Qayum A, Khan SUR, Akhunzada A et al (2022) Finecodeanalyzer: multi-perspective source code analysis support for software developer through fine-granular level interactive code visualization. IEEE Access 10:20496–20513
Renieres M, Reiss SP (2003) Fault localization with nearest neighbor queries. In: 18th IEEE International conference on automated software engineering, Proceedings, IEEE, pp 30–39
Ribeiro HL (2016) On the use of control-and data-ow in fault localization. PhD thesis, Universidade de São Paulo
Rosenblum DS (1992) Towards a method of programming with assertions. In: Proceedings of the 14th international conference on software engineering, pp 92–104
Rosenblum DS (1995) A practical approach to programming with assertions. IEEE Trans Softw Eng 21(1):19–31
Silva FP, Souza HA, Chaim ML (2018) An empirical assessment of visual debugging tools effectiveness and efficiency. In: 2018 37th international conference of the Chilean computer science society (SCCC), IEEE, pp 1–8
Stallman RM, et al. (1999) Using and porting the GNU compiler collection vol. 86. Free Software Foundation, ???
Stallman R, Pesch R, Shebs S, et al.: Debugging with GDB. Free Software Foundation 675 (1988)
Sugiyama K, Tagawa S, Toda M (1981) Methods for visual understanding of hierarchical system structures. IEEE Trans Syst Man Cybern 11(2):109–125
Tip F (1994) A survey of program slicing techniques. Centrum voor Wiskunde en Informatica Amsterdam, ???
Weiser MD (1979) Program slices: formal, psychological, and practical investigations of an automatic program abstraction method. University of Michigan, USA
Wong WE, Debroy V, Li Y, Gao R (2012) Software fault localization using dstar (d*). In: 2012 IEEE sixth international conference on software security and reliability, IEEE, pp 21–30
Wong WE, Qi Y (2009) BP neural network-based effective fault localization. Int J Softw Eng Knowl Eng 19(04):573–597
Wong WE, Sugeta T, Qi Y, Maldonado JC (2005) Smart debugging software architectural design in SDL. J Syst Softw 76(1):15–28
Wong WE, Gao R, Li Y, Abreu R, Wotawa F (2016) A survey on software fault localization. IEEE Trans Softw Eng 42(8):707–740
Xie C, Xu W, Mueller K (2018) A visual analytics framework for the detection of anomalous call stack trees in high performance computing applications. IEEE Trans Visual Comput Graph 25(1):215–224
Xu B, Qian J, Zhang X, Wu Z, Chen L (2005) A brief survey of program slicing. ACM SIGSOFT Softw Eng Notes 30(2):1–36
Xuan J, Monperrus M (2014) Test case purification for improving fault localization. In: Proceedings of the 22nd ACM SIGSOFT international symposium on foundations of software engineering, pp 52–63
Zhang X-Y, Jiang M (2021) Spica: a methodology for reviewing and analysing fault localisation techniques. In: 2021 IEEE international conference on software maintenance and evolution (ICSME), IEEE, pp 366–377
Zhang X-Y, Zheng Z (2019) A visualization analytical framework for software fault localization metrics. In: 2019 IEEE 24th pacific rim international symposium on dependable computing (PRDC), IEEE, pp 148–14809
Zhang S, Zhang C (2014) Software bug localization with markov logic. In: Companion proceedings of the 36th international conference on software engineering, pp 424–427
Acknowledgements
This work was supported by the National Natural Science Foundation of China under Grant 62202074 and U1836114.
Author information
Authors and Affiliations
Corresponding author
Additional information
Publisher's Note
Springer Nature remains neutral with regard to jurisdictional claims in published maps and institutional affiliations.
Rights and permissions
Springer Nature or its licensor (e.g. a society or other partner) holds exclusive rights to this article under a publishing agreement with the author(s) or other rightsholder(s); author self-archiving of the accepted manuscript version of this article is solely governed by the terms of such publishing agreement and applicable law.
About this article
Cite this article
Sun, D., Yue, X., Liu, C. et al. SFLVis: visual analysis of software fault localization. J Vis 27, 585–602 (2024). https://doi.org/10.1007/s12650-024-00979-x
Received:
Revised:
Accepted:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s12650-024-00979-x