核心概念
프로그램 분석을 통해 복잡한 객체 생성과 복잡한 inter-procedural 종속성을 해결하여 LLM 기반 테스트 생성의 효과성과 효율성을 향상시킬 수 있다.
摘要
이 연구는 LLM 기반 테스트 생성 기술인 TELPA를 제안한다. TELPA는 프로그램 분석 결과를 활용하여 LLM에 대한 프롬프팅을 향상시킴으로써 어려운 분기를 커버할 수 있는 테스트를 생성한다.
TELPA의 주요 구성 요소는 다음과 같다:
- 역방향 메서드 호출 분석: 복잡한 객체 생성 과정을 학습하여 유효한 객체를 생성할 수 있다.
- 순방향 메서드 호출 분석: 분기 조건에 관여하는 메서드들의 의미를 이해하여 효과적인 테스트를 생성할 수 있다.
- 카운터 예제 샘플링 및 피드백 기반 프로세스: 기존에 생성된 비효과적인 테스트를 활용하여 LLM이 다양한 테스트를 생성하도록 유도한다.
TELPA는 27개의 오픈소스 Python 프로젝트에 대한 실험에서 기존 기법들에 비해 평균 31.39%와 22.22% 더 높은 분기 커버리지를 달성했다. 또한 각 주요 구성 요소의 기여도를 확인한 결과, 모든 구성 요소가 성능 향상에 통계적으로 유의미한 영향을 미치는 것으로 나타났다.
統計資料
평균 분기 커버리지: Pynguin 48.80%, CODAMOSA 51.93%, TELPA 64.12%
평균 라인 커버리지: Pynguin 66.02%, CODAMOSA 67.83%, TELPA 76.36%
引述
"프로그램 분석을 통해 복잡한 객체 생성과 복잡한 inter-procedural 종속성을 해결하여 LLM 기반 테스트 생성의 효과성과 효율성을 향상시킬 수 있다."
"TELPA는 27개의 오픈소스 Python 프로젝트에 대한 실험에서 기존 기법들에 비해 평균 31.39%와 22.22% 더 높은 분기 커버리지를 달성했다."