Abstract
For effective fault localization, we propose a modified Fisher’s test-based statistical method that makes use of test execution results as well as statement coverage information to determine the suspiciousness of each executable statement. Our technique returns a rank list of statements based on their suspiciousness of containing a fault. We also discuss an extension to our proposed approach for localizing programs with multiple faults. This involves partitioning the failed test cases into clusters such that they target different faults. Our experimental studies show that on an average, our proposed fault localization technique requires examination of 37.09% less code than existing techniques for localizing faults.




















Similar content being viewed by others
Explore related subjects
Discover the latest articles, news and stories from top researchers in related subjects.References
Wong WE, Debroy V, Gao R, Li Y (2016) The DStar method for effective software fault localization. IEEE Trans Reliab 63(1):290–308
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
Mall R (2018) Fundamentals of software engineering. PHI Learning Pvt Ltd., New Delhi
Weiser M (1984) Program slicing. IEEE Trans Softw Eng 10(4):352–357
Korel B, Laski J (1988) Dynamic program slicing. Inf Process Lett 29(3):155–163
Agrawal H, Horgan JR (1990) Dynamic Program Slicing. In: Proceedings of the ACM SIGPLAN’90 conference on programming language design and implementation. White Plains, New York, pp 246–256
Wong WE, Qi Y (2009) BP neural network-based effective fault localization. Int J Softw Eng Knowl Eng 19(4):573–597
Naish L, Hua Jie L, Kotagiri R (2011) A model for spectra-based software diagnosis. ACM Trans Softw Eng Methodol 11(3):20
Tang CM, Chan WK, Yu YT, Zhang Z (2017) Accuracy graphs of spectrum-based fault localization formulas. IEEE Transactions on Reliability 66(2):403–424
Dutta A, Jain R, Gupta S, Mall R (2019) Fault localization using a weighted function dependency graph. In: International conference on quality, reliability, risk, maintenance, and safety engineering, QR2MSE-2019, Zhangjiajie, Hunan, China
Lyle JR, Weiser M (1987) Automatic program bug location by program slicing. In: Proceedings of the 2nd international conference on computer and applications, Beijing, China, pp 877–883
Gupta R, Soffa ML (1995) Hybrid slicing: an approach for refining static slices using dynamic information. In: Symposium on foundations of software engineering, pp 29–40
Agrawal H, Horgan JR, London S, Wong WE (1995) Fault localization using execution slices and dataflow tests. In: Proceedings of the 6th IEEE international symposium on software reliability engineering, Toulouse, France, pp 143–151
Wong E, Wei T, Qi Y, Zhao L (2008) A crosstab-based statistical method for effective fault localization. In: Proceedings of 1st international conference on software testing, verification, and validation, pp 42–51
Wong WE, Debroy V, Xu D (2011) Towards better fault localization: a crosstab-based statistical approach. IEEE Trans Syst Man Cybern Part C 42(3):378–396
Cleve H, Zeller A (2005) Locating causes of program failures. In: Proceedings of the 27th international conference on software engineering, St. Louis, Missouri, USA, pp 342–351
Zeller A, Hildebrandt R (2002) Simplifying and isolating failure-inducing input. IEEE Trans Softw Eng 28(2):183–200
Jones JA, Harrold MJ, Stasko J (2001) Visualization for fault localization. In: Proceedings of ICSE 2001 workshop on software visualization, Canada, pp 71–75
Jones JA, Harrold MJ (2005) Empirical evaluation of the tarantula automatic fault-localization technique. In: Proceedings of the 20th IEEE/ACM conference on automated software engineering, Long Beach, California, USA, pp 273–282
Ascari LC, Araki LY, Pozo AR, Vergilio SR (2009) Exploring machine learning techniques for fault localization. In: 10th Latin American test workshop, IEEE, pp 1–6
Briand LC, Labiche Y, Liu X (2007) Using machine learning to support debugging with Tarantula. In: The 18th IEEE international symposium on software reliability (ISSRE’07), IEEE, pp 137–146
Dutta A, Pant N, Mitra P, Mall R (2019) Effective Fault Localization using an Ensemble Classifier. In: International conference on quality, reliability, risk, maintenance, and safety engineering, QR2MSE-2019, Zhangjiajie, Hunan, China
Everitt BS (1977) The analysis of contingency tables. Chapman and Hall, London
Goodman LA (1984) The analysis of cross-classification data having ordered categories. Harvard University Press, Cambridge
Freeman D (1987) Applied categorical data analysis. Marcel Dekker Inc., New York
Krinke J (2004) Slicing, chopping, and path conditions with barriers. Software Quality Control 12(4):339–360
Korel B (1988) PELAS - program error-locating assistant system. IEEE Trans Softw Eng 14(9):1253–1260
Renieris M, Reiss SP (2003) Fault localization with nearest neighbor queries. In: Proceedings of the 18th IEEE international conference on automated software engineering, pp 30–39
Li Y, Chao L (2014) Effective fault localization using weighted test cases. J Softw 9(08):8
Wong WE, Debroy V, Choi B (2010) A family of code coverage-based heuristics for effective fault localization. J Syst Softw 83(2):188–208
Debroy V, Wong WE, Xu X, Choi B (2010) A grouping-based strategy to improve the effectiveness of fault localization techniques. In: 2010 10th international conference on quality software. IEEE, pp 13–22
Shu T, Ye T, Ding Z, Xia J (2016) Fault localization based on statement frequency. Inf Sci 360:43–56
Zhang Z, Yan L, Qingping T, Xiaoguang M, Ping Z, Xi C (2017) Deep learning-based fault localization with contextual information. IEICE Trans Inf Syst 100(12):3027–3031
Wong WE, Debroy V, Golden R, Xu X, Thuraisingham B (2012) Effective software fault localization using an RBF neural network. IEEE Trans Reliab 61(1):149–169
Zheng W, Hu D, Wang J (2016) Fault localization analysis based on deep neural network. Math Probl Eng
Dutta A, Manral R, Mitra P, Mall R (2019) Hierarchically localizing software faults using DNN. IEEE Transactions on Reliability
Dutta A, Sahay R, Mitra P, Mall R (2019) Predicate proximity in failure: an mlp based fault localization approach. In: Proceedings of IEEE Region 10 Conference-TENCON2, Kochi, India, pp 936–941
Maru A, Dutta A, Kumar KV, Mohapatra DP (2019) Software fault localization using BP neural network based on function and branch coverage. Evolut Intell, pp 1–18
Duda RO, Hart PE (1973) Pattern recognition and scene analysis. Wiley, Hoboken
Mitchell TM (1997) Machine Learning. McGraw-Hill, New York
Wasserman PD (1993) Advanced methods in neural computing. Wiley, Hoboken
Zakari A, Lee SP, Abreu R, Ahmed BH, Rasheed RA (2020) Multiple fault localization of software programs: a systematic literature review. Inf Softw Technol 124:106312
Jones AJ, Bowring FJ, Harrold MJ (2007) Debugging in parallel. In: Proceedings of the 2007 international symposium on software testing and analysis, ACM, pp 16–26
Gao R, Eric Wong W (2017) MSeer-An advanced technique for locating multiple bugs in parallel. IEEE Trans Softw Eng 45(3):301–318
Knight WR (1966) A computer method for calculating Kendall’s tau with ungrouped data. J Am Stat Assoc 61(314):436–439
Park Hae-Sang, Jun Chi-Hyuck (2009) A simple and fast algorithm for K-medoids clustering. Exp Syst Appl 36(2):3336–3341
Abreu R, Zoeteweij P, Gemund AJ (2009) Localizing software faults simultaneously. In: Proceedings of 9th international conference on quality software (QSIC’09.), IEEE, pp 367–376
Cellier P, Ducassé M, Ferré SS, Ridoux O (2011) Multiple fault localization with data mining. In: Proceedings of software engineering and knowledge engineering (SEKE), pp 238–243
Tan PN, Steinbach M, Kumar V (2013) Data Mining Cluster Analysis: Basic Concepts and Algorithms-Introduction to Data Mining. Pearson Publications, London
https://github.com/jburnim/crest/blob/master/test/cfg_test.c
Burnim J, Sen K (2008) Heuristics for scalable dynamic test generation. In: Proceedings of the 23rd IEEE/ACM international conference on automated software engineering, Italy, pp 443–446
https://www.geeksforgeeks.org/merge-two-bsts-with-limited-extra-space/
https://www.geeksforgeeks.org/date-after-adding-given-number-of-days-to-the-given-date/
http://www.rers-challenge.org/2018/index.php?page=ltlProblems#
https://www.tutorialspoint.com/data_structures_algorithms/quick_sort_ program_in_c.htm
Kehrer T, A systematic analysis of faults in the Defects4J benchmark
Li X, Wei L, Yuqun Z, Lingming Z (2019) Deepfl: integrating multiple fault diagnosis dimensions for deep fault localization. In: Proceedings of the 28th ACM SIGSOFT international symposium on software testing and analysis, pp 169–180
Papadakis M, Yves Le Traon LT (2015) Metallaxis-FL: mutation-based fault localization. Softw Test Verificat Reliab 25(5–7):605–628
Moon S, Kim Y, Kim M, Yoo S (2014) Ask the mutants: Mutating faulty programs for fault localization. In: 2014 IEEE seventh international conference on software testing, verification and validation, IEEE, pp 153–162
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
About this article
Cite this article
Dutta, A., Kunal, K., Srivastava, S.S. et al. FTFL: A Fisher’s test-based approach for fault localization. Innovations Syst Softw Eng 17, 381–405 (2021). https://doi.org/10.1007/s11334-021-00403-9
Received:
Accepted:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s11334-021-00403-9