Codehacks: 경쟁 프로그래밍 문제를 위한 적대적 테스트 데이터셋
Max Hort와 Leon Moonen이 개발한 Codehacks 데이터셋은 Codeforces에서 수집된 28만 개 이상의 오류 유발 테스트 사례를 제공하여, 특히 LLM이 생성한 소프트웨어의 강건성을 평가하는 데 유용한 자료입니다. 자연어 설명과 함께 제공되는 문제, 해결 코드, 해킹 코드는 다양한 테스트 시나리오를 제공하여 소프트웨어의 취약점을 발견하고 개선하는 데 도움을 줄 것입니다.

소프트웨어 검증의 새로운 지평, Codehacks 데이터셋
우리 일상 속 중요한 애플리케이션들은 소프트웨어에 의존하고 있습니다. 따라서 소프트웨어의 정확성을 보장하는 것은 무엇보다 중요합니다. 소프트웨어의 정확성을 평가하는 일반적인 방법은 테스트를 통해 검증하는 것입니다. 테스트가 실패하면 소프트웨어에 결함이 있음을 의미하고, 모든 테스트를 통과하면 소프트웨어가 정상적으로 작동한다고 가정할 수 있습니다. 하지만 이러한 결과의 신뢰성은 사용된 테스트 집합에 따라 달라지며, 일부 경우가 테스트되지 않아 버그가 존재하는데도 모든 테스트를 통과하는 위양성(false negative) 의 위험이 존재합니다.
Max Hort와 Leon Moonen은 이러한 문제점을 해결하기 위해, Codehacks라는 새로운 데이터셋을 제시합니다. Codehacks는 Codeforces 온라인 저지 플랫폼에서 수집된 288,617개의 해킹(hacks) , 즉 오류를 유발하는 테스트 사례와 5,578개의 프로그래밍 문제, 그리고 이 문제들을 해결한 2,196개의 제출 코드를 포함합니다. 각 문제는 자연어로 설명되어 있으며, 해당 문제의 해결 코드를 깨뜨리는 해킹 코드도 함께 제공됩니다.
이는 특히 대규모 언어 모델(LLM) 이 생성한 소프트웨어를 테스트하는 데 매우 유용합니다. LLM은 때때로 예상치 못한 오류를 생성할 수 있기 때문에, Codehacks 데이터셋은 이러한 오류를 찾아내고 소프트웨어의 강건성을 높이는 데 크게 기여할 수 있습니다. 다양한 테스트 시나리오를 제공함으로써, 개발자는 소프트웨어의 취약점을 발견하고 개선하는데 활용할 수 있습니다.
Codehacks 데이터셋의 주요 특징:
- 방대한 규모: 288,617개의 해킹 사례와 5,578개의 문제, 2,196개의 제출 코드를 포함합니다.
- 다양한 테스트 케이스: 다양한 유형의 오류를 유발하는 해킹 사례를 제공합니다.
- 자연어 설명: 각 문제에 대한 자세한 자연어 설명이 포함되어 이해도를 높입니다.
- 실제 데이터: Codeforces 플랫폼에서 수집된 실제 데이터를 기반으로 합니다.
Codehacks 데이터셋은 소프트웨어 개발 및 테스트 분야에 새로운 가능성을 열어줄 것으로 기대됩니다. 앞으로 더욱 발전된 소프트웨어 개발 및 검증 방법론의 개발에 중요한 역할을 할 것으로 예상됩니다. 데이터 기반의 소프트웨어 테스트 자동화 및 강화에도 큰 도움이 될 것입니다.
Reference
[arxiv] Codehacks: A Dataset of Adversarial Tests for Competitive Programming Problems Obtained from Codeforces
Published: (Updated: )
Author: Max Hort, Leon Moonen
http://arxiv.org/abs/2503.23466v1