Abstract
Spectrum-based fault localization (SFL) techniques have shown considerable effectiveness in localizing software faults. They leverage a ranking metric to automatically assign suspiciousness scores to certain entities in a given faulty program. However, for some programs, the current SFL ranking metrics lose effectiveness. In this paper, we introduce ConsilientSFL that is served to synthesize a new ranking metric for a given program, based on a customized combination of a set of given ranking metrics. ConsilientSFL can be significant since it demonstrates the usage of voting systems into a software engineering task. First, several mutated, faulty versions are generated for a program. Then, the mutated versions are executed with the test data. Next, the effectiveness of each existing ranking metric is computed for each mutated version. After that, for each mutated version, the computed existing metrics are ranked using a preferential voting system. Consequently, several top metrics are chosen based on their ranks across all mutated versions. Finally, the chosen ranking metrics are normalized and synthesized, yielding a new ranking metric. To evaluate ConsilientSFL, we have conducted experiments on 27 subject programs from Code4Bench and Siemens benchmarks. In the experiments, we found that ConsilientSFL outperformed every single ranking metric. In particular, for all programs on average, we have found performance measures recall, precision, f-measure, and percentage of code inspection, to be nearly 7, 9, 12, and 5 percentages larger than using single metrics, respectively. The impact of this work is twofold. First, it can mitigate the issue with the choice and usage of a proper ranking metric for the faulty program at hand. Second, it can help debuggers find more faults with less time and effort, yielding higher quality software.
Similar content being viewed by others
References
Thung F, Wang S, Lo D, Jiang L (2012) An empirical study of bugs in machine learning systems. In: Proc. 23rd International Symposium on Software Reliability Engineering, pp 271–280
Zhang M, Li Y, Li X, Chen L, Zhang Y, Zhang L, Khurshid S (2019) An empirical study of boosting spectrum-based fault localization via pagerank. IEEE Trans Softw Eng
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
Leitao-Junior PS, Freitas DM, Vergilio SR, Camilo-Junior CG, Harrison R (2020) Search-based fault localisation: a systematic mapping study. Inf Softw Technol 123:106295
Mao X, Lei Y, Dai Z, Qi Y, Wang C (2014) Slice-based statistical fault localization. J Syst Softw 89:51–62
Wang Y, Patil H, Pereira C, Lueck G, Gupta R, Neamtiu I (2014) Drdebug: Deterministic replay based cyclic debugging with dynamic slicing. In: Proc. of Annual IEEE/ACM International Symposium on Code Generation and Optimization, pp 98:98–98:108
Xuan J, Monperrus M (2014) Test case purification for improving fault localization. In: Proc. 22nd ACM SIGSOFT International Symposium on Foundations of Software Engineering, pp 52–63
Liu C, Fei L, Yan X, Han J, Midkiff SP (2006) Statistical debugging: a hypothesis testing-based approach. IEEE Trans Softw Eng 32(10):831–848
Nath A, Domingos P (2016) Learning tractable probabilistic models for fault localization. In: Proc. 13th AAAI Conference on Artificial Intelligence, pp 1294–1301
Xuan J, Monperrus M (2014) Learning to combine multiple ranking metrics for fault localization. In: Proc. IEEE International Conference on Software Maintenance and Evolution, pp 191–200
Zhang S, Zhang C (2014) Software bug localization with markov logic. In: Companion Proc. 36th International Conference on Software Engineering, pp 424–427
Tu J, Xie X, Chen TY, Baowen X (2019) On the analysis of spectrum based fault localization using hitting sets. J Syst Softw 147:106–123
Dallmeier V, Lindig C, Zeller A (2005) Lightweight bug localization with ample. In: Proc. 6th International Symposium on Automated Analysis-driven Debugging, pp 99–104
Jones JA, Harrold MJ, Stasko J (2002) Visualization of test information to assist fault localization. In: Proc. 24th International Conference on Software Engineering, pp 467–477
Yoo S, Xie X, Kuo FC, Chen TY, Harman M (2014) No pot of gold at the end of program spectrum rainbow: greatest risk evaluation formula does not exist. Tech. Rep. Research note RN/14/14. University College London
Pearson S, Campos J, Just R, Fraser G, Abreu R, Ernst MD, Pang D, Keller B (2017) Evaluating and improving fault localization. In: Proc. 39th International Conference on Software Engineering, pp 609–620
Khalilian A, Baraani-Dastjerdi A, Zamani B (2019) APRSuite: a suite of components and use cases based on categorical decomposition of automatic program repair techniques and tools. Journal of Computer Languages 100927
Zakari A, Lee SP, Abreu R, Ahmed BH, Rasheed RA (2020) Multiple fault localization of software programs: A systematic literature review. Information and Software Technology 124:106312
Assiri FY, Bieman JM (2017) Fault localization for automated program repair: effectiveness, performance, repair correctness. Software Quality Journal 25(1):171–199
Jia Y, Harman M (2011) An analysis and survey of the development of mutation testing. IEEE Trans Softw Eng 37(5):649–678
Tideman N (2018) "how should votes be cast and counted?." the Oxford handbook of. Public Choice 2:1
Burnett CM, Kogan V (2015) Ballot (and voter) “exhaustion” under instant runoff voting: an examination of four ranked-choice elections. Elect Stud 37:41–49
Kemeny JG (1959) Mathematics without numbers. Daedalus 88(4):577–591 retrieved from https://www.mitpressjournals.org/loi/daed
Schulze M (2011) A new monotonic, clone-independent, reversal symmetric, and condorcet-consistent single-winner election method. Soc Choice Welf 36(2):267–303
Bagheri B, Alipour MR, Vahidi-Asl M (2019) An Approach to Generate Effective Fault Localization Methods for Programs. In: International Conference on Fundamentals of Software Engineering. Springer, Cham, pp 244–259
Khalilian A, Baraani-Dastjerdi A, Zamani B (2021) CGenProg: adaptation of cartesian genetic programming with migration and opposite guesses for automatic repair of software regression faults. Expert Syst Appl 169:114503
Jeffrey D (2006) Regression Testing. In: CSc 620. Slide 5–7
Huang R, Zhang Q, Towey D, Sun W, Chen J (2020) Regression test case prioritization by code combinations coverage. J Syst Softw 169:110712
Gough B, Stallman RM (2004) An Introduction to GCC for the GNU compilers gcc and g++. Network Theory Ltd
Gazzola L, Micucci D, Mariani L (2017) Automatic software repair: a survey. IEEE Trans Softw Eng 45(1):34–67
Zou D, Liang J, Xiong Y, Ernst MD, Lu Z (2019) An empirical study of fault localization families and their combinations. IEEE Trans Softw Eng
Chekam TT, Papadakis M, Bissyandé TF, Le Traon Y, Sen K (2020) Selecting fault revealing mutants. Empirical Software Engineering 25(1):434–487
Saha RK, Lyu Y, Yoshida H, Prasad MR (2017) Elixir: Effective objectoriented program repair. In: Proc. 32nd IEEE/ACM International Conference on Automated Software Engineering, pp 648–659
Toplak J (2017) Preferential voting: definition and classification. Lex Localis 15(4):737–761
Blom M, Stuckey PJ, Teague VJ (2019) Toward computing the margin of victory in single transferable vote elections. INFORMS J Comput 31(4):636–653
Xie X, Chen TY, Kuo FC, Xu B (2013) A theoretical analysis of the risk evaluation formulas for spectrum-based fault localization. ACM Transactions on Software Engineering and Methodology 22(4):31:1–31:40
Ghosh D, Singh J (2021) Spectrum-based multi-fault localization using chaotic genetic algorithm. Inf Softw Technol 133:106512
Jones JA, Bowring JF, Harrold MJ (2007) Debugging in parallel. In: Proceedings of the ACM SIGSOFT International Symposium on Software Testing and Analysis, pp 16–1l
Ali S, Andrews JH, Dhandapani T, Wang W (2009) Evaluating the accuracy of fault localization techniques. In: Proceedings of the 24th IEEE/ACM International Conference on Automated Software Engineering, pp 76–87
Tien-Duy B, Le T, Ferdian LD (2013) Theory and practice, do they match? a case with spectrum-based fault localization. In: 29th IEEE International Conference on Software Maintenance (ICSM)
Debroy V, Wong WE (2011) On the consensus-based application of fault localization techniques. In: Proceedings of the 2011 IEEE 35th Annual Computer Software and Applications Conference Workshops, pp 506–511
Yoo S (2012) Evolving human competitive spectra-based fault localisation techniques. In: Search Based Software Engineering, volume 7515 of Lecture Notes in Computer Science. Springer, pp 244–258
Le TB, Oentaryo RJ, Lo D (2015) Information retrieval and spectrum based bug localization: Better together. In: Proceedings of the 10th Joint Meeting of the European Software Engineering Conference and ACM SIGSOFT Symposium on the Foundations of Software Engineering, pp 579–590
Koohzadi M, Charkari NM, Ghaderi F (2020) Unsupervised representation learning based on the deep multi-view ensemble learning. Appl Intell 50:562–581
Lopez-Garcia P, Masegosa AD, Osaba E et al (2019) Ensemble classification for imbalanced data based on feature space partitioning and hybrid metaheuristics. Appl Intell 49:2807–2822
Zhang Y, Zhu R, Chen Z et al (2020) Evaluating and selecting features via lower bounds of feature inner correlations for high-dimensional data. Eur J Oper Res. https://doi.org/10.1016/j.ejor.2020.09.028
Xie X, Kuo FC, Chen TY, Yoo S, Harman M (2013) Provably optimal and human competitive results in sbse for spectrum based fault localization. In: Proc. 5th International Symposium on Search Based Software Engineering - Volume 8084, pp 224–238
Do H, Elbaum S, Rothermel G (2005) Supporting controlled experimentation with testing techniques: an infrastructure and its potential impact. Empir Softw Eng 10(4):405–435
Majd A, Vahidi-Asl M, Khalilian A, Baraani-Dastjerdi A, Zamani B (2019) Code4Bench: A multidimensional benchmark of codeforces data for different program analysis techniques. Journal of Computer Languages 53:38–52
Wohlin C, Runeson P, Höst M, Ohlsson MC, Regnell B, Wesslén A (2012) Experimentation in software engineering. Springer Science & Business Media
Parnin C, Orso A (2011) Are automated debugging techniques actually helping programmers? In: Proc. International Symposium on Software Testing and Analysis, pp 199–209
Naish L, Lee HJ, Ramamohanarao K (2011) A model for spectra-based software diagnosis. ACM Transactions on Software Engineering and Methodology (TOSEM) 20(3):1–32
Acknowledgements
We are grateful to the anonymous reviewers whose comments have led to a significant improvement of the paper.
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
Majd, A., Vahidi-Asl, M., Khalilian, A. et al. ConsilientSFL: using preferential voting system to generate combinatorial ranking metrics for spectrum-based fault localization. Appl Intell 52, 11068–11088 (2022). https://doi.org/10.1007/s10489-021-02954-7
Accepted:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s10489-021-02954-7