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

skip to main content
10.1145/1370175.1370223acmconferencesArticle/Chapter ViewAbstractPublication PagesicseConference Proceedingsconference-collections
research-article

On the automation of fixing software bugs

Published: 10 May 2008 Publication History

Abstract

Software Testing can take up to half of the resources of the development of new software. Although there has been a lot of work on automating the testing phase, fixing a bug after its presence has been discovered is still a duty of the programmers. Techniques to help the software developers for locating bugs exist though, and they take name of Automated Debugging. However, to our best knowledge, there has been only little attempt in the past to completely automate the actual changing of the software for fixing the bugs. Therefore, in this paper we propose an evolutionary approach to automate the task of fixing bugs. The basic idea is to evolve the programs (e.g., by using Genetic Programming) with a fitness function that is based on how many unit tests they are able to pass. If a formal specification of the buggy software is given, more sophisticated fitness functions can be designed. Moreover, by using the formal specification as an oracle, we can generate as many unit tests as we want. Hence, a co-evolution between programs and unit tests might take place to give even better results. It is important to know that, to fix the bugs in a program with this novel approach, a user needs only to provide either a formal specification or a set of unit tests. No other information is required.

References

[1]
A. Arcuri and X. Yao. A novel co-evolutionary approach to automatic software bug fixing. To appear in the IEEE Congress on Evolutionary Computation (CEC), 2008.
[2]
A. Arcuri and X. Yao. Coevolving programs and unit tests from their specification. In IEEE International Conference on Automated Software Engineering (ASE), pages 397---400, 2007.
[3]
A. Arcuri and X. Yao. Search based software testing of objeot-oriented containers. Information Sciences, 2008. Accepted for publication.
[4]
H. Barringer, D. Rydeheard, and D. Gabbay. A logical framework for monitoring and evolving software components. In IEEE/IFIP Symposium on Theoretical Aspects of Software Engineering (TASE), pages 273--282, 2007.
[5]
B. Beizer. Software Testing Techniques. Van Nostrand Rheinhold, New York, 1990.
[6]
K. Deb. Multi-Objective Optimization Using Evolutionary Algorithms. John Wiley and Sons, 2001.
[7]
R. A. DeMillo, R. J. Lipton, and F. Sayward. Hints on test data selection: Help for the practicing programmer. Computer, 11(4):34--41, 1978.
[8]
S. G. Ficici and J. B. Pollack. Challenges in coevolutionary learning: Arms-race dynamics, open-endedness, and mediocre stable states. In Artificial Life VI, pages 238--247, 1998.
[9]
J. R. Koza. Genetic Programming: On the Programming of Computers by Means of Natural Selection. The MIT Press, 1992.
[10]
W. B. Langdon and R. Poli. Foundations of Genetic Programming. Springer, 2002.
[11]
P. McMinn. Search-based software test data generation: A survey. Software Testing, Verification and Reliability, 14(2):105--156, June 2004.
[12]
G. Myers. The Art of Software Testing. Wiley, New York, 1979.
[13]
G. Palshikar. Applying formal specifications to real-world software development. IEEE Software, 18(6):89--97, 2001.
[14]
M. Reformat, C. Xinwei, and J. Miller. On the possibilities of (pseudo-) software cloning from external interactions. Soft Computing, 12(1):29--49, 2007.
[15]
M. Renieris and S. Reiss. Fault localization with nearest neighbor queries. In IEEE International Conference on Automated Software Engineering (ASE), pages 30--39, 2003.
[16]
C. Rich and R. C. Waters. Automatic programming: myths and prospects. Computer, 21(8):40--51, 1988.
[17]
C. D. Rosin and R. K. Belew. New methods for competitive coevolution. Evolutionary Computation, 5(1):1--29, 1997.
[18]
S. Staber, B. Jobstmann, and R. Bloem. Finding and fixing faults. In 13th Conference on Correct Hardware Design and Verification Methods (CHARME), pages 35--49, 2005.
[19]
M. Stumptner and F. Wotawa. Model-based program debugging and repair. In Proceedings of the International Conference on Industrial and Engineering Applications of Artificial Intelligence and Expert Systems, 1996.
[20]
G. Tassey. The economic impacts of inadequate infrastructure for software testing, final report. National Institute of Standards and Technology, 2002.
[21]
N. J. Tracey. A Search-Based Automated Test Data Generation Framework for Safety-Critical Software. PhD thesis, University of York, 2000.
[22]
W. Weimer, "Patches as better bug reports," in phProceedings of the 5th international conference on Generative programming and component engineering, 2006, pp. 181---190.
[23]
A. Zeller. Automated debugging: Are we close? IEEE Computer, pages 26--31, November 2001.

Cited By

View all
  • (2024)Code Summarization without Direct Access to Code - Towards Exploring Federated LLMs for Software EngineeringProceedings of the 28th International Conference on Evaluation and Assessment in Software Engineering10.1145/3661167.3661210(100-109)Online publication date: 18-Jun-2024
  • (2024)Can Large Language Models Transform Natural Language Intent into Formal Method Postconditions?Proceedings of the ACM on Software Engineering10.1145/36607911:FSE(1889-1912)Online publication date: 12-Jul-2024
  • (2024)BRAFAR: Bidirectional Refactoring, Alignment, Fault Localization, and Repair for Programming AssignmentsProceedings of the 33rd ACM SIGSOFT International Symposium on Software Testing and Analysis10.1145/3650212.3680326(856-868)Online publication date: 11-Sep-2024
  • Show More Cited By

Recommendations

Comments

Please enable JavaScript to view thecomments powered by Disqus.

Information & Contributors

Information

Published In

cover image ACM Conferences
ICSE Companion '08: Companion of the 30th international conference on Software engineering
May 2008
214 pages
ISBN:9781605580791
DOI:10.1145/1370175
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]

Sponsors

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 10 May 2008

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. automated debugging
  2. automatic bug fixing
  3. co-evolution
  4. genetic programming
  5. repair

Qualifiers

  • Research-article

Conference

ICSE '08
Sponsor:

Acceptance Rates

Overall Acceptance Rate 276 of 1,856 submissions, 15%

Upcoming Conference

ICSE 2025

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)44
  • Downloads (Last 6 weeks)2
Reflects downloads up to 16 Nov 2024

Other Metrics

Citations

Cited By

View all
  • (2024)Code Summarization without Direct Access to Code - Towards Exploring Federated LLMs for Software EngineeringProceedings of the 28th International Conference on Evaluation and Assessment in Software Engineering10.1145/3661167.3661210(100-109)Online publication date: 18-Jun-2024
  • (2024)Can Large Language Models Transform Natural Language Intent into Formal Method Postconditions?Proceedings of the ACM on Software Engineering10.1145/36607911:FSE(1889-1912)Online publication date: 12-Jul-2024
  • (2024)BRAFAR: Bidirectional Refactoring, Alignment, Fault Localization, and Repair for Programming AssignmentsProceedings of the 33rd ACM SIGSOFT International Symposium on Software Testing and Analysis10.1145/3650212.3680326(856-868)Online publication date: 11-Sep-2024
  • (2024)Automated Program Repair for Introductory Programming Assignments via Bidirectional RefactoringProceedings of the 5th ACM/IEEE International Workshop on Automated Program Repair10.1145/3643788.3648017(53-55)Online publication date: 20-Apr-2024
  • (2023)Repair is nearly generationProceedings of the Thirty-Seventh AAAI Conference on Artificial Intelligence and Thirty-Fifth Conference on Innovative Applications of Artificial Intelligence and Thirteenth Symposium on Educational Advances in Artificial Intelligence10.1609/aaai.v37i4.25642(5131-5140)Online publication date: 7-Feb-2023
  • (2023)Industrial Automation using VR and AI2023 World Conference on Communication & Computing (WCONF)10.1109/WCONF58270.2023.10235059(1-6)Online publication date: 14-Jul-2023
  • (2023)Generating Concise Patches for Newly Released Programming AssignmentsIEEE Transactions on Software Engineering10.1109/TSE.2022.315352249:1(450-467)Online publication date: 1-Jan-2023
  • (2023)An Efficient Way of Introducing Gender Into Evolutionary AlgorithmsIEEE Transactions on Evolutionary Computation10.1109/TEVC.2022.319248127:4(1005-1014)Online publication date: Aug-2023
  • (2023)Automated Misconfiguration Repair of Configurable Cyber-Physical Systems with Search: an Industrial Case Study on Elevator Dispatching Algorithms2023 IEEE/ACM 45th International Conference on Software Engineering: Software Engineering in Practice (ICSE-SEIP)10.1109/ICSE-SEIP58684.2023.00042(396-408)Online publication date: May-2023
  • (2023)REFERENT: Transformer-based Feedback Generation using Assignment Information for Programming Course2023 IEEE/ACM 45th International Conference on Software Engineering: Software Engineering Education and Training (ICSE-SEET)10.1109/ICSE-SEET58685.2023.00035(101-106)Online publication date: May-2023
  • Show More Cited By

View Options

Login options

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