Affiliation:
1. The University of British Columbia
Abstract
Contextual information plays a vital role for software developers when understanding and fixing a bug. Consequently, deep learning based program repair techniques leverage context for bug fixes. However, existing techniques treat context in an arbitrary manner, by extracting code in close proximity of the buggy statement within the enclosing file, class, or method, without any analysis to find actual relations with the bug. To reduce noise, they use a predefined maximum limit on the number of tokens to be used as context. We present a program slicing based approach, in which instead of arbitrarily including code as context, we analyze statements that have a control or data dependency on the buggy statement. We propose a novel concept called
dual slicing
, which leverages the context of both buggy and fixed versions of the code to capture relevant repair ingredients. We present our technique and tool called
Katana
, the first to apply slicing-based context for a program repair task. The results show that
Katana
effectively preserves sufficient information for a model to choose contextual information while reducing noise. We compare against four recent state-of-the-art context-aware program repair techniques. Our results show that
Katana
fixes between 1.5 and 3.7 times more bugs than existing techniques.
Publisher
Association for Computing Machinery (ACM)
Reference70 articles.
1. ECMA International. 2015. ECMAScript 2015 Language Specification (ECMA-262 6th Edition). Retrieved January 7 2022 from https://262.ecma-international.org/6.0.
2. StackOverflow. 2021. Retrieved January 26 2021 from https://insights.stackoverflow.com/survey/2021/.
3. Scitools. 2021. Understand by Scitools. Retrieved December 30 2021 from https://www.scitools.com/.
4. GitHub. 2022. Katana. Retrieved November 25 2022 from https://github.com/saltlab/Katana.
5. Semantic differential repair for input validation and sanitization
Cited by
6 articles.
订阅此论文施引文献
订阅此论文施引文献,注册后可以免费订阅5篇论文的施引文献,订阅后可以查看论文全部施引文献
1. Towards AI-Assisted Synthesis of Verified Dafny Methods;Proceedings of the ACM on Software Engineering;2024-07-12
2. Automatic detection and correction of code errors applying machine learning - current research state;Proceedings of the 28th International Conference on Evaluation and Assessment in Software Engineering;2024-06-18
3. A Survey on Code Pre-Trained Models for Neural Program Repair;2024
4. A Survey of Learning-based Automated Program Repair;ACM Transactions on Software Engineering and Methodology;2023-12-23
5. Retrieval-Based Prompt Selection for Code-Related Few-Shot Learning;2023 IEEE/ACM 45th International Conference on Software Engineering (ICSE);2023-05