kirancodes.me
To Proof Maintenance & Beyond!

An empirical study of deep transfer learning-based program repair for Kotlin projects

Misoo Kim, Youngkyoung Kim, Hohyeon Jeong, Jinseok Heo, Sungoh Kim, Hyunhee Chung, Eunseok Lee

Abstract

Deep learning-based automated program repair (DL-APR) can automatically fix software bugs and has received significant attention in the industry because of its potential to significantly reduce software development and maintenance costs. The Samsung mobile experience (MX) team is currently switching from Java to Kotlin projects. This study reviews the application of DL-APR, which automatically fixes defects that arise during this switching process; however, the shortage of Kotlin defect-fixing datasets in Samsung MX team precludes us from fully utilizing the power of deep learning. Therefore, strategies are needed to effectively reuse the pretrained DL-APR model. This demand can be met using the Kotlin defect-fixing datasets constructed from industrial and open-source repositories, and transfer learning. This study aims to validate the performance of the pretrained DL-APR model in fixing defects in the Samsung Kotlin projects, then improve its performance by applying transfer learning. We show that transfer learning with open source and industrial Kotlin defect-fixing datasets can improve the defect-fixing performance of the existing DL-APR by 307%. Furthermore, we confirmed that the performance was improved by 532% compared with the baseline DL-APR model as a result of transferring the knowledge of an industrial (non-defect) bug-fixing dataset. We also discovered that the embedded vectors and overlapping code tokens of the code-change pairs are valuable features for selecting useful knowledge transfer instances by improving the performance of APR models by up to 696%. Our study demonstrates the possibility of applying transfer learning to practitioners who review the application of DL-APR to industrial software.

BibTeX
@inproceedings{Kim-al:FSE22,
  author    = {Misoo Kim and
               Youngkyoung Kim and
               Hohyeon Jeong and
               Jinseok Heo and
               Sungoh Kim and
               Hyunhee Chung and
               Eunseok Lee},
  title     = {An empirical study of deep transfer learning-based program repair for Kotlin projects},
  booktitle = {{ESEC/SIGSOFT} {FSE}},
  pages     = {1441--1452},
  publisher = {{ACM}},
  year      = {2022},
}

Related papers