이 논문은 LLM(Large Language Model)과 차별 테스팅을 결합하여 까다로운 버그를 탐지하기 위한 테스트 케이스를 생성하는 AID 방법을 제안한다. AID는 다음 3단계로 구성된다:
PUT(Program Under Test) 기반 프로그램 변종 생성: LLM에 PUT와 문제 명세를 제공하여 버그가 있는 경우 수정된 프로그램 변종을 생성한다. 기존 테스트 케이스로 필터링하여 변종 프로그램의 정확성을 높인다.
입력 생성기 기반 테스트 입력 생성: LLM에 입력 제약 조건을 제공하여 입력 생성기를 생성하고, 이를 실행하여 테스트 입력을 생성한다. 이를 통해 LLM의 논리적 추론 및 계산 능력의 한계를 극복한다.
다양성 우선 차별 테스팅: 생성된 프로그램 변종들의 출력을 비교하여 차이가 있는 경우 해당 출력을 테스트 오라클로 사용한다. 이는 프로그램 변종들이 PUT와 유사한 결함을 가질 수 있다는 점을 고려한 것이다.
AID는 TrickyBugs와 EvalPlus 데이터셋에서 기존 최신 방법 대비 recall, precision, F1 score가 각각 최대 1.80배, 2.65배, 1.66배 향상되었다. 특히 복잡한 논리의 프로그램에서 AID의 성능 향상이 두드러졌다.
다른 언어로
소스 콘텐츠 기반
arxiv.org
더 깊은 질문