TestEvo-Bench: 테스트와 코드의 공동 진화를 위한 실행 가능하고 라이브한 벤치마크
요약
소프트웨어 코드와 테스트의 공동 진화를 평가하기 위한 실행 가능한 라이브 벤치마크인 TestEvo-Bench를 소개합니다. 실제 커밋 히스토리를 기반으로 테스트 생성 및 업데이트 능력을 측정하며, 데이터 누수를 방지하기 위해 주기적으로 업데이트되는 구조를 갖추고 있습니다.
핵심 포인트
- 코드 변경에 따른 테스트 생성 및 업데이트 성능 평가
- 실행 기반 지표(통과율, 커버리지, 변이 점수) 지원
- 데이터 누수 방지를 위한 주기적 업데이트 파이프라인 제공
- 최신 에이전트 및 모델의 테스트 자동화 성능 검증
소프트웨어 테스트와 코드는 함께 진화합니다. 코드 변경이 발생하면 새로운 소프트웨어 동작을 기록하는 새로운 테스트 또는 업데이트된 테스트가 뒤따라야 합니다. 그러나 기존의 테스트 생성 및 업데이트 벤치마크는 종종 코드 변경으로부터 테스트를 격리하며, 테스트가 실행 가능한지 또는 코드 변경과 의미론적으로 연결되어 있는지 확인하지 못하는 정적 메타데이터에 의존합니다. 이로 인해 테스트 자동화 에이전트가 코드 변경이 테스트 스위트(test suite)로 어떻게 전파되어야 하는지를 이해하고 있는지 평가하기가 어렵습니다.
우리는 소프트웨어 저장소(repository)에서 추출한 테스트 및 코드 공동 진화(co-evolution) 작업의 벤치마크인 TestEvo-Bench를 소개합니다. 이 벤치마크는 두 가지 트랙을 가집니다. 테스트 생성(test generation) 트랙에서는 에이전트가 새로운 소프트웨어 동작을 포착하기 위해 새로운 테스트를 작성해야 하며, 테스트 업데이트(test update) 트랙에서는 에이전트가 실패하는 기존 테스트를 변경된 소프트웨어 동작에 맞게 조정해야 합니다. 각 작업은 실제 커밋 히스토리(commit history)에 고정되어 있으며, 통과율(pass rate), 커버리지(coverage), 변이 점수(mutation score)와 같은 실행 기반 지표를 지원하기 위해 환경 설정과 함께 패키징되어 있습니다.
TestEvo-Bench는 또한 라이브 벤치마크입니다. 각 작업은 테스트 및 코드 변경의 타임스탬프를 기록하며, 우리의 자동화된 파이프라인에 의해 새로운 작업이 주기적으로 추출되므로, 데이터 누수(data leakage) 위험을 줄이기 위해 모델의 학습 중단 시점(training cutoff) 이후의 작업으로 평가를 제한할 수 있습니다. 현재 스냅샷에는 152개의 오픈 소스 Java 프로젝트에 걸친 59,950개의 공동 진화 후보 기록에서 선별된 746개의 테스트 생성 및 509개의 테스트 업데이트 작업이 포함되어 있습니다. 우리는 강력한 하네스(harness)를 결합한 네 가지 최첨단 에이전트(Claude Code, Gemini CLI, SWE-Agent)와 강력한 파운데이션 모델(Claude Opus 4.7, Gemini 3.1 Pro)을 사용하여 실험을 진행했습니다. 결과에 따르면, 이들은 테스트 생성에서 최대 77.5%, 테스트 업데이트에서 74.6%의 성공률을 달성했습니다. 그러나 가장 최근의 벤치마크 작업에서는 성공률이 실질적으로 더 낮으며, 작업당 비용이 제한될 경우 성공률이 크게 떨어집니다.
AI 자동 생성 콘텐츠
본 콘텐츠는 arXiv cs.CL (NLP)의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기