Utilizing CodeBERT Based on Buggy Block for Multi-Line Program Repair
Jisung Kim, Byungjeong Lee · 정보과학회 컴퓨팅의 실제 논문지 · 2022
APR(Automated Program Repair)은 프로그램 정정을 자동화하는 기술이며, 버기 라인을 식별하는 버그 로컬라이제이션(bug localization)과 식별된 버기 라인을 정정하는 버그 정정(bug repair)을 수행한다. 버기 라인 개수에 따라 싱글 라인 버그와 멀티 라인 버그로 나눈다. 본 논문에서는 버기 블록과 CodeBERT 모델을 활용하여 멀티 라인 버그 정정을 수행하는 APR 기법을 제안한다. 먼저 버기 라인들이 속해 있는 버기 메소드를 전처리하여 학습과 검증을 위한 버기 블록을 만든다. 이렇게 만든 버기 블록을 사용하여 CodeBERT 모델을 미세 조정한다. 미세 조정된 CodeBERT 모델에 테스트용 버기 블록을 입력하면, 후보 패치 집합을 생성한다. 그리고 생성된 후보 패치의 컴파일 가능성, 적합성, 논리적 정확성을 확인한다. Bugs2Fix와 Defects4J 데이터 집합을 사용한 실험에서 베이스라인 연구와 성능을 비교하여 우수함을 보였다.