Skip to main content
QUICK REVIEW

[논문 리뷰] FixEval: Execution-based Evaluation of Program Fixes for Programming Problems

Md Mahim Anjum Haque, Wasi Uddin Ahmad|arXiv (Cornell University)|2022. 06. 15.
Software Engineering Research인용 수 5
한 줄 요약

FixEval는 실제 경쟁 프로그래밍 제출물에 대한 실행 기반 테스팅을 사용하여 프로그램 복구 모델을 평가하는 새로운 벤치마크를 도입한다. 이는 기존의 매칭 기반 메트릭보다 실행 기반 평가가 생성된 수정 사항의 기능 정확도를 더 잘 평가함을 입증한다. 데이터셋은 파이썬과 자바로 작성된 700개 문제를 포함하며, 단위 테스트, 시간/메모리 제약 조건, 결과 피드백을 제공하여 모델이 생성한 패치를 견고하게 평가할 수 있도록 한다.

ABSTRACT

The complexity of modern software has led to a drastic increase in the time and cost associated with detecting and rectifying software bugs. In response, researchers have explored various methods to automatically generate fixes for buggy code. However, due to the large combinatorial space of possible fixes for any given bug, few tools and datasets are available to evaluate model-generated fixes effectively. To address this issue, we introduce FixEval, a benchmark comprising of buggy code submissions to competitive programming problems and their corresponding fixes. FixEval offers an extensive collection of unit tests to evaluate the correctness of model-generated program fixes and assess further information regarding time, memory constraints, and acceptance based on a verdict. We consider two Transformer language models pretrained on programming languages as our baseline and compare them using match-based and execution-based evaluation metrics. Our experiments show that match-based metrics do not reflect model-generated program fixes accurately. At the same time, execution-based methods evaluate programs through all cases and scenarios designed explicitly for that solution. Therefore, we believe FixEval provides a step towards real-world automatic bug fixing and model-generated code evaluation. The dataset and models are open-sourced at https://github.com/mahimanzum/FixEval.

연구 동기 및 목표

  • 실제 환경에서 자동 프로그램 복구 모델을 평가하기 위한 종합적인 벤치마크 부족 문제를 해결하기 위해.
  • 기능 정확도 평가를 위해 단위 테스트, 시간/메모리 제약 조건, 실행 결과 피드백을 포함한 버그가 있는 프로그램과 수정된 프로그램 쌍의 데이터셋을 제공하기 위해.
  • 모델이 생성한 코드 수정 사항 평가 시 매칭 기반 메트릭과 실행 기반 메트릭을 비교하기 위해.
  • 기존의 유사도 기반 메트릭보다 실행 기반 평가가 기능 정확도를 더 잘 반영함을 입증하기 위해.
  • 향후 코드 복구, 코드 완성, 피드백 기반 모델 훈련 연구를 지원하기 위해.

제안 방법

  • AtCoder와 아즈우 온라인 저지에서 700개의 경쟁 프로그래밍 문제를 수집하여, 파이썬과 자바로 작성된 버그가 있는 코드와 정상적으로 통과된 코드를 모두 포함한다.
  • 기능 정확도 평가를 위해 각 문제당 25개의 단위 테스트를 포함한다.
  • 시간 및 메모리 제약 조건과 실행 결과 피드백(예: 잘못된 답변, 컴파일 에러)을 모델의 입력 컨텍스트로 통합한다.
  • PLBART와 CodeT5라는 두 가지 사전 훈련된 시퀀스 투 시퀀스 모델을 FixEval 데이터셋에 맞게 미세조정하여 프로그램 복구를 수행한다.
  • 모델 출력을 매칭 기반 메트릭(BLEU, CodeBLEU 등)과 테스트 세트 실행을 통한 실행 기반 메트릭을 사용하여 평가한다.
  • 디코딩 전략(그리디, 빔 서치, 뉴클레어 샘플링)과 결과 피드백 정보가 수정 품질에 미치는 영향을 분석한다.

실험 결과

연구 질문

  • RQ1매칭 기반 평가 메트릭(예: BLEU, CodeBLEU)과 실행 기반 평가 메트릭은 모델이 생성한 프로그램 수정 사항의 정확도 평가에서 어떻게 비교되는가?
  • RQ2실행 결과 피드백(예: 잘못된 답변, 컴ilesion 에러)에 접근할 수록 생성된 수정 사항의 품질은 얼마나 향상되는가?
  • RQ3다양한 디코딩 전략(그리디, 빔 서치, 뉴클레어 샘플링)은 FixEval에서 프로그램 복구 모델의 성능에 어떻게 영향을 미치는가?
  • RQ4시간/메모리 제약 조건과 테스트 케이스 피드백을 포함한 모델 입력 컨텍스트는 수정 생성 정확도에 어떤 영향을 미치는가?
  • RQ5작업 난이도와 수정 유사도는 자동 프로그램 복구 모델의 성능에 어떻게 영향을 미치는가?

주요 결과

  • 단위 테스트를 통한 실행 기반 평가가 BLEU 및 CodeBLEU와 같은 매칭 기반 메트릭보다 기능적으로 올바른 수정 사항을 식별하는 데 훨씬 뛰어나다.
  • 결과 피드백(예: 잘못된 답변) 정보를 제공받은 모델은 피드백이 없는 경우보다 더 정확하고 맥락에 부합하는 수정 사항을 생성한다.
  • 비트 서치 디코딩 전략은 그리디 디코딩과 뉴클레어 샘플링보다 일관되게 우수한 성능을 보이며, 성능 향상은 미미한 편이다.
  • 결과 피드백 입력을 받은 모델은 문법적으로는 올바르지만 의미적으로 잘못된 코드를 추가하는 것을 방지하여 수리의 노이즈를 줄인다.
  • FixEval는 복잡도 제약 조건과 극단 케이스를 포함한 실제 복구 과제를 포괄하므로 실용적인 프로그램 복구 시스템 평가에 적합하다.
  • 벤치마크는 일부 수정 사항은 간단하지만, 많은 수정 사항은 논리적 이해와 제약 조건 이해가 필요함을 드러내며, 강력한 평가 방법이 필요함을 시사한다.

더 나은 연구,지금 바로 시작하세요

논문 읽기부터 검토까지, 연구 시간을 획기적으로 줄여보세요.

카드 등록 없음 · 무료 플랜 제공

이 리뷰는 AI가 만들고, 인간 에디터가 검토했습니다.