LLM으로 생성한 테스트 케이스를 활용한 Alloy 형식 사양 검증
초록
본 논문은 최신 대형 언어 모델 GPT‑5를 이용해 자연어 요구사항으로부터 Alloy 도메인 모델의 구조적 제약을 검증할 테스트 케이스를 자동 생성하는 방법을 제안하고, 네 개의 공개 베치마크를 통해 생성된 테스트가 문법적으로 올바르고 요구사항을 만족·불만족하도록 구성되는지를 실증적으로 평가한다. 프롬프트 설계, 비결정성, 모델 간 성능 차이 등을 분석한 결과, GPT‑5가 높은 정확도로 양성·음성 테스트를 생성하며, 인간이 만든 오류 사양을 상당히 많이 탐지함을 확인한다.
상세 분석
이 연구는 형식 사양 검증 단계에서 테스트‑드리븐 접근법을 적용하고자 하는 실무자들의 주요 고충, 즉 테스트 케이스 작성의 비용과 오류 가능성을 LLM을 통해 완화하고자 한다. 핵심 실험 설계는 네 개의 소규모 도메인 모델(소셜 네트워크, 생산 라인, 기상 관측소, 강의 관리)로 구성된 Alloy4Fun 데이터셋을 사용했으며, 각 모델에 대해 15~33개의 자연어 요구사항과 그에 대응하는 올바른 사양 및 다수의 오류 사양을 확보하였다. GPT‑5(2025‑08‑07 버전)를 중심으로, 제로‑샷, 원‑샷, 그리고 몇‑샷 프롬프트를 비교했으며, 온도 설정을 낮추어도 모델이 여전히 비결정적 응답을 보이는 현상을 측정하였다. 또한, Claude‑3, Llama‑2‑70B, 그리고 오픈소스 경량 모델들을 동일 조건에서 테스트해 성능 격차를 정량화했다.
생성된 테스트 케이스는 두 가지 기준으로 평가되었다. 첫째, 구문적 타당성—Alloy 구문에 맞는 run 명령어와 expect 절이 포함되는가; 둘째, 요구사항 적합성— 양성 테스트는 사양이 만족해야 하고, 음성 테스트는 만족하지 않아야 한다는 기대와 일치하는가. 결과는 GPT‑5가 전체 테스트 중 92 % 이상에서 구문 오류가 없으며, 요구사항 적합성 측면에서도 85 % 이상의 정확도를 보였다. 특히, 몇‑샷 프롬프트가 제로‑샷 대비 12 % 정도 정확도를 상승시켰고, 동일 프롬프트에 대해 5 ~ 7번 반복 실행했을 때 평균 3 ~ 4개의 서로 다른 테스트 케이스가 생성돼 다양성을 확보했다.
다른 LLM들과 비교했을 때, Claude‑3는 구문 정확도에서 GPT‑5와 비슷했지만 요구사항 적합성에서는 10 % 정도 낮았으며, Llama‑2‑70B와 경량 모델들은 구문 오류 비율이 20 % 이상으로 크게 뒤처졌다. 비용 측면에서는 GPT‑5가 가장 비싸지만, 테스트 케이스당 생성 비용을 고려하면 여전히 실용적인 수준으로 평가되었다.
잘못된 테스트 케이스의 특성을 분석한 결과, 대부분은 필드 오버로드 표현 오류와 다중 집합 연결 연산(→, +)의 누락에서 발생했으며, 이는 모델이 Alloy의 고유 문법을 완전히 내재화하지 못함을 시사한다. 또한, 음성 테스트를 생성할 때 기대값(expect 0)을 누락하거나, 양성 테스트에 불필요한 제약을 추가해 과도하게 제한된 인스턴스를 만들기도 했다. 이러한 오류는 프롬프트에 “양성/음성 테스트 모두 포함”이라는 명시적 지시를 추가함으로써 부분적으로 감소시킬 수 있었다.
마지막으로, 생성된 테스트 스위트가 실제 오류 사양을 탐지하는 능력을 평가했을 때, 평균 78 %의 오류 사양을 최소 하나의 테스트 케이스가 검출했으며, 특히 복합 논리 오류(예: 교수와 학생의 중복 관계)에서는 90 % 이상 탐지율을 보였다. 그러나 미묘한 논리적 결함, 예를 들어 “모든 교수는 최소 하나의 강의를 가르쳐야 한다”와 같은 전제조건을 놓친 경우 탐지율이 45 %에 그쳐, 테스트 케이스 다양성 확보가 여전히 과제로 남는다.
요약하면, GPT‑5 기반 LLM은 Alloy 사양 검증을 위한 테스트 케이스 자동 생성에 있어 현재 가장 실용적인 솔루션이며, 프롬프트 설계와 반복 생성 전략을 적절히 활용하면 높은 구문 정확도와 요구사항 적합성을 달성할 수 있다. 다만, 모델의 문법 내재화 한계와 테스트 다양성 부족은 향후 연구에서 보완해야 할 주요 과제로 남는다.
댓글 및 학술 토론
Loading comments...
의견 남기기