A Fault Localization Method Based on Metrics Combination
Abstract
:1. Introduction
- -
- Faulty statements in a pool of program statements with identical failed execution values.
- -
- Faulty statements with fewer failed execution values than non-faulty statements.
- -
- Faulty statements that are not covered by any failed test (faulty statements with zero failed execution values).
- It defines four metrics, Failed Execution Flag, Assumption Proportion, Total Execution, and Fault Assumption. It then assesses their effectiveness on each existing maximal formula to understand which is best to combine with them for effective fault localization.
- It proposes a new formula, MECO, by combining the proposed metrics, which developers can also use as a standalone method for fault localization.
- It assesses the contribution of each metric to the performance of the proposed method, MECO, to determine which contributes more to its fault localization accuracy.
- MECO is empirically evaluated in seeded and real faults of the SIR-repository and Defects4J-repository and compared on the effectiveness with the existing formulas.
2. Background and Motivation
2.1. Spectrum-Based Fault Localization
- Distinguish the faulty statements covered by fewer failed executions than the non-faulty statements.
- Identify the faulty statements that have no failed execution.
- Identify the faulty statement with higher pass execution than non-faulty statements.
2.2. Motivation
- Find the relationship between the failed execution and non-execution pass, known as Fault Assumption, A.
- Divide Fault Assumption by the total test cases known as Fault Probability, P.
- Convert the failed execution to “1” or “0” if a statement has one or more failed executions or has no failed execution, known as Failed Execution Flag, F. This can replace failed execution () in any formula with only as its numerators, such as Jaccard, ER1b, and . When Failed Execution Flag replaces in Jaccard, ER1b, and , the formulas become , , and . Applying these metrics to the example will rank the faulty statement more than the non-faulty statements.
- Find the total number of test cases that hit each program statement, known as Total Execution, E.
- Combine the Fault Assumption, Assumption Proportion, Failed Execution Flag, and Total Execution to form a formula, MECO.
3. MECO Method
- (1)
- Fault Assumption
- (2)
- Assumption Proportion
- (3)
- Failed Execution Flag
- (4)
- Total Execution
- The higher the failed test (i.e., ), the more suspicious the program’s statement.
- The higher the pass test (i.e., ), the lesser the suspicion of the program’s statement, and the lesser the pass test (i.e., ), the higher the suspicion of the program’s statement.
- The higher the uncovered failed test (i.e., ), the lesser the suspicious of the statement. The lesser the uncovered failed test, the higher the suspicion of the program’s statement.
- Intuition: The higher the Assumption Proportion with one or more failed execution, the higher the suspiciousness of such program statements.
4. Experimental Setup
4.1. Fault Localization
4.2. Evaluation Metrics
4.2.1. acc@n
4.2.2. Mean Average Precision
4.2.3. Wasted Effort
4.3. Dataset
4.4. Research Questions
- RQ1.
- Which of the metrics contribute more to the performance of MECO?This research question first assesses the performance of each metric to determine its performance. It then drops one metric at a time from the MECO formula and measures its performance. The results are then compared to MECO to determine if dropping one of the metrics can positively or negatively affect MECO’s performance. The effectiveness is measured using acc@n, Mean Average Precision, and Wasted Effort. MECO is evaluated in 449 program faults.
- RQ2.
- How effective is MECO compared to the existing maximal formulas?This research question assesses and compares the performance of MECO to the 18 existing maximal formulas using the three evaluation metrics. It compares the effectiveness of each method on the combined SIR faults and Defects4J project-by-project separated faults. A total of 449 program faults is used in this experiment.
- RQ3.
- How effective are the proposed metrics when combined with the existing maximal formulas?The effectiveness of the proposed metrics is assessed on the existing formulas when combined. This study investigates how these metrics boost the fault localization ability of the studied formulas. The approach employed is changing one metric at a time to observe the effect of a formula locating faults. Then, the percentage of the performance difference in 449 real and seeded faults is measured. Consult sbfl for further information about the studied formulas.
5. Results
5.1. The Metric That Contributes More to the Performance of MECO
5.1.1. Performance of Each Metric Compared to MECO
5.1.2. The Contributions of Each Metric to MECO
- RQ1 Summary:
5.2. The Performance Comparison of MECO and the Maximal Formulas
5.2.1. Fault Localization Accuracy
5.2.2. Fault Localization Wasted Effort
5.2.3. Fault Localization Precision
- RQ2 summary:
5.3. The Effects of the Defined Four Metrics on the Existing Formulas
5.3.1. The Improvements on Fault Localization Accuracy
5.3.2. The Improvements on Wasted Effort
5.3.3. The Improvements on Fault Localization Precision
- Summary of RQ.3
5.4. Discussion
6. Related Works
7. Threats to Validity
- Internal validity: The degree to which the outcomes of empirical evaluations support the claims is internal validity, the data integrity of training, and test data.In our study, we chose statements as the granularity of fault localization rather than methods and blocks. Existing studies by Xu et al. investigated fault localization with blocks, and Steimann et al. [47,48], Xuan et al. [12,12], and Sohn et al. [23], addressed fault localization with methods in the C and Java programs. In our study, we used statements as our level of granularity, as has also been followed by Jones et al. [33], Abreu et al. [5], Kim et al. [25], and Naish et al. [7]. Given the program for methods, our study can easily be adapted to fault localization on methods without further modification.
- External validity: By design, the MECO method described in this paper depends on the subject program dataset and may not be generalizable. Many fault localization research’ results and findings are, in fact, not directly generalizable. However, we took a measure to mitigate this threat by experimenting on two different repository datasets (nine different programs in all) to evaluate our method extensively. We also ensured that the subject programs contain both real and seeded faults to determine if our method can be adapted to different types of faults and provide a high quality of fault localization effectiveness.
- Construct validity:The measure used to evaluate MECO’s performance poses a significant threat to construct validity. We mitigated this threat by reporting not only the commonly used Wasted Effort metric, which shows the percentages of a program that needs to be investigated, but also the Mean Average Precision and acc@n metrics, which show the absolute rank of a faulty statement, as proposed by Parnin and Orso [1].
8. Conclusions
Author Contributions
Funding
Institutional Review Board Statement
Informed Consent Statement
Data Availability Statement
Conflicts of Interest
References
- Parnin, C.; Orso, A. Are automated debugging techniques actually helping programmers? In Proceedings of the 2011 International Symposium on Software Testing and Analysis (ISSTA ’11). Association for Computing Machinery, Toronto, ON, Canada, 17–21 July 2011; pp. 199–209. [Google Scholar] [CrossRef]
- Ajibode, A.A.; Shu, T.; Ding, Z. Evolving Suspiciousness Metrics From Hybrid Data Set for Boosting a Spectrum Based Fault Localization. IEEE Access. 2020, 8, 198451–198467. [Google Scholar] [CrossRef]
- Dallmeier, V.; Lindig, C.; Zeller, A. Lightweight Defect Localization for Java. In ECOOP 2005—Object-Oriented Programming; Black, A.P., Ed.; Lecture Notes in Computer Science; Springer: Berlin/Heidelberg, Germany, 2005; Volume 3586, pp. 528–550. [Google Scholar] [CrossRef] [Green Version]
- Xie, X.; Chen, T.Y.; Kuo, F.C.; Xu, B. A theoretical analysis of the risk evaluation formulas for spectrum-based fault localization. ACM Trans. Softw. Eng. Methodol. (TOSEM) 2013, 22, 1–40. [Google Scholar] [CrossRef]
- Abreu, R.; Zoeteweij, P.; Van Gemund, A.J.C. On the accuracy of spectrum-based fault localization. In Proceedings of the Testing: Academic and Industrial Conference Practice and Research Techniques—MUTATION (TAICPART-MUTATION ’07), Windsor, UK, 10–14 September 2007; pp. 89–98. [Google Scholar]
- Harrold, M.J.; Rothermel, G.; Sayre, K.; Wu, R.; Yi, L. An empirical investigation of the relationship between spectra differences and regression faults. Softw. Test. Verif. Reliab. 2000, 10, 171–194. [Google Scholar] [CrossRef] [Green Version]
- Naish, L.; Lee, H.J.; Ramamohanarao, K. A model for spectra-based software diagnosis. ACM Trans. Softw. Eng. Methodol. (TOSEM). 2011, 20, 1–32. [Google Scholar] [CrossRef]
- Mao, X.; Lei, Y.; Dai, Z.; Qi, Y.; Wang, C. Slice-based statistical fault localization. J. Syst. Softw. 2014, 89, 51–62. [Google Scholar] [CrossRef]
- Agrawal, H.; Horgan, J.R.; London, S.; Wong, W.E. Fault localization using execution slices and dataflow tests. In Proceedings of the of Sixth International Symposium on Software Reliability Engineering, ISSRE’95, Toulouse, France, 24 October 1995; pp. 143–151. [Google Scholar]
- Renieres, M.; Reiss, S.P. Fault localization with nearest neighbor queries. In Proceedings of the 18th IEEE International Conference on Automated Software Engineering, Montreal, QC, Canada, 6 October 2003; pp. 30–39. [Google Scholar]
- Feng, M.; Gupta, R. Learning universal probabilistic models for fault localization. In Proceedings of the 9th ACM SIGPLAN-SIGSOFT Workshop on Program Analysis for Software Tools and Engineering, Toronto, ON, Canada, 5 June 2010; pp. 81–88. [Google Scholar]
- Xuan, J.; Monperrus, M. Learning to combine multiple ranking metrics for fault localization. In Proceedings of the 2014 IEEE International Conference on Software Maintenance and Evolution, Washington, DC, USA, 29 September 2014; pp. 191–200. [Google Scholar]
- Zhang, M.; Li, X.; Zhang, L.; Khurshid, S. Boosting spectrum-based fault localization using PageRank. In Proceedings of the 26th ACM SIGSOFT International Symposium on Software Testing and Analysis (ISSTA 2017), Association for Computing Machinery, New York, NY, USA, 10–14 July 2017; pp. 261–272. [Google Scholar] [CrossRef]
- He, H.; Ren, J.; Zhao, G.; He, H. Enhancing spectrum-based fault localization using fault influence propagation. IEEE Access. 2020, 8, 18497–18513. [Google Scholar] [CrossRef]
- Moon, S.; Kim, Y.; Kim, M.; Yoo, S. Ask the mutants: Mutating faulty programs for fault localization. In Proceedings of the 2014 IEEE Seventh International Conference on Software Testing, Verification and Validation, Cleveland, OH, USA, 31 March–4 April 2014; pp. 153–162. [Google Scholar]
- Papadakis, M.; Le Traon, Y. Using mutants to locate “unknown” faults. In Proceedings of the 2012 IEEE Fifth International Conference on Software Testing, Verification and Validation, Montreal, QC, Canada, 17–21 April 2012; pp. 691–700. [Google Scholar]
- Zhang, L.; Zhang, L.; Khurshid, S. Injecting mechanical faults to localize developer faults for evolving software. ACM SIGPLAN Not. 2013, 48, 765–784. [Google Scholar] [CrossRef]
- Lucia, L.; Lo, D.; Jiang, L.; Thung, F.; Budi, A. Extended comprehensive study of association measures for fault localization. J. Softw. Evol. Process 2014, 26, 172–219. [Google Scholar] [CrossRef] [Green Version]
- Wong, W.E.; Gao, R.; Li, Y.; Abreu, R.; Wotawa, F. A survey on software fault localization. IEEE Trans. Softw. Eng. 2016, 42, 707–740. [Google Scholar] [CrossRef] [Green Version]
- Chen, M.Y.; Kiciman, E.; Fratkin, E.; Fox, A.; Brewer, E. Pinpoint: Problem determination in large, dynamic internet services. In Proceedings of the International Conference on Dependable Systems and Networks, Washington, DC, USA, 23–26 June 2002; pp. 595–604. [Google Scholar]
- Ochiai, A. Zoogeographic studies on the soleoid fishes found in Japan and its neighbouring regions. Bull. Jpn. Soc. Sci. Fish. 1957, 22, 526–530. [Google Scholar] [CrossRef] [Green Version]
- Jones, J.A.; Harrold, M.J. Empirical Evaluation of the Tarantula Automatic Fault-Localization Technique. In Proceedings of the 20th IEEE/ACM International Conference on Automated Software Engineering, ASE ’05, Long Beach, CA, USA, 7–11 November 2005; pp. 273–282. [Google Scholar] [CrossRef] [Green Version]
- Sohn, J.; Yoo, S. Fluccs: Using code and change metrics to improve fault localization. In Proceedings of the 26th ACM SIGSOFT International Symposium on Software Testing and Analysis (ISSTA 2017), New York, NY, USA, 10–14 July 2017; pp. 273–283. [Google Scholar] [CrossRef]
- Le, T.D.B.; Lo, D.; Le Goues, C.; Grunske, L. A learning-to-rank based fault localization approach using likely invariants. In Proceedings of the 25th International Symposium on Software Testing and Analysis (ISSTA 2016), New York, NY, USA, 18–20 July 2016; pp. 177–188. [Google Scholar] [CrossRef]
- Kim, Y.; Mun, S.; Yoo, S.; Kim, M. Precise learn-to-rank fault localization using dynamic and static features of target programs. ACM Trans. Softw. Eng. Methodol. (TOSEM) 2019, 28, 1–34. [Google Scholar] [CrossRef]
- Chen, T.Y.; Xie, X.; Kuo, F.; Xu, B. A Revisit of a Theoretical Analysis on Spectrum-Based Fault Localization. In Proceedings of the 2015 IEEE 39th Annual Computer Software and Applications Conference, Taichung, Taiwan, 1–5 July 2015; Volume 1, pp. 17–22. [Google Scholar] [CrossRef]
- Baudry, B.; Fleurey, F.; Le Traon, Y. Improving test suites for efficient fault localization. In Proceedings of the 28th International Conference on Software Engineering, Shanghai China, 20–28 May 2006; pp. 82–91. [Google Scholar]
- Lee, H.J. Software Debugging Using Program Spectra. Ph.D. Thesis, The University of Melbourne, Victoria, Australia, 2011. [Google Scholar]
- Rothermel, G.; Elbaum, S.; Kinneer, A.; Do, H. Software-Artifact Infrastructure Repository. 2006. Available online: http://sir.unl.edu/portal (accessed on 10 December 2020).
- Just, R.; Jalali, D.; Ernst, M.D. Defects4J: A database of existing faults to enable controlled testing studies for Java programs. In Proceedings of the 2014 International Symposium on Software Testing and Analysis, San Jose, CA, USA, 21–25 July 2014; pp. 437–440. [Google Scholar]
- Yoo, S.; Xie, X.; Kuo, F.C.; Chen, T.Y.; Harman, M. Human competitiveness of genetic programming in spectrum-based fault localisation: Theoretical and empirical analysis. ACM Trans. Softw. Eng. Methodol. (TOSEM) 2017, 26, 1–30. [Google Scholar] [CrossRef]
- Wu, T.; Dong, Y.; Lau, M.F.; Ng, S.; Chen, T.Y.; Jiang, M. Performance Analysis of Maximal Risk Evaluation Formulas for Spectrum-Based Fault Localization. Appl. Sci. 2020, 10, 398. [Google Scholar] [CrossRef] [Green Version]
- Jones, J.A.; Harrold, M.J.; Stasko, J. Visualization of test information to assist fault localization. In Proceedings of the 24th International Conference on Software Engineering, Orlando, FL, USA, 19–25 May 2002; pp. 467–477. [Google Scholar]
- Dallmeier, V.; Lindig, C.; Zeller, A. Lightweight bug localization with AMPLE. In Proceedings of the Sixth International Symposium on Automated Analysis-Driven Debugging, Monterey, CA, USA, 19–21 September 2005; pp. 99–104. [Google Scholar]
- Wong, C.P.; Xiong, Y.; Zhang, H.; Hao, D.; Zhang, L.; Mei, H. Boosting bug-report-oriented fault localization with segmentation and stack-trace analysis. In Proceedings of the 2014 IEEE International Conference on Software Maintenance and Evolution, Washington, DC, USA, 29 September–3 October 2014; pp. 181–190. [Google Scholar]
- Wong, W.E.; Qi, Y.; Zhao, L.; Cai, K.Y. Effective fault localization using code coverage. In Proceedings of the 31st Annual International Computer Software and Applications Conference (COMPSAC 2007), Beijing, China, 24–27 July 2007; Volume 1, pp. 449–456. [Google Scholar]
- Yoo, S. Evolving human competitive spectra-based fault localisation techniques. In Proceedings of the International Symposium on Search Based Software Engineering, Riva del Garda, Italy, 28–30 September 2012; pp. 244–258. [Google Scholar]
- Choi, S.S.; Cha, S.H.; Tappert, C.C. A survey of binary similarity and distance measures. J. Syst. Cybern. Inform. 2010, 8, 43–48. [Google Scholar]
- Feyzi, F.; Parsa, S. A program slicing-based method for effective detection of coincidentally correct test cases. Computing 2018, 100, 927–969. [Google Scholar] [CrossRef]
- Wong, W.E.; Debroy, V.; Gao, R.; Li, Y. The DStar method for effective software fault localization. IEEE Trans. Reliab. 2013, 63, 290–308. [Google Scholar] [CrossRef]
- Cleve, H.; Zeller, A. Locating causes of program failures. In Proceedings of the 27th International Conference on Software Engineering, St. Louis, MO, USA, 15–21 May 2005; pp. 342–351. [Google Scholar]
- Abreu, R.; Zoeteweij, P.; Van Gemund, A.J.C. An evaluation of similarity coefficients for software fault localization. In Proceedings of the 2006 12th Pacific Rim International Symposium on Dependable Computing (PRDC’06), Riverside, CA, USA, 18–20 December 2006; pp. 39–46. [Google Scholar]
- Schütze, H.; Manning, C.D.; Raghavan, P. Introduction to Information Retrieval; Cambridge University Press: Cambridge, UK, 2008; Volume 39. [Google Scholar]
- Zhang, X.; Gupta, N.; Gupta, R. Locating faults through automated predicate switching. In Proceedings of the 28th International Conference on Software Engineering, Shanghai China, 20–28 May 2006; pp. 272–281. [Google Scholar]
- Choi, K.; Sohn, J.; Yoo, S. Learning fault localisation for both humans and machines using multi-objective GP. In Proceedings of the International Symposium on Search Based Software Engineering, Montpellier, France, 8–9 September 2018; pp. 349–355. [Google Scholar]
- Abreu, R.; Zoeteweij, P.; Van Gemund, A.J. Spectrum-based multiple fault localization. In Proceedings of the 2009 IEEE/ACM International Conference on Automated Software Engineering, Washington, DC, USA, 16–20 November 2009; pp. 88–99. [Google Scholar]
- Steimann, F.; Frenkel, M. Improving coverage-based localization of multiple faults using algorithms from integer linear programming. In Proceedings of the 2012 IEEE 23rd International Symposium on Software Reliability Engineering, Washington, DC, USA, 27–30 November 2012; pp. 121–130. [Google Scholar]
- Steimann, F.; Frenkel, M.; Abreu, R. Threats to the validity and value of empirical assessments of the accuracy of coverage-based fault locators. In Proceedings of the 2013 International Symposium on Software Testing and Analysis, Lugano, Switzerland, 15–20 July 2013; pp. 314–324. [Google Scholar]
- Poli, R.; Kennedy, J.; Blackwell, T. Particle swarm optimization. Swarm Intell. 2007, 1, 33–57. [Google Scholar] [CrossRef]
- Emary, E.; Zawbaa, H.M.; Grosan, C.; Hassenian, A.E. Feature subset selection approach by gray-wolf optimization. In Proceedings of the Afro-European Conference for Industrial Advancement, Villejuif, France, 9–11 September 2015; pp. 1–13. [Google Scholar]
- Lalbakhsh, A.; Afzal, M.U.; Esselle, K.P. Multiobjective particle swarm optimization to design a time-delay equalizer metasurface for an electromagnetic band-gap resonator antenna. IEEE Antennas Wirel. Propag. Lett. 2016, 16, 912–915. [Google Scholar] [CrossRef]
- Karami, A.; Roshani, G.H.; Nazemi, E.; Roshani, S. Enhancing the performance of a dual-energy gamma ray based three-phase flow meter with the help of grey wolf optimization algorithm. Flow Meas. Instrum. 2018, 64, 164–172. [Google Scholar] [CrossRef]
Name | Definition | Name | Definition |
---|---|---|---|
Tarantula [22] | Ample [34] | ||
Ochiai1 [21] | Jaccard [20] | ||
Ochiai2 [21] | Kulczynski1 [38] | ||
ER1a [4] | ER5b [4] | ||
ER1b [4] | [35] | ||
GP03 [37] | GP02 [37] | ||
GP13 [37] | GP19 [37] | ||
ER5a [4] | ER5c [4] | ||
Wong2 [36] | |||
Wong3 [36] |
mid ( ) { int x, y, z, m; | (6,6,8) | (4,5,6) | (2,1,1) | (3,3,3) | (5,5,9) | (2,1,3) | (4,3,1) | (8,6,4) | (6,5,1) | (5,2,6) | Jaccard | P | F | A | E | MECO | |||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
m = z; | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 6 | 4 | 0 | 0 | 0.40 | 0.40 | 1 | 4 | 10 | 0.20 | |
if(y<z) | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 6 | 4 | 0 | 0 | 0.40 | 0.40 | 1 | 4 | 10 | 0.20 | |
if(x <y) | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 4 | 1 | 2 | 3 | 0.13 | 0.30 | 1 | 3 | 5 | 0.06 | ||||||
m = y; | 🗸 | 1 | 0 | 5 | 4 | 0.00 | 0.50 | 0 | 5 | 1 | 0.00 | ||||||||||
else if (x<z) | 🗸 | 🗸 | 🗸 | 🗸 | 3 | 1 | 3 | 3 | 0.14 | 0.40 | 1 | 4 | 4 | 0.08 | |||||||
m = x; | 🗸 | 🗸 | 🗸 | 2 | 1 | 4 | 3 | 0.17 | 0.50 | 1 | 5 | 3 | 0.11 | ||||||||
else | 🗸 | 🗸 | 🗸 | 🗸 | 2 | 2 | 4 | 2 | 0.33 | 0.60 | 1 | 6 | 4 | 0.17 | |||||||
if (x >y) | 🗸 | 🗸 | 🗸 | 🗸 | 2 | 2 | 4 | 2 | 0.33 | 0.60 | 1 | 6 | 4 | 0.17 | |||||||
m = z //***bug***; | 🗸 | 🗸 | 🗸 | 1 | 2 | 5 | 2 | 0.40 | 0.70 | 1 | 7 | 3 | 0.21 | ||||||||
else if (x>z) | 🗸 | 1 | 0 | 5 | 4 | 0.00 | 0.50 | 0 | 5 | 1 | 0.00 | ||||||||||
m = x; | 0 | 0 | 6 | 4 | 0.00 | 0.60 | 0 | 6 | 0 | 0.00 | |||||||||||
print(“Middle number is:”, m) | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 6 | 4 | 0 | 0 | 0.40 | 0.40 | 1 | 4 | 10 | 0.20 | |
} Pass/fail status | P | P | P | P | P | P | F | F | F | F |
Subject Programs SIR | Functions | Number of Tests | LOC | Number of Faults |
---|---|---|---|---|
Flex | Lexical analyzer | 670 | 9933 | 47 |
Gzip | Compression utility | 214 | 3883 | 18 |
Grep | Text search utility | 809 | 7309 | 11 |
Sed | Stream text editor | 449 | 5257 | 16 |
Total | 1260 | 92 | ||
Defects4J | Nunmber of Faults | |||
JFreechart | Chart creation tool | 2205 | 96,000 | 26 |
Google Closure compiler | Script for Optimization | 7927 | 90,000 | 133 |
Apache Commons Lang | JDK | 2245 | 22,000 | 65 |
Apache Commons Math | JDK | 3602 | 85,000 | 106 |
Joda-Time (Time) | Standard Time | 4130 | 28,000 | 27 |
Total | 20,109 | 357 | ||
Sub-Total | 21,369 | 449 |
Group | Project | A | P | F | E | W/A | W/P | W/F | W/E | MECO |
---|---|---|---|---|---|---|---|---|---|---|
acc@1 | SIR | 15 | 15 | 0 | 0 | 0 | 0 | 16 | 15 | 26 |
Chart | 8 | 8 | 4 | 0 | 8 | 4 | 15 | 15 | 25 | |
Closure | 5 | 5 | 0 | 0 | 0 | 0 | 13 | 9 | 23 | |
Lang | 9 | 9 | 2 | 2 | 9 | 2 | 14 | 17 | 27 | |
Math | 13 | 13 | 2 | 1 | 6 | 2 | 22 | 24 | 34 | |
Time | 4 | 4 | 4 | 0 | 4 | 4 | 30 | 22 | 40 | |
AVG | 9 | 9 | 2 | 1 | 5 | 2 | 18 | 17 | 29 | |
acc@3 | SIR | 23 | 23 | 1 | 0 | 1 | 1 | 24 | 23 | 34 |
Chart | 19 | 19 | 8 | 4 | 12 | 8 | 31 | 31 | 41 | |
Closure | 7 | 7 | 1 | 0 | 1 | 0 | 18 | 17 | 28 | |
Lang | 12 | 12 | 9 | 6 | 22 | 11 | 29 | 31 | 42 | |
Math | 19 | 19 | 7 | 3 | 9 | 7 | 31 | 35 | 44 | |
Time | 4 | 4 | 4 | 0 | 4 | 4 | 41 | 30 | 51 | |
AVG | 14 | 14 | 5 | 2 | 8 | 5 | 29 | 28 | 40 | |
acc@5 | SIR | 27 | 27 | 1 | 0 | 1 | 1 | 29 | 28 | 39 |
Chart | 23 | 23 | 12 | 4 | 15 | 12 | 38 | 46 | 52 | |
Closure | 8 | 8 | 1 | 0 | 2 | 0 | 20 | 19 | 30 | |
Lang | 20 | 20 | 14 | 9 | 26 | 15 | 43 | 46 | 55 | |
Math | 20 | 20 | 8 | 5 | 10 | 8 | 31 | 37 | 46 | |
Time | 4 | 4 | 4 | 0 | 7 | 4 | 44 | 33 | 54 | |
AVG | 17 | 17 | 7 | 3 | 10 | 7 | 34 | 35 | 46 | |
Wasted Effort | SIR | 17.52 | 17.52 | 27.95 | 35.13 | 23.36 | 12.15 | 13.90 | 8.37 | 3.31 |
Chart | 65.11 | 65.11 | 24.33 | 26.59 | 27.23 | 18.92 | 62.16 | 32.44 | 11.51 | |
Closure | 56.04 | 56.04 | 21.69 | 39.91 | 22.89 | 19.92 | 42.20 | 16.88 | 9.77 | |
Lang | 55.44 | 55.44 | 10.69 | 20.76 | 10.81 | 8.83 | 20.76 | 10.81 | 3.08 | |
Math | 57.96 | 57.96 | 27.09 | 28.23 | 27.79 | 20.07 | 46.67 | 31.74 | 13.62 | |
Time | 50.29 | 50.29 | 26.45 | 46.27 | 30.50 | 26.41 | 21.16 | 19.01 | 12.88 | |
AVG | 50.39 | 50.39 | 23.03 | 32.81 | 23.77 | 17.71 | 34.48 | 19.88 | 9.03 | |
MAP | SIR | 0.191 | 0.191 | 0.009 | 0.004 | 0.011 | 0.012 | 0.200 | 0.194 | 0.209 |
Chart | 0.146 | 0.146 | 0.059 | 0.028 | 0.105 | 0.060 | 0.254 | 0.273 | 0.257 | |
Closure | 0.030 | 0.030 | 0.003 | 0.001 | 0.006 | 0.002 | 0.107 | 0.084 | 0.111 | |
Lang | 0.096 | 0.096 | 0.077 | 0.047 | 0.132 | 0.080 | 0.181 | 0.192 | 0.194 | |
Math | 0.122 | 0.122 | 0.053 | 0.019 | 0.078 | 0.053 | 0.171 | 0.200 | 0.195 | |
Time | 0.012 | 0.012 | 0.026 | 0.002 | 0.047 | 0.026 | 0.177 | 0.159 | 0.178 | |
AVG | 0.100 | 0.100 | 0.038 | 0.017 | 0.063 | 0.039 | 0.182 | 0.184 | 0.191 |
SIR | Chart | Closure | Lang | Math | Time | |||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
Metrics | AWE | MAP | AWE | MAP | AWE | MAP | AWE | MAP | AWE | MAP | AWE | MAP |
MECO | 3.31 | 0.209 | 11.51 | 0.257 | 9.77 | 0.111 | 3.08 | 0.194 | 13.62 | 0.195 | 12.88 | 0.178 |
ER1a | 10.27 | 0.190 | 78.80 | 0.191 | 32.69 | 0.108 | 26.09 | 0.185 | 47.01 | 0.176 | 18.69 | 0.170 |
ER1b | 5.95 | 0.190 | 35.15 | 0.197 | 18.11 | 0.109 | 11.06 | 0.189 | 38.06 | 0.181 | 12.42 | 0.170 |
Tarantula | 16.96 | 0.080 | 38.56 | 0.236 | 24.09 | 0.085 | 14.53 | 0.190 | 41.66 | 0.196 | 16.39 | 0.170 |
Ochiai1 | 15.99 | 0.070 | 38.51 | 0.252 | 24.09 | 0.085 | 14.16 | 0.192 | 41.66 | 0.196 | 16.390 | 0.170 |
Ochiai2 | 9.95 | 0.180 | 42.73 | 0.236 | 24.09 | 0.090 | 14.53 | 0.188 | 43.33 | 0.197 | 16.390 | 0.170 |
Ample | 12.34 | 0.200 | 22.17 | 0.146 | 16.28 | 0.106 | 9.94 | 0.177 | 25.29 | 0.169 | 11.380 | 0.170 |
Jaccard | 6.85 | 0.200 | 38.75 | 0.255 | 24.05 | 0.096 | 14.04 | 0.193 | 41.66 | 0.200 | 16.41 | 0.170 |
45.36 | 0.050 | 39.55 | 0.255 | 28.16 | 0.092 | 26.71 | 0.144 | 55.97 | 0.117 | 16.38 | 0.200 | |
GP02 | 11.21 | 0.080 | 26.61 | 0.122 | 26.03 | 0.009 | 10.56 | 0.103 | 35.03 | 0.096 | 14.53 | 0.010 |
GP03 | 12.76 | 0.160 | 31.65 | 0.066 | 41.85 | 0.006 | 40.12 | 0.043 | 37.01 | 0.020 | 28.92 | 0.030 |
GP13 | 5.95 | 0.190 | 39.82 | 0.197 | 24.90 | 0.109 | 13.91 | 0.189 | 41.75 | 0.181 | 17.01 | 0.170 |
GP19 | 6.95 | 0.200 | 39.52 | 0.122 | 28.93 | 0.070 | 15.78 | 0.141 | 44.86 | 0.148 | 18.94 | 0.120 |
Wong2 | 18.97 | 0.190 | 66.21 | 0.146 | 57.14 | 0.030 | 60.75 | 0.096 | 66.37 | 0.122 | 30.18 | 0.010 |
Wong3 | 18.97 | 0.190 | 66.21 | 0.146 | 57.14 | 0.030 | 60.75 | 0.096 | 66.37 | 0.122 | 30.18 | 0.010 |
Kulczynski1 | 45.82 | 0.050 | 39.57 | 0.257 | 28.18 | 0.085 | 27.08 | 0.144 | 56.19 | 0.121 | 16.38 | 0.200 |
ER5a | 24.14 | 0.010 | 41.98 | 0.060 | 36.37 | 0.002 | 18.88 | 0.078 | 47.59 | 0.053 | 25.89 | 0.030 |
ER5b | 24.14 | 0.010 | 41.98 | 0.060 | 36.37 | 0.002 | 18.88 | 0.078 | 47.59 | 0.053 | 25.89 | 0.030 |
ER5c | 28.21 | 0.010 | 80.73 | 0.056 | 43.73 | 0.002 | 30.68 | 0.075 | 52.59 | 0.051 | 27.56 | 0.030 |
Assumption Proportion | Fault Assumption | Failed Execution Flag | Total Execution | |||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
Metrics | Status | AWE | MAP | AWE | MAP | AWE | MAP | AWE | MAP | |||
w/o | 33 | 0.170 | 33 | 0.170 | 33 | 0.170 | 33 | 0.170 | ||||
ER1a | w/ | 18 | 0.170 | 18 | 0.170 | 33 | 0.166 | 30 | 0.070 | |||
PI(%) | 15 | 0 | 15 | 0 | 0 | 0 | 3 | 0 | ||||
w/o | 19 | 0.170 | 19 | 0.170 | 19 | 0.173 | 19 | 0.170 | ||||
ER1b | w/ | 18 | 0.180 | 18 | 0.180 | 24 | 0.173 | 26 | 0.050 | |||
PI(%) | 1 | 5.55 | 1 | 5.55 | 0 | 0 | 0 | 0 | ||||
w/o | 24 | 0.160 | 24 | 0.160 | 24 | 0.160 | 24 | 0.160 | ||||
Tarantula | w/ | 23 | 0.180 | 23 | 0.180 | 24 | 0.160 | 33 | 0.030 | |||
PI(%) | 1 | 11.11 | 1 | 11.11 | 0 | 0 | 0 | 0 | ||||
w/o | 24 | 0.160 | 24 | 0.160 | 24 | 0.162 | 24 | 0.160 | ||||
Ochiai1 | w/ | 23 | 0.180 | 23 | 0.180 | 24 | 0.162 | 32 | 0.040 | |||
PI(%) | 1 | 11.11 | 1 | 11.11 | 0 | 0 | 0 | 0 | ||||
w/o | 24 | 0.180 | 24 | 0.180 | 24 | 0.177 | 24 | 0.180 | ||||
Ochiai2 | w/ | 24 | 0.180 | 24 | 0.180 | 24 | 0.177 | 32 | 0.070 | |||
PI(%) | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | ||||
w/o | 16 | 0.160 | 16 | 0.160 | 16 | 0.160 | 16 | 0.160 | ||||
Ample | w/ | 15 | 0.170 | 15 | 0.170 | 24 | 0.174 | 25 | 0.050 | |||
PI(%) | 1 | 5.88 | 1 | 5.88 | 0 | 8.04 | 0 | 0 | ||||
w/o | 23 | 0.180 | 23 | 0.180 | 23 | 0.184 | 23 | 0.180 | ||||
Jaccard | w/ | 23 | 0.180 | 23 | 0.180 | 23 | 0.185 | 32 | 0.040 | |||
PI(%) | 0 | 0 | 0 | 0 | 0 | 0.540 | 0 | 0 | ||||
w/o | 29 | 0.140 | 29 | 0.140 | 29 | 0.143 | 29 | 0.140 | ||||
w/ | 29 | 0.140 | 29 | 0.140 | 29 | 0.144 | 30 | 0.130 | ||||
PI(%) | 0 | 0 | 0 | 0 | 0 | 0.540 | 0 | 0 | ||||
w/o | 22 | 0.070 | 22 | 0.070 | 22 | 0.069 | 22 | 0.070 | ||||
GP02 | w/ | 28 | 0.120 | 28 | 0.120 | 25 | 0.078 | 33 | 0.020 | |||
PI(%) | 0 | 41 | 0 | 41 | 0 | 11.53 | 0 | 0 | ||||
w/o | 34 | 0.050 | 34 | 0.050 | 34 | 0.053 | 34 | 0.050 | ||||
GP03 | w/ | 29 | 0.060 | 29 | 0.060 | 32 | 0.066 | 35 | 0.010 | |||
PI(%) | 5 | 16.66 | 5 | 16.66 | 2 | 19.69 | 0 | 0 | ||||
w/o | 24 | 0.170 | 24 | 0.170 | 24 | 0.173 | 24 | 0.170 | ||||
GP13 | w/ | 23 | 0.190 | 23 | 0.190 | 24 | 0.173 | 33 | 0.030 | |||
PI(%) | 1 | 10.52 | 1 | 10.52 | 0 | 0 | 0 | 0 | ||||
w/o | 26 | 0.130 | 26 | 0.130 | 26 | 0.133 | 26 | 0.130 | ||||
GP19 | w/ | 23 | 0.180 | 23 | 0.180 | 26 | 0.133 | 32 | 0.030 | |||
PI(%) | 3 | 27.77 | 3 | 27.77 | 0 | 0 | 0 | 0 | ||||
w/o | 33 | 0.040 | 33 | 0.040 | 33 | 0.040 | 33 | 0.040 | ||||
ER5a | w/ | 23 | 0.180 | 23 | 0.180 | 33 | 0.040 | 33 | 0.030 | |||
PI(%) | 10 | 77.77 | 10 | 77.77 | 0 | 0 | 0 | 0 | ||||
w/o | 33 | 0.040 | 33 | 0.040 | 33 | 0.040 | 33 | 0.040 | ||||
ER5b | w/ | 23 | 0.180 | 23 | 0.180 | 33 | 0.040 | 33 | 0.030 | |||
PI(%) | 10 | 77.77 | 10 | 77.77 | 0 | 0 | 0 | 0 | ||||
w/o | 42 | 0.040 | 42 | 0.040 | 42 | 0.040 | 42 | 0.040 | ||||
ER5c | w/ | 33 | 0.170 | 33 | 0.170 | 42 | 0.040 | 41 | 0.030 | |||
PI(%) | 10 | 77.77 | 10 | 77.77 | 0 | 0 | 1 | 0 | ||||
w/o | 48 | 0.100 | 48 | 0.100 | 48 | 0.100 | 48 | 0.100 | ||||
Wong2 | w/ | 48 | 0.100 | 48 | 0.100 | 62 | 0.090 | 48 | 0.100 | |||
PI(%) | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | ||||
w/o | 48 | 0.100 | 48 | 0.100 | 48 | 0.100 | 48 | 0.100 | ||||
Wong3 | w/ | 48 | 0.100 | 48 | 0.100 | 62 | 0.090 | 48 | 0.100 | |||
PI(%) | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | ||||
w/o | 30 | 0.140 | 30 | 0.140 | 30 | 0.142 | 30 | 0.140 | ||||
Kulczynski1 | w/ | 30 | 0.140 | 30 | 0.140 | 30 | 0.144 | 30 | 0.140 | |||
PI(%) | 0 | 0 | 0 | 0 | 0 | 1.39 | 0 | 0 |
Publisher’s Note: MDPI stays neutral with regard to jurisdictional claims in published maps and institutional affiliations. |
© 2022 by the authors. Licensee MDPI, Basel, Switzerland. This article is an open access article distributed under the terms and conditions of the Creative Commons Attribution (CC BY) license (https://creativecommons.org/licenses/by/4.0/).
Share and Cite
Ajibode, A.; Shu, T.; Said, K.; Ding, Z. A Fault Localization Method Based on Metrics Combination. Mathematics 2022, 10, 2425. https://doi.org/10.3390/math10142425
Ajibode A, Shu T, Said K, Ding Z. A Fault Localization Method Based on Metrics Combination. Mathematics. 2022; 10(14):2425. https://doi.org/10.3390/math10142425
Chicago/Turabian StyleAjibode, Adekunle, Ting Shu, Kabir Said, and Zuohua Ding. 2022. "A Fault Localization Method Based on Metrics Combination" Mathematics 10, no. 14: 2425. https://doi.org/10.3390/math10142425
APA StyleAjibode, A., Shu, T., Said, K., & Ding, Z. (2022). A Fault Localization Method Based on Metrics Combination. Mathematics, 10(14), 2425. https://doi.org/10.3390/math10142425