Papers
Topics
Authors
Recent
Search
2000 character limit reached

Mining Bug Repositories for Multi-Fault Programs

Published 28 Mar 2024 in cs.SE | (2403.19171v2)

Abstract: Datasets such as Defects4J and BugsInPy that contain bugs from real-world software projects are necessary for a realistic evaluation of automated debugging tools. However these datasets largely identify only a single bug in each entry, while real-world software projects (including those used in Defects4J and BugsInPy) typically contain multiple bugs at the same time. We lift this limitation and describe an extension to these datasets in which multiple bugs are identified in individual entries. We use test case transplantation and fault location translation, in order to expose and locate the bugs, respectively. We thus provide datasets of true multi-fault versions within real-world software projects, which maintain the properties and usability of the original datasets.

Definition Search Book Streamline Icon: https://streamlinehq.com
References (25)
  1. 2014. “More Debugging in Parallel” Resource Page. https://www.fernuni-hagen.de/ps/prjs/PD/.
  2. 2017. JaCoCo Java Code Coverage Library. https://www.eclemma.org/jacoco/.
  3. 2023a. BugsInPy multi-fault repository. https://github.com/DCallaz/bugsinpy-mf.
  4. 2023. Defects4J multi-fault repository. https://github.com/DCallaz/defects4j-mf.
  5. 2023b. Fault location translation (backtracking) tool. https://github.com/DCallaz/bug-backtracker.
  6. Spectrum-Based Multiple Fault Localization. In ASE 2009, 24th IEEE/ACM International Conference on Automated Software Engineering, Auckland, New Zealand, November 16-20, 2009. IEEE Computer Society, 88–99. https://doi.org/10.1109/ASE.2009.25
  7. Searching for Multi-fault Programs in Defects4J. In Search-Based Software Engineering - 13th International Symposium, SSBSE 2021, Bari, Italy, October 11-12, 2021, Proceedings (Lecture Notes in Computer Science), Vol. 12914. Springer, 153–158. https://doi.org/10.1007/978-3-030-88106-1_11
  8. Leonhard Applis and Annibale Panichella. 2023. HasBugs - Handpicked Haskell Bugs. In 20th IEEE/ACM International Conference on Mining Software Repositories, MSR 2023, Melbourne, Australia, May 15-16, 2023. IEEE, 223–227. https://doi.org/10.1109/MSR59073.2023.00040
  9. Dylan Callaghan and Bernd Fischer. 2023. Improving Spectrum-Based Localization of Multiple Faults by Iterative Test Suite Reduction. In Proceedings of the 32nd ACM SIGSOFT International Symposium on Software Testing and Analysis, ISSTA 2023, Seattle, WA, USA, July 17-21, 2023, René Just and Gordon Fraser (Eds.). ACM, 1445–1457. https://doi.org/10.1145/3597926.3598148
  10. GZoltar: an eclipse plug-in for testing and debugging. In IEEE/ACM International Conference on Automated Software Engineering, ASE’12, Essen, Germany, September 3-7, 2012. ACM, 378–381. https://doi.org/10.1145/2351676.2351752
  11. How Long Does a Bug Survive? An Empirical Study. In 18th Working Conference on Reverse Engineering, WCRE 2011, Limerick, Ireland, October 17-20, 2011, Martin Pinzger, Denys Poshyvanyk, and Jim Buckley (Eds.). IEEE Computer Society, 191–200. https://doi.org/10.1109/WCRE.2011.31
  12. Supporting Controlled Experimentation with Testing Techniques: An Infrastructure and its Potential Impact. Empir. Softw. Eng. 10, 4 (2005), 405–435. https://doi.org/10.1007/S10664-005-3861-2
  13. An evaluation of pure spectrum-based fault localization techniques for large-scale software systems. Softw. Pract. Exp. 49, 8 (2019), 1197–1224. https://doi.org/10.1002/spe.2703
  14. More Debugging in Parallel. In 25th IEEE International Symposium on Software Reliability Engineering, ISSRE 2014, Naples, Italy, November 3-6, 2014. IEEE Computer Society, 133–143. https://doi.org/10.1109/ISSRE.2014.29
  15. James W. Hunt and Thomas G. Szymanski. 1977. A Fast Algorithm for Computing Longest Common Subsequences. Commun. ACM 20, 5 (may 1977), 350–353. https://doi.org/10.1145/359581.359603
  16. Defects4J: a database of existing faults to enable controlled testing studies for Java programs. In International Symposium on Software Testing and Analysis, ISSTA ’14, San Jose, CA, USA - July 21-26, 2014. ACM, 437–440. https://doi.org/10.1145/2610384.2628055
  17. The Future Can’t Help Fix The Past: Assessing Program Repair In The Wild. In IEEE International Conference on Software Maintenance and Evolution, ICSME 2023, Bogotá, Colombia, October 1-6, 2023. IEEE, 50–61. https://doi.org/10.1109/ICSME58846.2023.00017
  18. Sunghun Kim and E. James Whitehead Jr. 2006. How long did it take to fix bugs?. In Proceedings of the 2006 International Workshop on Mining Software Repositories, MSR 2006, Shanghai, China, May 22-23, 2006, Stephan Diehl, Harald C. Gall, and Ahmed E. Hassan (Eds.). ACM, 173–174. https://doi.org/10.1145/1137983.1138027
  19. DeepFL: integrating multiple fault diagnosis dimensions for deep fault localization. In Proceedings of the 28th ACM SIGSOFT International Symposium on Software Testing and Analysis, ISSTA 2019, Beijing, China, July 15-19, 2019. ACM, 169–180. https://doi.org/10.1145/3293882.3330574
  20. Boosting coverage-based fault localization via graph-based representation learning. In ESEC/FSE ’21: 29th ACM Joint European Software Engineering Conference and Symposium on the Foundations of Software Engineering, Athens, Greece, August 23-28, 2021. ACM, 664–676. https://doi.org/10.1145/3468264.3468580
  21. An empirical study of long lived bugs. In 2014 Software Evolution Week - IEEE Conference on Software Maintenance, Reengineering, and Reverse Engineering, CSMR-WCRE 2014, Antwerp, Belgium, February 3-6, 2014, Serge Demeyer, Dave W. Binkley, and Filippo Ricca (Eds.). IEEE Computer Society, 144–153. https://doi.org/10.1109/CSMR-WCRE.2014.6747164
  22. Dissection of a bug dataset: Anatomy of 395 patches from Defects4J. In 25th International Conference on Software Analysis, Evolution and Reengineering, SANER 2018, Campobasso, Italy, March 20-23, 2018, Rocco Oliveto, Massimiliano Di Penta, and David C. Shepherd (Eds.). IEEE Computer Society, 130–140. https://doi.org/10.1109/SANER.2018.8330203
  23. Filippos I. Vokolos and Phyllis G. Frankl. 1998. Empirical Evaluation of the Textual Differencing Regression Testing Technique. In 1998 International Conference on Software Maintenance, ICSM 1998, Bethesda, Maryland, USA, November 16-19, 1998. IEEE Computer Society, 44–53. https://doi.org/10.1109/ICSM.1998.738488
  24. BugsInPy: a database of existing bugs in Python programs to enable controlled testing and debugging studies. In ESEC/FSE ’20: 28th ACM Joint European Software Engineering Conference and Symposium on the Foundations of Software Engineering, Virtual Event, USA, November 8-13, 2020, Prem Devanbu, Myra B. Cohen, and Thomas Zimmermann (Eds.). ACM, 1556–1560. https://doi.org/10.1145/3368089.3417943
  25. Localizing multiple software faults based on evolution algorithm. J. Syst. Softw. 139 (2018), 107–123. https://doi.org/10.1016/j.jss.2018.02.001
Citations (1)

Summary

Paper to Video (Beta)

Whiteboard

No one has generated a whiteboard explanation for this paper yet.

Open Problems

We haven't generated a list of open problems mentioned in this paper yet.

Continue Learning

We haven't generated follow-up questions for this paper yet.

Authors (2)

Collections

Sign up for free to add this paper to one or more collections.

Tweets

Sign up for free to view the 2 tweets with 1 like about this paper.