테스트 스위트 감사자로서의 코딩 에이전트: 공식 스위트가 놓치는 것을 찾고, 공식 스위트가 포착하는 것에 접근하기
요약
코딩 LLM 평가의 신뢰성을 높이기 위해 테스트 스위트의 결함을 찾아내는 코딩 에이전트 연구를 소개합니다. 에이전트가 적대적 테스트 케이스를 생성하고 인증 체인을 통해 버그를 검증함으로써, 기존 공식 스위트가 놓치는 '정답이지만 버그가 있는' 제출물을 효과적으로 식별합니다.
핵심 포인트
- 코딩 에이전트를 활용한 적대적 테스트 스위트 구축 방법론 제시
- 독립적 정답 코드와 브루트 포스를 결합한 인증 체인 도입
- AtCoder 데이터셋에서 589개의 버그 있는 정답 제출물 식별 성공
- 공식 스위트가 없는 환경에서도 기존 베이스라인보다 높은 버그 탐지 성능 증명
온라인 저지 (Online-judge) 판정 결과와 이를 기반으로 구축된 데이터셋 및 벤치마크는 코드용 대규모 언어 모델 (LLM)을 평가하고 훈련하기 위한 정답 (ground truth)으로 취급됩니다. 그러나 이전의 감사 결과들은 공식 스위트가 버그가 있는 제출물을 수락한다는 경고를 보낸 바 있습니다. 하지만 이러한 감사들은 경고 단계에서 멈출 뿐 실질적인 해결책을 제시하지 못합니다. 우리의 해결책은 두 부분으로 구성됩니다. 첫째, 테스트 스위트 감사자 (test-suite auditor) 역할을 하는 기성 코딩 에이전트 (off-the-shelf coding agent)는 공식 스위트가 놓치는 부분을 드러내기 위해 적대적 테스트 스위트 (adversarial test suites)를 구축하며, 공식 스위트가 존재하지 않는 곳에 이러한 스위트를 제공합니다. 둘째, 공식 저지 (official judge)에 의존하지 않고 에이전트가 플래그를 지정한 각 제출물이 실제로 버그가 있는지 결정하는 인증 체인 (certification chain)입니다. 이 체인은 독립적으로 작성된 여러 개의 정답 코드 (accepted solutions)가 모든 테스트에 대해 예상 출력값에 동의하고, 브루트 포스 (brute-force) 솔루션이 불일치를 해결하며, 문제별 검증기 (per-problem validator)가 각 실패한 입력이 유효한지 인증하는 방식으로 작동합니다. 이러한 에이전트 중 하나는 AtCoder의 감사된 20,375개의 정답 제출물 중에서 검증된 589개의 '정답이지만 버그가 있는' (accepted-but-buggy) 제출물을 식별했습니다. 동일한 인증을 5개의 에이전트 전체로 확장하면 이러한 제출물의 합집합 하한선은 906개가 됩니다. 별도로 점수가 매겨진 5개의 에이전트는 공식 스위트가 포착하는 논리 버그 (logic bugs)에 대한 커버리지 측면에서 공식 스위트와 1.7pp 이내의 차이를 유지했습니다. 공식 스위트가 없는 컷오프 이후의 Codeforces 문제들에 대해, 동일한 테스트 구축 방법은 테스트된 모든 입력 예산 (input budget)에서 5개의 재현된 베이스라인 (baselines)을 모두 앞질렀습니다. 공식 스위트가 존재하는 경우, 에이전트는 스위트의 적절성을 가정하는 대신 감사하며, 스위트가 존재하지 않는 경우 에이전트 스위트는 우리가 재현하고 테스트한 방법들 중 가장 많은 버그가 있는 제출물을 잡아냅니다.
AI 자동 생성 콘텐츠
본 콘텐츠는 arXiv Codex (cs.SE)의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기