Skip to main content
QUICK REVIEW

[논문 리뷰] Large Language Models are Few-shot Testers: Exploring LLM-based General Bug Reproduction

Sungmin Kang, Juyeon Yoon|arXiv (Cornell University)|2022. 09. 23.
Software Engineering Research인용 수 7
한 줄 요약

이 논문은 자바 프로젝트의 자연어 버그 보고서에서 자동으로 테스트 케이스를 생성하는 데 Large Language Models (LLMs)를 활용하는 Libro라는 프레임워크를 제안한다. LLM 출력을 후처리하고 검증 히ュ리스틱을 적용함으로써 Libro는 Defects4J 케이스의 33.5%에서 버그를 성공적으로 재현하며, 149개의 버그에 대해 유효한 재현 테스트를 상위 결과로 제안하여 개발자의 테스트 생성 노력을 크게 줄일 잠재력을 보여준다.

ABSTRACT

Many automated test generation techniques have been developed to aid developers with writing tests. To facilitate full automation, most existing techniques aim to either increase coverage, or generate exploratory inputs. However, existing test generation techniques largely fall short of achieving more semantic objectives, such as generating tests to reproduce a given bug report. Reproducing bugs is nonetheless important, as our empirical study shows that the number of tests added in open source repositories due to issues was about 28% of the corresponding project test suite size. Meanwhile, due to the difficulties of transforming the expected program semantics in bug reports into test oracles, existing failure reproduction techniques tend to deal exclusively with program crashes, a small subset of all bug reports. To automate test generation from general bug reports, we propose LIBRO, a framework that uses Large Language Models (LLMs), which have been shown to be capable of performing code-related tasks. Since LLMs themselves cannot execute the target buggy code, we focus on post-processing steps that help us discern when LLMs are effective, and rank the produced tests according to their validity. Our evaluation of LIBRO shows that, on the widely studied Defects4J benchmark, LIBRO can generate failure reproducing test cases for 33% of all studied cases (251 out of 750), while suggesting a bug reproducing test in first place for 149 bugs. To mitigate data contamination, we also evaluate LIBRO against 31 bug reports submitted after the collection of the LLM training data terminated: LIBRO produces bug reproducing tests for 32% of the studied bug reports. Overall, our results show LIBRO has the potential to significantly enhance developer efficiency by automatically generating tests from bug reports.

연구 동기 및 목표

  • 자연어 버그 보고서에서 직접 테스트 케이스를 생성하는 데 LLM을 활용할 수 있는지의 가능성을 조사하는 것. 이는 자동화된 테스팅 분야에서 거의 탐색되지 않은 과제이다.
  • 기존 기술이 오라클 문제로 인해 자주 忽略하는 비크래시 버그에 대해 의미 있는 테스트를 생성하는 데 도전하는 것.
  • 단지 잠재적 테스트 케이스를 생성하는 것뿐만 아니라, 신뢰성과 개발자의 인지 부담을 줄이기 위해 순위를 매기고 검증하는 프레임워크를 개발하는 것.
  • LLM 사전학습 중에 접하지 않은 후행 훈련 버그 보고서를 대상으로 테스트하여 데이터 유출에 대한 내성적 저항력을 평가하는 것.

제안 방법

  • Libro는 few-shot prompting 설정에서 버그 보고서와 소스 코드를 기반으로 Codex LLM에 테스트 케이스 후보를 생성하도록 프롬프트한다.
  • 구문적 정확성, 컴파일 성공 여부, 실행 동작 기반으로 생성된 테스트 출력을 필터링하고 검증하기 위해 후처리 히ュ리스틱을 적용한다.
  • 컴파일 성공 여부, 런타임 예외, 테스트 실행 결과와 같은 메트릭을 사용해 실패를 재현할 가능성이 높은 테스트를 평가함으로써 생성된 테스트를 순위 매긴다.
  • 정적 분석과 동적 실행의 조합을 사용해 생성된 테스트가 실제로 버그를 재현하는지 확인함으로써 유효한 시도와 유효하지 않은 시도를 구분한다.
  • 일반화성과 내성적 저항력을 평가하기 위해 Defects4J 벤치마크와 새로 수집한 실세계 보고서-테스트 데이터셋을 모두 대상으로 시스템을 평가한다.
  • 데이터 泄露를 완화하기 위해, LLM 사전학습 기간 동안 포함되지 않은 31개의 후행 훈련 버그 보고서를 대상으로 평가한다.

실험 결과

연구 질문

  • RQ1LLM은 크래시 기반 오라클에 의존하지 않고 자연어 버그 보고서에서 테스트 케이스를 효과적으로 생성할 수 있는가?
  • RQ2Libro와 같은 프레임워크는 다수의 LLM 생성 출력 중에서 가장 유망한 테스트 후보를 얼마나 정확하게 식별하고 순위를 매길 수 있는가?
  • RQ3Libro는 훈련 데이터에 포함되지 않은 실제 세계의 후행 훈련 버그 보고서에 얼마나 잘 일반화되는가?
  • RQ4LLM 기반 생성에서 성공적인 재현을 이끌어내는 데 기여하는 버그 보고서와 테스트 케이스의 주요 특성은 무엇인가?

주요 결과

  • Libro는 Defects4J 버그 750건 중 251건(33.5%)에서 실패 유도 테스트 케이스를 성공적으로 재현하여 널리 사용되는 벤치마크에서 뛰어난 성능을 보였다.
  • 이 중 149개의 버그에 대해 Libro는 첫 번째 제안으로 유효한 실패 재현 테스트를 생성하여 테스트 선택에 드는 개발자의 노력을 크게 줄였다.
  • 새로 수집한 실세계 데이터셋(31건의 후행 훈련 버그 보고서)에 대한 별도 평가에서 Libro는 32.2%의 버그를 재현하여 훈련 데이터를 초월한 일반화 능력을 보였다.
  • 생성된 테스트 중 실제로 버그를 재현하는 것을 정확하게 식별하는 데 71.4%의 정확도를 달성하여 테스트 순위 매기기의 높은 신뢰성을 보여주었다.
  • 외부 파일이나 비표준 테스트 인프라가 필요한 버그에 대해서는 성능이 열악하여 복잡한 테스트 종속성 처리에 대한 현재의 한계를 드러냈다.
  • 테스트 코드가 보고서에서 기억된 것으로 보이는 경우는 단 3건에 불과하여 결과에 대한 데이터 오염 가능성은 최소한으로 나타났다.

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

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

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

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