본문으로 건너뛰기

A Study on the Capability of Generative AI to Understand and Utilize Test Cases

· 약 4분
김정인
경북대학교 컴퓨터학부 석사과정생
이우진
경북대학교 컴퓨터학부 전임교수

논문 정보

  • 제목: A Study on the Capability of Generative AI to Understand and Utilize Test Cases
  • 저자: 김정인, 이우진 (경북대학교 컴퓨터학부)
  • 학회/저널: KCC 2025
  • 발행일: 2025-06-20
  • DOI: N/A
  • 주요 연구 내용: 최신 LLM인 GPT-4.1을 대상으로 경쟁 프로그래밍(CP) 문제 해결 시, 제로샷 프롬프팅 환경에서 테스트케이스(TC) 정보를 제공하는 것이 코드 생성 정확도에 미치는 영향을 분석함. 문제 정의만 제공한 경우, 문제 정의와 TC를 함께 제공한 경우, 입출력 정보와 TC만 제공한 경우로 나누어 실험을 설계하고 결과를 비교함.
  • 주요 결과 및 결론: TC 정보 추가가 전반적인 코드 생성 정확도 향상으로 이어지지 않았으며, 특히 문제 난이도가 높을수록 성능이 저하되는 경향을 보였음. 또한, GPT-4.1은 TC를 생성하고 검증하는 능력에도 명확한 한계를 보였음.
  • 기여점: LLM의 코드 생성 과정에서 TC 정보가 항상 긍정적인 영향을 미치는 것은 아니라는 점을 실험적으로 밝힘. 이는 LLM이 개발자처럼 TC를 통해 문제의 요구사항이나 잠재적 오류를 추론하는 단계에 이르지 못했음을 시사하며, LLM 활용 시 TC 포함 전략에 신중한 접근이 필요함을 제기함.

요약

초록

대규모 언어 모델(LLM)의 코드 생성 능력은 주목받고 있지만, 생성된 코드의 정확성과 신뢰성은 여전히 중요한 과제임. 개발자들이 코드 신뢰도를 높이기 위해 사용하는 테스트케이스(TC)를 LLM에 적용했을 때 코드 생성 정확도를 높일 수 있는지 알아보고자 함. 이 논문은 최신 LLM인 GPT-4.1이 제로샷 프롬프팅으로 경쟁 프로그래밍 문제를 해결하는 과정에서 TC 정보가 결과에 미치는 영향과 GPT-4.1의 TC 생성 및 이해 능력을 분석함.

서론

LLM은 코드 생성 분야에서 개발 패러다임의 변화를 이끌고 있으나, 생성된 코드의 논리적 결함이나 요구사항 누락과 같은 정확성 문제가 존재함. 소프트웨어 테스팅 분야의 테스트 주도 개발(TDD) 방법론은 코드 작성 전 TC를 먼저 정의하여 요구사항을 명확히 하고 오류를 줄이는 데 도움을 줌. 본 연구는 TDD에서 아이디어를 얻어, LLM에게 코드 생성 시 TC 정보를 제공하면 개발자처럼 TC를 활용해 더 정확한 코드를 생성할 것이라는 가설을 세움. 이를 검증하기 위해 "LLM은 TC를 활용하여 코드의 정확성과 신뢰성을 얼마나 향상시키는가?"와 "LLM은 주어진 TC에 내포된 기능적 요구사항을 정확하게 이해하고 도출할 수 있는가?"라는 연구 질문을 설정함.

모델 아키텍처 / 방법론

  • 핵심 구조/방법: GPT-4.1 모델을 사용하여 경쟁 프로그래밍(CP) 플랫폼 '백준 온라인 저지(BOJ)'의 문제들을 제로샷 프롬프팅으로 해결하는 실험을 설계함. TC 정보 제공 여부에 따른 영향을 분석하기 위해 세 가지 조건으로 나누어 실험을 진행함.
    1. 문제 정의만 제공
    2. 문제 정의와 TC를 함께 제공
    3. 입출력 조건과 TC만 제공
  • 주요 구성 요소:
    • 모델: OpenAI의 GPT-4.1 API (Temperature: 1.0, Max tokens: 2048 등 기본 설정 사용)
    • 데이터셋: BOJ의 문제 54개를 알고리즘 분류 6개(백트래킹, 이분 탐색, 비트 연산, 그리디, 수학, 정렬)와 난이도 3단계(쉬움, 보통, 어려움)로 나누어 선정함.
    • 프롬프트: ‘<문제 파일>의 문제를 해결하는 코드를 C99로 작성해줘’ 형식의 단순한 프롬프트를 사용함.
    • 테스트케이스: 각 문제의 제약 조건과 잠재적 오류를 고려한 엣지 케이스(Edge Case) 위주의 TC를 최대 5개 생성하여 사용함.
  • 알고리즘: 첫 번째 실험에서는 위 세 가지 조건별로 각 문제당 20회씩 코드를 생성하고 BOJ 시스템에서 채점하여 정답률을 비교함. 두 번째 실험에서는 GPT-4.1의 TC 이해 및 생성 능력을 확인하기 위해, 특정 문제에 대해 TC를 직접 생성하도록 요청하거나 주어진 TC의 유효성을 검증하도록 요청함.

실험 결과

  • 주요 데이터셋: 백준 온라인 저지의 54개 경쟁 프로그래밍 문제를 사용했으며, 알고리즘 유형과 난이도에 따라 체계적으로 분류됨 (논문의 표 1 참조).
  • 핵심 성능 지표: 생성된 코드의 정답률.
  • 비교 결과:
    • 전체 결과: 가설과 달리, '문제 정의만 제공'했을 때의 평균 정답률이 71.3%로 가장 높았음. '문제 정의 + TC'는 69.9%, '입출력 정보 + TC'는 66.2%로, TC를 추가하는 것이 오히려 전반적인 성능 저하를 야기함. (논문의 Figure 1 참조)
    • 난이도별 결과: 쉬운 문제에서는 조건 간 성능 차이가 미미했으나, 보통 또는 어려운 문제에서는 TC를 추가할 때 정답률이 뚜렷하게 감소하는 경향을 보임.
    • 알고리즘별 결과: 대부분의 알고리즘에서 성능이 하락했으나, 백트래킹과 그리디 접근법에서는 TC를 추가했을 때 소폭의 성능 향상이 관찰됨. (논문의 Figure 2 참조)
    • TC 생성 및 검증 능력: GPT-4.1은 엣지 케이스에 해당하는 TC를 정확하게 생성하거나 주어진 TC의 유효성을 올바르게 검증하는 능력 모두에서 명확한 한계를 보임. 심지어 정답 코드를 함께 제공했을 때 TC 생성 과정에서 환각 현상이 발생하거나 TC 검증 정확도가 오히려 저하되기도 함. (논문의 Figure 3, 4 참조)

결론

본 연구는 GPT-4.1의 제로샷 코드 생성 과정에서 TC 정보 제공이 항상 긍정적인 효과를 가져오지 않음을 실험적으로 확인함. 특히 문제 난이도가 높을 경우, TC 정보가 오히려 성능을 저하시키는 경향이 나타남. 이러한 결과는 GPT-4.1이 TC에 담긴 의도나 요구사항을 개발자 수준으로 깊이 있게 추론하고 활용하는 데 한계가 있음을 시사함. 따라서 LLM을 활용해 코드를 생성할 때, 특히 정교한 논리가 요구되는 작업에서는 TC 정보를 포함하는 전략을 신중하게 접근하고 검증할 필요가 있음. 이 연구의 결과는 특정 모델(GPT-4.1), 프롬프팅 방식(Zero-Shot), 도메인(CP)에 한정될 수 있으므로 향후 다양한 모델과 정교한 프롬프팅 기법을 적용한 추가 연구가 필요함.