소프트웨어 공학 연구는 새로운 기법들을 일련의 문제 인스턴스에 대해 평가하는 벤치마크에 의존합니다. 불행하게도, 수동으로 벤치마크를 구성하는 것은 노동 집약적입니다. 왜냐하면 연구자들은 적절한 인스턴스를 찾고, 실행 환경을 준비하며, 예상 결과를 설정하고, 정확성을 검증해야 하기 때문입니다. 본 논문은 BenchMeUp을 제시합니다. 이는 자연어 명세로부터 소프트웨어 공학 벤치마크를 자동으로 생성하는 접근 방식입니다.
BenchMeUp은 원하는 인스턴스, 데이터 소스 및 평가 절차를 정의하는 명세를 받으면, 검색 규칙(search rules)과 구성 계획(construction plan)을 생성하고, 후보 인스턴스를 식별하고 실행 가능한 인스턴스를 구성하는 병렬 LLM 에이전트(LLM agents)를 호출하며, 신선한 실행 환경에서 결과를 검증하고, 이 인스턴스들을 통합된 커맨드라인 인터페이스 뒤에 패키징합니다. 우리는 네 가지 작업(task): 프로그램 복구(program repair), 이슈 재현(issue reproduction), 컴파일러 자동 튜닝(compiler autotuning), 정적 분석 경고 수정(fixing static-analysis warnings)에서 이 접근 방식을 평가했습니다.
작업당 50개의 인스턴스(총 200개)를 목표로, BenchMeUp은 198개의 인스턴스를 구성했으며, 그중 196개(99%)가 성공적으로 패키징되었습니다. 검색 및 구성에는 평균 36분이 소요되었으며, 인스턴스당 비용은 $0.79였습니다. 생성된 벤치마크에서 기존의 여덟 가지 기법을 평가한 결과, 196개의 패키징된 인스턴스 중 189개(96%)가 종단 간 평가(end-to-end evaluation)를 지원하여 사용자들이 해당 기법들의 효과성을 연구할 수 있도록 했습니다. 구성된 모든 인스턴스를 그 출처, 명세, 예상 결과와 비교한 결과, 198개 중 180개(91%)가 모든 기준을 충족하는 것으로 나타났습니다. 이는 일반 목적 코딩 에이전트인 Codex가 제공한 200개 인스턴스의 10개에 비해 높은 수치입니다.
전반적으로, 우리는 LLM 기반 에이전트들이 다양한 소프트웨어 공학 작업 전반에 걸쳐 벤치마크 구성을 자동화하고 기존 기법들이 사용할 수 있는 실행 가능한 인스턴스를 생성할 수 있음을 보여주었습니다. 다만, 실행을 넘어선 유효성(validity beyond execution)은 여전히 검사되어야 합니다.