mlsanityData to 14 Oct 2026

Improving Automated Program Repair with Domain Adaptation

arXiv 2212.11414 ↗First posted 21 Dec 2022cs.SE cs.AI cs.LGcited by 10

Not on the map. Why?

Abstract (arXiv)

Automated Program Repair (APR) is defined as the process of fixing a bug/defect in the source code, by an automated tool. APR tools have recently experienced promising results by leveraging state-of-the-art Neural Language Processing (NLP) techniques. APR tools such as TFix and CodeXGLUE combine text-to-text transformers with software-specific techniques are outperforming alternatives, these days. However, in most APR studies the train and test sets are chosen from the same set of projects. In reality, however, APR models are meant to be generalizable to new and different projects. Therefore, there is a potential threat that reported APR models with high effectiveness perform poorly when the characteristics of the new project or its bugs are different than the training set's(Domain Shift). In this study, we first define and measure the domain shift problem in automated program repair. Then, we then propose a domain adaptation framework that can adapt an APR model for a given target project. We conduct an empirical study with three domain adaptation methods FullFineTuning, TuningWithLightWeightAdapterLayers, and CurriculumLearning using two state-of-the-art domain adaptation tools (TFix and CodeXGLUE) and two APR models on 611 bugs from 19 projects. The results show that our proposed framework can improve the effectiveness of TFix by 13.05% and CodeXGLUE by 23.4%. Another contribution of this study is the proposal of a data synthesis method to address the lack of labelled data in APR. We leverage transformers to create a bug generator model. We use the generated synthetic data to domain adapt TFix and CodeXGLUE on the projects with no data (Zero-shot learning), which results in an average improvement of 5.76% and 24.42% for TFix and CodeXGLUE, respectively.

Key facts. Cited by 10 papers in the map (data through 14 Oct 2026). Builds on 59 of its 118 references that are in the map. First posted on arXiv 21 Dec 2022.

Builds on

59 of 118 references.

References · 59

  1. 2017Attention Is All You Needcited by 60,361
  2. 2018BERT: Pre-training of Deep Bidirectional Transformers for Language Understandingcited by 40,399
  3. 2020Language Models are Few-Shot Learnerscited by 32,419
  4. 2019Exploring the Limits of Transfer Learning with a Unified Text-to-Text Transformercited by 14,599
  5. 2016Concrete Problems in AI Safetycited by 1,642
  6. 2017Adversarial Discriminative Domain Adaptationcited by 1,311
  7. 2020CodeBERT: A Pre-Trained Model for Programming and Natural Languagescited by 1,310
  8. 2021CodeXGLUE: A Machine Learning Benchmark Dataset for Code Understanding and Generationcited by 744
  9. 2019CodeSearchNet Challenge: Evaluating the State of Semantic Code Searchcited by 654
  10. 2018Deep Visual Domain Adaptation: A Surveycited by 635
  11. 2020GraphCodeBERT: Pre-training Code Representations with Data Flowcited by 609
  12. 2019Gradient based sample selection for online continual learningcited by 571
38 more
  1. 2020CodeBLEU: a Method for Automatic Evaluation of Code Synthesiscited by 479
  2. 2015Return of Frustratingly Easy Domain Adaptationcited by 391
  3. 2017Six Challenges for Neural Machine Translationcited by 335
  4. 2020A Brief Review of Domain Adaptationcited by 288
  5. 2020Improving Massively Multilingual Neural Machine Translation and Zero-Shot Translationcited by 277
  6. 2019Simple, Scalable Adaptation for Neural Machine Translationcited by 242
  7. 2017Learning to Represent Programs with Graphscited by 220
  8. 2018SequenceR: Sequence-to-Sequence Learning for End-to-End Program Repaircited by 145
  9. 2020On Exposure Bias, Hallucination and Domain Shift in Neural Machine Translationcited by 127
  10. 2018An Empirical Study on Learning Bug-Fixing Patches in the Wild via Neural Machine Translationcited by 108
  11. 2020Graph-based, Self-Supervised Program Repair from Diagnostic Feedbackcited by 94
  12. 2021CURE: Code-Aware Neural Machine Translation for Automatic Program Repaircited by 86
  13. 2022Less Training, More Repairing Please: Revisiting Automated Program Repair via Zero-shot Learningcited by 76
  14. 2021Break-It-Fix-It: Unsupervised Learning for Program Repaircited by 71
  15. 2018DeepBugs: A Learning Approach to Name-based Bug Detectioncited by 65
  16. 2021Self-Supervised Bug Detection and Repaircited by 59
  17. 2021A Syntax-Guided Edit Decoder for Neural Program Repaircited by 57
  18. 2019Code-Switching for Enhancing NMT with Pre-Specified Translationcited by 53
  19. 2021Neural Program Repair with Execution-based Backpropagationcited by 50
  20. 2021Domain Adaptation and Multi-Domain Adaptation for Neural Machine Translation: A Surveycited by 46
  21. 2018Denoising Neural Machine Translation Training with Trusted Data and Online Data Selectioncited by 43
  22. 2019Getafix: Learning to Fix Bugs Automaticallycited by 41
  23. 2019Neural Program Repair by Jointly Learning to Localize and Repaircited by 40
  24. 2017Zero-Shot Deep Domain Adaptationcited by 35
  25. 2019Non-Parametric Adaptation for Neural Machine Translationcited by 34
  26. 2017Dynamic Data Selection for Neural Machine Translationcited by 33
  27. 2022SelfAPR: Self-supervised Program Repair with Test Execution Diagnosticscited by 33
  28. 2022On the Transferability of Pre-trained Language Models for Low-Resource Programming Languagescited by 30
  29. 2017Sorting and Transforming Program Repair Ingredients via Deep Learning Code Similaritiescited by 26
  30. 2018Automatic Software Repair: a Bibliographycited by 24
  31. 2017Dynamic Neural Program Embedding for Program Repaircited by 23
  32. 2019Cross-lingual Pre-training Based Transfer for Zero-shot Neural Machine Translationcited by 23
  33. 2022DEAR: A Novel Deep Learning-based Approach for Automated Program Repaircited by 22
  34. 2020Reinforced Curriculum Learning on Pre-trained Neural Machine Translation Modelscited by 20
  35. 2019MetaMT,a MetaLearning Method Leveraging Multiple Domain Data for Low Resource Machine Translationcited by 17
  36. 2022On Distribution Shift in Learning-based Bug Detectorscited by 15
  37. 2018Dissection of a Bug Dataset: Anatomy of 395 Patches from Defects4Jcited by 14
  38. 2018Learning How to Mutate Source Code from Bug-Fixescited by 13

50 most cited of 59 All 59 (JSON)

Built on by

Cited by year (2026 to 14 Oct)

Citing papers per year: 2023: 2; 2024: 3; 2025: 3; 2026: 2.

10 papers.