소프트웨어 기능적 버그를 위한 LLM 기반 불변성 테스트 (LLM-Based Invariant Testing for Software
요약
소프트웨어의 기능적 버그를 탐지하기 위해 LLM 기반의 새로운 불변성 테스트 프레임워크인 LISA를 제안합니다. LISA는 API n-gram 피드백을 활용해 API 시퀀스와 프로그램 불변성을 반복 생성하며, 기존 퍼징 방식보다 높은 버그 탐지율과 신뢰도를 제공합니다.
핵심 포인트
- LLM 기반의 새로운 불변성 테스트 프레임워크 LISA 제안
- API n-gram 피드백을 통한 API 시퀀스 및 불변성 반복 생성
- 기존 퍼징 기술 대비 높은 버그 탐지율 및 코드 커버리지 달성
- 개발자 확인을 위한 높은 신뢰도의 버그 후보 보고
소프트웨어 라이브러리의 기능적 버그 (functional bugs)를 찾아내기 위해 수동으로 단위 테스트 (unit tests)를 작성하는 것은 시간이 많이 소요될 뿐만 아니라, API의 의도된 의미론 (semantics)에 대한 깊은 이해를 필요로 합니다. 휴리스틱 기반 (Heuristic-based) 테스트 생성 방법들은 프로그램의 의미론을 추론하거나 인간처럼 소스 코드 및 문서를 해석할 수 없기 때문에 사용성이 낮다는 단점이 있습니다. OSS-Fuzz와 같은 전통적인 퍼징 (fuzzing) 기술은 종종 버그를 탐지하기 위해 크래시 (crashes)에 의존하지만, 기능적 버그가 항상 크래시를 유발하는 것은 아닙니다. 이러한 한계를 극복하기 위해, 우리는 소프트웨어 기능적 버그를 위한 새로운 LLM 기반 불변성 테스트 (invariant testing) 프레임워크인 LISA를 제안합니다. LISA는 API n-gram 피드백에 따라 API 시퀀스 (sequences)와 프로그램 불변성 (program invariants)을 반복적으로 생성하며, 퍼징 및 이전의 LLM 기반 테스트 생성 방식과 비교했을 때 더 높은 버그 탐지율과 경쟁력 있는 코드 커버리지 (code coverage)를 달성하고, 발견된 각 항목을 개발자의 확인을 위한 높은 신뢰도의 버그 후보로 보고합니다.
AI 자동 생성 콘텐츠
본 콘텐츠는 arXiv Codex (cs.SE)의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기