Context-Aware Code Change Embedding for Better Patch Correctness Assessment
Despite the capability in successfully fixing more and more real-world bugs, existing Automated Program Repair (APR) techniques are still challenged by the long-standing overfitting problem (\ie a generated patch that passes all tests is actually incorrect). Plenty of approaches have been proposed for automated patch correctness assessment (APCA). Nonetheless, dynamic ones (\ie those need to execute tests) are time-consuming while static ones (\ie those built on top of static code features) are less precise. Therefore, embedding techniques have been proposed recently, which assess patch correctness via embedding token sequences extracted from the changed code of a generated patch. However, existing techniques rarely considered the context information and program structures of a generated patch, which are crucial for patch correctness assessment as revealed by existing studies. In this study, we explore the idea of context-aware code change embedding considering program structures for patch correctness assessment. Specifically, given a patch, we not only focus on the changed code but also take the correlated unchanged part into consideration, through which the context information can be extracted and leveraged. We then utilize the {\em AST path} technique for representation where the structure information from AST node can be captured. Finally, based on several pre-defined heuristics, we build a deep learning based classifier to predict the correctness of the patch. We implemented this idea as \toolname and performed extensive experiments to assess its effectiveness. Our results demonstrate that \toolname can (1) perform better than previous representation learning based techniques (\eg \toolname relatively outperforms existing techniques by $\approx$6%, $\approx$3%, and $\approx$16%, respectively under three diverse experiment settings), and (2) achieve overall higher performance than existing APCA techniques while even being more precise than certain dynamic ones including PATCH-SIM (92.9% vs. 83.0%). Further results reveal that the context information and program structures leveraged by \toolname contributed significantly to its outstanding performance.
Tue 15 NovDisplayed time zone: Beijing, Chongqing, Hong Kong, Urumqi change
10:45 - 12:15 | |||
10:45 15mTalk | Context-Aware Code Change Embedding for Better Patch Correctness Assessment Journal First Bo Lin National University of Defense Technology, Shangwen Wang National University of Defense Technology, Ming Wen Huazhong University of Science and Technology, Xiaoguang Mao National University of Defense Technology Link to publication DOI Pre-print | ||
11:00 15mTalk | BiRD: Race Detection in Software Binaries under Relaxed Memory Models Journal First Ridhi Jain Indraprastha Institute of Information Technology Delhi, Rahul Purandare IIIT-Delhi, Subodh Sharma IIT Delhi Link to publication DOI | ||
11:15 15mTalk | ASTRAEA: Grammar-based Fairness Testing Journal First Ezekiel Soremekun SnT, University of Luxembourg, Sakshi Udeshi Singapore University of Technology and Design, Sudipta Chattopadhyay Singapore University of Technology and Design Link to publication DOI Pre-print | ||
11:30 15mTalk | Exploring Performance Assurance Practices and Challenges in Agile Software Development: An Ethnographic Study Journal First Luca Traini University of L'Aquila Link to publication DOI | ||
11:45 15mTalk | Studying logging practice in test code Journal First Haonan Zhang Concordia University, Yiming Tang Concordia University, Maxime Lamothe Polytechnique Montréal, Heng Li Polytechnique Montréal, Weiyi Shang Concordia University | ||
12:00 15mTalk | Locating Faults with Program Slicing: An Empirical Analysis Journal First Ezekiel Soremekun SnT, University of Luxembourg, Lukas Kirschner Saarland University, Marcel Böhme MPI-SP, Germany and Monash University, Australia, Andreas Zeller CISPA Helmholtz Center for Information Security Link to publication DOI Pre-print |