Better Code Search and Reuse for Better Program Repair

Author(s):  
Qi Xin ◽  
Steven Reiss
Keyword(s):  
2018 ◽  
Vol 53 (4) ◽  
pp. 465-480 ◽  
Author(s):  
Sumit Gulwani ◽  
Ivan Radiček ◽  
Florian Zuleger

2021 ◽  
Vol 28 (2) ◽  
Author(s):  
Sebastian Nielebock ◽  
Robert Heumüller ◽  
Kevin Michael Schott ◽  
Frank Ortmeier

AbstractLack of experience, inadequate documentation, and sub-optimal API design frequently cause developers to make mistakes when re-using third-party implementations. Such API misuses can result in unintended behavior, performance losses, or software crashes. Therefore, current research aims to automatically detect such misuses by comparing the way a developer used an API to previously inferred patterns of the correct API usage. While research has made significant progress, these techniques have not yet been adopted in practice. In part, this is due to the lack of a process capable of seamlessly integrating with software development processes. Particularly, existing approaches do not consider how to collect relevant source code samples from which to infer patterns. In fact, an inadequate collection can cause API usage pattern miners to infer irrelevant patterns which leads to false alarms instead of finding true API misuses. In this paper, we target this problem (a) by providing a method that increases the likelihood of finding relevant and true-positive patterns concerning a given set of code changes and agnostic to a concrete static, intra-procedural mining technique and (b) by introducing a concept for just-in-time API misuse detection which analyzes changes at the time of commit. Particularly, we introduce different, lightweight code search and filtering strategies and evaluate them on two real-world API misuse datasets to determine their usefulness in finding relevant intra-procedural API usage patterns. Our main results are (1) commit-based search with subsequent filtering effectively decreases the amount of code to be analyzed, (2) in particular method-level filtering is superior to file-level filtering, (3) project-internal and project-external code search find solutions for different types of misuses and thus are complementary, (4) incorporating prior knowledge of the misused API into the search has a negligible effect.


Author(s):  
P. Niranjan ◽  
Syed Abdul Moeed ◽  
V. Pranitha ◽  
T. Sam Spurgeon ◽  
V. Kavitha ◽  
...  
Keyword(s):  

2014 ◽  
Vol 49 (6) ◽  
pp. 349-360 ◽  
Author(s):  
Yaniv David ◽  
Eran Yahav
Keyword(s):  

2021 ◽  
Vol 20 (4) ◽  
pp. 18-34
Author(s):  
Md Rakibul Islam ◽  
Minhaz F. Zibran

A deep understanding of the common patterns of bug-fixing changes is useful in several ways: (a) such knowledge can help developers in proactively avoiding coding patterns that lead to bugs and (b) bug-fixing patterns are exploited in devising techniques for automatic bug localization and program repair. This work includes an in-depth quantitative and qualitative analysis over 4,653 buggy revisions of five software systems. Our study identifies 38 bug-fixing edit patterns and discovers 37 new patterns of nested code structures, which frequently host the bug-fixing edits. While some of the edit patterns were reported in earlier studies, these nesting patterns are new and were never targeted before.


Author(s):  
Jianhang Shuai ◽  
Ling Xu ◽  
Chao Liu ◽  
Meng Yan ◽  
Xin Xia ◽  
...  

IEEE Software ◽  
2021 ◽  
pp. 0-0
Author(s):  
Leonardo Trujillo ◽  
Omar M. Villanueva ◽  
Daniel E. Hernandez

Sign in / Sign up

Export Citation Format

Share Document