본문 바로가기
KERD
논문KCI 등재

Applying Token Tagging to Augment Dataset for Automatic Program Repair

0

조회

0

다운로드

1

인용

0

참고문헌

키워드

초록

Automatic program repair (APR) techniques focus on automatically repairing bugs in programs and providingcorrect patches for developers, which have been investigated for decades. However, most studies havelimitations in repairing complex bugs. To overcome these limitations, we developed an approach that augmentsdatasets by utilizing token tagging and applying machine learning techniques for APR. First, to alleviate thedata insufficiency problem, we augmented datasets by extracting all the methods (buggy and non-buggymethods) in the program source code and conducting token tagging on non-buggy methods. Second, we fed thepreprocessed code into the model as an input for training. Finally, we evaluated the performance of the proposedapproach by comparing it with the baselines. The results show that the proposed approach is efficient foraugmenting datasets using token tagging and is promising for APR.

Abstract

Automatic program repair (APR) techniques focus on automatically repairing bugs in programs and providingcorrect patches for developers, which have been investigated for decades. However, most studies havelimitations in repairing complex bugs. To overcome these limitations, we developed an approach that augmentsdatasets by utilizing token tagging and applying machine learning techniques for APR. First, to alleviate thedata insufficiency problem, we augmented datasets by extracting all the methods (buggy and non-buggymethods) in the program source code and conducting token tagging on non-buggy methods. Second, we fed thepreprocessed code into the model as an input for training. Finally, we evaluated the performance of the proposedapproach by comparing it with the baselines. The results show that the proposed approach is efficient foraugmenting datasets using token tagging and is promising for APR.

참고문헌 (9)

  1. R. Just, "Defects4J: a database of existing faults to enable controlled testing studies for Java programs", Proceedings of the 2014 International Symposium on Software Testing and Analysis, pp.437~440 (2014)
  2. J. Patra, "Semantic bug seeding: a learning-based approach for creating realistic bugs", Proceedings of the 29th ACM Joint Meeting on European Software Engineering Conference and Symposium on the Foundations of Software Engineering, pp.906~918 (2021)
  3. N. Gupta, "A novel approach for mutant diversity-based fault localization : DAM-FL", International Journal of Computers and Applications, 43(8), pp.804~ (2021)
  4. M. Tufano, "An empirical investigation into learning bug-fixing patches in the wild via neural machine translation", Proceedings of the 33rd ACM, 2018, 832~837
  5. Michele Tufano, "An Empirical Study on Learning Bug-Fixing Patches in the Wild via Neural Machine Translation", ACM Transactions on Software Engineering and Methodology, 28(4), pp.1~29 (2019), Association for Computing Machinery (ACM)[DOI]
  6. S. Hochreiter, "Long short-term memory", Neural Computation, 9(8), pp.1735~1780 (1997)
  7. A. Vaswani, "Attention is all you need", Advances in Neural Information Processing Systems, 30, pp.5998~6008 (2017)
  8. "CodeBERT: a pre-trained model for programming and natural languages" (2020)[URL]
  9. "Codexglue: a machine learning benchmark dataset for code understanding and generation" (2021)[URL]

관련 논문AI추천

이 간행물의 다른 논문 (9건)