Nothing Special   »   [go: up one dir, main page]

skip to main content
research-article

Prevalence of coincidental correctness and mitigation of its impact on fault localization

Published: 20 February 2014 Publication History

Abstract

Researchers have argued that for failure to be observed the following three conditions must be met: CR = the defect was reached; CI = the program has transitioned into an infectious state; and CP = the infection has propagated to the output. Coincidental Correctness (CC) arises when the program produces the correct output while condition CR is met but not CP. We recognize two forms of coincidental correctness, weak and strong. In weak CC, CR is met, whereas CI might or might not be met, whereas in strong CC, both CR and CI are met. In this work we first show that CC is prevalent in both of its forms and demonstrate that it is a safety reducing factor for Coverage-Based Fault Localization (CBFL). We then propose two techniques for cleansing test suites from coincidental correctness to enhance CBFL, given that the test cases have already been classified as failing or passing. We evaluated the effectiveness of our techniques by empirically quantifying their accuracy in identifying weak CC tests. The results were promising, for example, the better performing technique, using 105 test suites and statement coverage, exhibited 9% false negatives, 30% false positives, and no false negatives nor false positives in 14.3% of the test suites. Also using 73 test suites and more complex coverage, the numbers were 12%, 19%, and 15%, respectively.

References

[1]
R. Abou-Assi and W. Masri. 2011. Identifying failure-correlated dependence chains. In Proceedings of the 1st International Workshop on Testing and Debugging (TeBug'11).
[2]
R. Abreu, P. Zoeteweij, and A. J. C. Van Gemund. 2007. On the accuracy of spectrum-based fault localization. In Proceedings of the Testing: Academic and Industrial Conference Practice and Research Techniques (TAICPART-MUTATION'07). 89--98.
[3]
R. Abreu, P. Zoeteweij, and A. J. C. Van Gemund. 2009a. Spectrum-based multiple fault localization. In Proceedings of the 24th IEEE/ACM International Conference on Automated Software Engineering (ASE'09). 88--99
[4]
R. Abreu, P. Zoeteweij, and A. J. C. Van Gemund. 2006. An evaluation of similarity coefficients for software fault localization. In Proceedings of the 12th Pacific Rim International Symposium on Dependable Computing (PRDC'06). 39--46.
[5]
R. Abreu, P. Zoeteweij, R. Golsteijn, and A. J. C. Van Gemund. 2009b. A practical evaluation of spectrum-based fault localization. J. Syst. Softw. 82, 11, 1780--1792.
[6]
H. Agrawal, J. Horgan, S. London, and W. Wong. 1995. Fault localization using execution slices and dataflow sets. In Proceedings of the IEEE International Symposium on Software Reliability Engineering (ISSRE'95). 143--151.
[7]
P. Ammann and J. Offutt. 2008. Introduction to Software Testing. Cambridge University Press.
[8]
B. Baudry, F. Fleurey, and Y. Le Traon. 2006. Improving test suites for efficient fault localization. In Proceedings of the 28th International Conference on Software Engineering (ICSE'06). 82--91.
[9]
C. Cadar, D. Dunbar, and D. Engler. 2008. Klee: Unassisted and automatic generation of high-coverage tests for complex systems programs. In Proceedings of the 8th USENIX Conference on Operating Systems Design and Implementation (OSDI'08). 209--224.
[10]
M. Y. Chen, E. Kiciman, E. Fratkin, A. Fox, and B. Brewer. 2002. Pinpoint: Problem determination in large, dynamic internet services. In Proceedings of the International Conference on Dependable Systems and Networks (DSN'02). 595--604.
[11]
V. Dallmeier, C. Lindig, and A. Zeller. 2005a. Lightweight bug localization with ample. In Proceedings of the International Symposium on Automated Analysis-Driven Debugging (AADEBUG'05). 99--103.
[12]
V. Dallmeier, C. Lindig, and A. Zeller. 2005b. Lightweight defect Localization for java. In Proceedings of the 19th European Conference on Object-Oriented Programming (ECOOP'05). A. P. Black, Ed., Lecture Notes in Computer Science, vol. 3568, Springer, 528--550.
[13]
W. Dickinson, D. Leon, and A. Podgurski. 2001. Finding failures by cluster analysis of execution profiles. In Proceedings of the International Conference on Software Engineering. 339--348.
[14]
H. Do, S. Elbaum, and G. Rothermel. 2005. Supporting controlled experimentation with testing techniques: An infrastructure and its potential impact. Empirical Softw. Engin. Int. J. 10, 4, 405--435.
[15]
J. Han and M. Kamber. 2001. Data Mining: Concepts and Techniques. Morgan Kaufmann Publishers, 335--393.
[16]
M. Harman, A. Lakhotia, and D. Binkley. 2006. Theory and algorithms for slicing unstructured programs. Inf. Softw. Technol. 48, 7, 549--565.
[17]
R. M. Hierons. 2006. Avoiding coincidental correctness in boundary value analysis. ACM Trans. Softw. Engin. Methodol. 15, 3, 227--241.
[18]
W. E. Howden. 1982. Weak mutation testing and completeness of test sets. IEEE Trans. Softw. Engin. 8, 4, 371--379.
[19]
J. Jones and M. J. Harrold. 2005. Empirical evaluation of the tarantula automatic fault-localization technique. In Proceedings of the 20th IEEE/ACM International Conference on Automated Software Engineering (ASE'05). 273--282.
[20]
H. M. K. Jiawei. 2001. Chapter 8. In Data Mining: Concepts and Techniques. Morgan Kaufmann, San Francisco, CA, 335--393.
[21]
J. Jones, M. J. Harrold, and J. F. Bowring. 2007. Debugging in parallel. In Proceedings of the International Symposium on Software Testing and Analysis (ISSTA'07). 16--26.
[22]
J. Jones, M. J. Harrold, and J. Stasko. 2001. Visualization of test information to assist fault localization. In Proceedings of the 24th International Conference on Software Engineering. 467--477.
[23]
B. Korel and S. Yalamanchili. 1994. Forward computation of dynamic program slices. In Proceedings of the International Symposium on Software Testing and Analysis (ISSTA'94). 66--79.
[24]
D. Leon, A. Podgurski, and W. Dickinson. 2005. Visualizing similarity between program executions. In Proceedings of the 16th IEEE International Symposium on Software Reliability Engineering (ISSRE'05). 311--321.
[25]
D. Leon, A. Podgurski, and L. White. 2000. Multivariate visualization in observation-based testing. In Proceedings of the International Conference on Software Engineering. 116--125.
[26]
B. Liblit, A. Aiken, A. Zheng, and M. Jordan. 2003. Bug isolation via remote program sampling. In Proceedings of the ACM SIGPLAN International Conference on Programming Language Design and Implementation (PLDI'03). 141--154.
[27]
B. Liblit, M. Naik, A. Zheng, A. Aiken, and M. Jordan. 2005. Scalable statistical bug isolation. In Proceedings of the ACM SIGPLAN International Conference on Programming Language Design and Implementation (PLDI'05). 15--26.
[28]
C. Liu, L. Fei, X. Yan, J. Han, and S. P. Midkiff. 2006. Statistical debugging: A hypothesis testing-based approach. IEEE Trans. Softw. Engin. 32, 10, 831--848.
[29]
C. Liu, X. Yan, L. Fei, J. Han, and S. P. Midkiff. 2005. SOBER: Statistical model-based bug localization. In Proceedings of the 10th European Software Engineering Conference held jointly with the 13th ACM SIGSOFT International Symposium on Foundations of Software Engineering (ESEC/FSE'05). 286--295.
[30]
C. Liu and J. Han. 2006 Failure proximity: A fault localization-based approach. In Proceedings of the International Symposium on the Foundations of Software Engineering. 286--295.
[31]
B. Marick. 1991. The weak mutation hypothesis. In Proceedings of the Symposium on Testing, Analysis, and Verification (ISSTA'91). 190--199.
[32]
W. Masri. 2008. Exploiting the empirical characteristics of program dependences for improved forward computation of dynamic slice. Empirical Softw. Engin. 13, 369--399.
[33]
W. Masri. 2009. Fault localization based on information flow coverage. Softw. Testing Verif. Reliab. 20, 2, 121--147.
[34]
W. Masri and R. Abou-Assi. 2010. Cleansing test suites from coincidental correctness to enhance fault-localization. In Proceedings of the 3rd International Conference on Software Testing, Verification and Validation (ICST'10).
[35]
W. Masri, R. Abou-Assi, M. El-Ghali, and N. Fatairi. 2009. An empirical study of the factors that reduce the effectiveness of coverage-based fault localization. In International Workshop on Defects in Large Software Systems (DEFECTS'09).
[36]
W. Masri, R. Abou-Assi, F. Zaraket, and N. Fatairi. 2012. Enhancing fault localization via multivariate visualization. In Proceedings of the 5th IEEE International Conference on Software Testing, Verification and Validation Regression (ICST'12). 737--741.
[37]
W. Masri and H. Halabi. 2011. An algorithm for capturing variables dependences in test suites. J. Syst. Softw. 84, 7, 1171--1190.
[38]
W. Masri and A. Podgurski. 2006. An empirical study of the strength of information flows in programs. In Proceedings of the 4th International Workshop on Dynamic Analysis (WODA'06).
[39]
W. Masri and A. Podgurski. 2009a. Algorithms and tool support for dynamic information flow analysis. Inf. Softw. Technol. 51, 395--404
[40]
W. Masri and A. Podgurski. 2008. Application-based anomaly intrusion detection with dynamic information flow analysis. Comput. Secur. 27, 176--187.
[41]
W. Masri and A. Podgurski. 2009b. Measuring the strength of information flows in programs. ACM Trans. Softw. Engin. Methodol. 19, 2.
[42]
W. Masri, A. Podgurski, and D. Leon. 2007. An empirical study of test case filtering techniques based on exercising information flows. IEEE Trans. Softw. Engin. 33, 7, 454.
[43]
A. Podgurski, D. Leon, P. Francis, W. Masri, M. Minch, J. Sun, and B. Wang. 2003. Automated support for classifying software failure reports. In Proceedings of the International Conference on Software Engineering. 465--474.
[44]
C. Parnin and A. Orso. 2011. Are automated debugging techniques actually helping programmers? In Proceedings of the International Symposium on Software Testing and Analysis (ISSTA'11). 199--209.
[45]
M. Renieris and S. Reiss. 2003. Fault localization with nearest-neighbor queries. In Proceedings of the 18th IEEE Conference on Automated Software Engineering. 30--39.
[46]
D. J. Richardson and M. C. Thompso. 1993. An analysis of test selection criteria using the relay model of fault detection. IEEE Trans. Softw. Engin. 19, 60, 533--553.
[47]
R. Santelices, J. Jones, Y. Yu, and M. J. Harrold. 2009. Lightweight fault-localization using multiple coverage types. In Proceedings of the 31st International Conference on Software Engineering (ICSE'09). 56--66.
[48]
S. Singh and N. Chauhan. 2011. K-means v/s k-medoids: A comparative study. In Proceedings of the National Conference on Recent Trends in Engineering and Technology.
[49]
J. Voas. 1992. PIE: A dynamic failure-based technique. IEEE Trans. Softw. Engin. 18, 8, 717--727.
[50]
J. Voas and K. Miller. 1993. Semantic metrics for software testability. J. Syst. Softw. 20, 3, 207--216.
[51]
X. Wang, S. C. Cheung, W. K. Chan, and Z. Zhang. 2009. Taming coincidental correctness: Coverage refinement with context patterns to improve fault localization. In Proceedings of the 31st IEEE International Conference on Software Engineering. 45--55.
[52]
M. Weiser. 1984. Program slicing. IEEE Trans. Softw. Engin. 10, 4, 352--357.
[53]
E. Wong, T. Wei, Y. Qi, and L. Zhao. 2008. A crosstab-based statistical method for effective fault localization. In Proceedings of the International Conference on Software Testing, Verification, and Validation (ICST'08). 42--51.
[54]
L. A. Zadeh. 1965. Fuzzy sets. Inf. Control 8, 338--353.
[55]
A. Zheng, M. I. Jordan, B. Liblit, M. Naik, and A. Aiken. 2006. Statistical debugging: Simultaneous identification of multiple bugs. In Proceedings of the International Conference on Machine Learning. 1105--1112.
[56]
P. Zoeteweij, R. Abreu, R. Golsteijn, and A. J. C. Van Gemund. 2007. Diagnosis of embedded software using program spectra. In Proceedings of the 14th Annual IEEE International Conference and Workshops on the Engineering of Computer Based Systems (ECBS'07). 213--220.

Cited By

View all
  • (2024)Ripples of a Mutation — An Empirical Study of Propagation Effects in Mutation TestingProceedings of the IEEE/ACM 46th International Conference on Software Engineering10.1145/3597503.3639179(1-13)Online publication date: 20-May-2024
  • (2024)Combining Error Guessing and Logical Reasoning for Software Fault Localization via Deep LearningInternational Journal of Software Engineering and Knowledge Engineering10.1142/S021819402450021934:09(1485-1511)Online publication date: 28-May-2024
  • (2024)Trace matrix optimization for fault localizationJournal of Systems and Software10.1016/j.jss.2023.111900208(111900)Online publication date: Feb-2024
  • Show More Cited By

Recommendations

Comments

Please enable JavaScript to view thecomments powered by Disqus.

Information & Contributors

Information

Published In

cover image ACM Transactions on Software Engineering and Methodology
ACM Transactions on Software Engineering and Methodology  Volume 23, Issue 1
February 2014
354 pages
ISSN:1049-331X
EISSN:1557-7392
DOI:10.1145/2582050
Issue’s Table of Contents
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 20 February 2014
Accepted: 01 January 2013
Revised: 01 January 2013
Received: 01 January 2012
Published in TOSEM Volume 23, Issue 1

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. Coincidental correctness
  2. cluster analysis
  3. coverage-based fault localization
  4. fuzzy sets
  5. strong coincidental correctness
  6. weak coincidental correctness

Qualifiers

  • Research-article
  • Research
  • Refereed

Funding Sources

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)27
  • Downloads (Last 6 weeks)0
Reflects downloads up to 28 Sep 2024

Other Metrics

Citations

Cited By

View all
  • (2024)Ripples of a Mutation — An Empirical Study of Propagation Effects in Mutation TestingProceedings of the IEEE/ACM 46th International Conference on Software Engineering10.1145/3597503.3639179(1-13)Online publication date: 20-May-2024
  • (2024)Combining Error Guessing and Logical Reasoning for Software Fault Localization via Deep LearningInternational Journal of Software Engineering and Knowledge Engineering10.1142/S021819402450021934:09(1485-1511)Online publication date: 28-May-2024
  • (2024)Trace matrix optimization for fault localizationJournal of Systems and Software10.1016/j.jss.2023.111900208(111900)Online publication date: Feb-2024
  • (2024)Semantic context based coincidental correct test cases detection for fault localizationAutomated Software Engineering10.1007/s10515-024-00466-531:2Online publication date: 1-Nov-2024
  • (2023)Triggering Modes in Spectrum-Based Multi-location Fault LocalizationProceedings of the 31st ACM Joint European Software Engineering Conference and Symposium on the Foundations of Software Engineering10.1145/3611643.3613884(1774-1785)Online publication date: 30-Nov-2023
  • (2023)Influential Global and Local Contexts Guided Trace Representation for Fault LocalizationACM Transactions on Software Engineering and Methodology10.1145/357604332:3(1-27)Online publication date: 26-Apr-2023
  • (2023)An Incremental Approach for Understanding Collision Avoidance of an Industrial Path PlannerIEEE Transactions on Dependable and Secure Computing10.1109/TDSC.2022.315977320:4(2713-2730)Online publication date: 1-Jul-2023
  • (2023)NeuralCCD: Integrating Multiple Features for Neural Coincidental Correctness Detection2023 IEEE International Conference on Software Analysis, Evolution and Reengineering (SANER)10.1109/SANER56733.2023.00018(85-96)Online publication date: Mar-2023
  • (2023)Contrastive Coincidental Correctness Representation Learning2023 IEEE 34th International Symposium on Software Reliability Engineering (ISSRE)10.1109/ISSRE59848.2023.00074(252-263)Online publication date: 9-Oct-2023
  • (2023)On the Reliability of Coverage Data for Fault Localization2023 30th Asia-Pacific Software Engineering Conference (APSEC)10.1109/APSEC60848.2023.00016(61-70)Online publication date: 4-Dec-2023
  • Show More Cited By

View Options

Get Access

Login options

Full Access

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media