Skip to main content

Advertisement

Log in

SFLVis: visual analysis of software fault localization

  • Regular Paper
  • Published:
Journal of Visualization Aims and scope Submit manuscript

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

This is a preview of subscription content, log in via an institution to check access.

Access this article

Subscribe and save

Springer+ Basic
$34.99 /Month
  • Get 10 units per month
  • Download Article/Chapter or eBook
  • 1 Unit = 1 Article or 1 Chapter
  • Cancel anytime
Subscribe now

Buy Now

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Fig. 1
Fig. 2
Fig. 3
Fig. 4
Fig. 5
Fig. 6
Fig. 7
Fig. 8
Fig. 9
Fig. 10
Fig. 11
Fig. 12
Fig. 13
Fig. 14
Fig. 15

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

    Article  MATH  Google Scholar 

  • 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

    MATH  Google Scholar 

  • 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

    Article  Google Scholar 

  • 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

    Article  MATH  Google Scholar 

  • 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

    Article  MATH  Google Scholar 

  • 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

    Article  MATH  Google Scholar 

  • Naish L, Lee HJ, Ramamohanarao K (2011) A model for spectra-based software diagnosis. ACM Trans Softw Eng Methodol (TOSEM) 20(3):1–32

    Article  MATH  Google Scholar 

  • 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

    Article  MATH  Google Scholar 

  • 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

    Article  MATH  Google Scholar 

  • 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

    Article  MATH  Google Scholar 

  • 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

    Article  MathSciNet  MATH  Google Scholar 

  • 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

    MATH  Google Scholar 

  • 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

    Article  MATH  Google Scholar 

  • Wong WE, Sugeta T, Qi Y, Maldonado JC (2005) Smart debugging software architectural design in SDL. J Syst Softw 76(1):15–28

    Article  MATH  Google Scholar 

  • 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

    Article  MATH  Google Scholar 

  • 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

    Article  MATH  Google Scholar 

  • 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

    Article  MATH  Google Scholar 

  • 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

Download references

Acknowledgements

This work was supported by the National Natural Science Foundation of China under Grant 62202074 and U1836114.

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Haibo Hu.

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.

Reprints and permissions

About this article

Check for updates. Verify currency and authenticity via CrossMark

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

Download citation

  • Received:

  • Revised:

  • Accepted:

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s12650-024-00979-x

Keywords