LLM 기반 테스트 케이스 카빙(Test Case Carving) 및 어설션 생성(Assertion Generation)의 산업적 실무 (경험
요약
NL2Test는 트래픽 캡처와 자연어 시나리오를 결합하여 API 회귀 테스트를 자동 생성하는 도구입니다. LLM과 결정론적 알고리즘을 활용해 테스트 케이스 카빙과 어설션 생성을 수행하며, 실제 산업 현장에서 높은 코드 채택률을 입증했습니다.
핵심 포인트
- 트래픽 기반의 테스트 케이스 카빙 및 어설션 자동 생성 기술 제시
- LLM의 의미론적 해석과 결정론적 알고리즘의 결합으로 신뢰성 확보
- 실제 운영 환경에서 85.4%의 높은 코드 채택률 기록
- 마이크로서비스 환경의 회귀 테스트 자동화 및 수동 작업량 감소
마이크로서비스(microservice) 시스템의 엔터프라이즈 회귀 테스트(regression testing)는 종종 불완전하거나 오래된 문서로 인해 제약을 받습니다. 실제 현장에서 QA 엔지니어들은 비즈니스 시나리오를 재구성하기 위해 실제 실행 트래픽(execution traffic)에 자주 의존합니다. 그러나 가공되지 않은 트래픽을 안정적인 검증 로직을 갖춘 재현 가능한 회귀 테스트로 변환하는 작업은 여전히 노동 집약적이며 오류가 발생하기 쉽습니다. 본 논문은 (i) 자연어 시나리오 설명과 (ii) 해당 시나리오를 실행하는 동안 기록된 트래픽 캡처로부터 실행 가능한 API 회귀 테스트를 생성하는 엔드 투 엔드(end-to-end) 접근 방식이자 도구인 NL2Test를 제시합니다. NL2Test는 두 가지 결합된 과제를 해결합니다: 최소한의 재현 가능한 요청 시퀀스를 추출하고, 동적 값들이 하드코딩되는 대신 응답으로부터 바인딩되도록 데이터 의존성을 재구성하는 테스트 케이스 카빙(test case carving), 그리고 비결정론적(non-deterministic) 필드와 환각(hallucinated) 경로를 피하면서 비즈니스 의도에 부합하는 어설션(assertion)을 생성하는 어설션 생성(assertion generation)입니다. 신뢰성을 높이기 위해 NL2Test는 의미론적 해석(semantic interpretation)과 제약 조건이 있는 코드 합성(constrained code synthesis)을 위해 LLM을 사용하며, 요청 필터링, 값 일관성을 통한 의존성 확인, 그리고 어설션 경로 검증을 위해 결정론적 알고리즘(deterministic algorithms)을 사용합니다. 우리는 대규모 소비자 대상 인터넷 기업에서 추출한 51개의 산업용 회귀 시나리오를 통해 NL2Test를 평가했습니다. NL2Test는 82.4%(42/51)의 완전 일치율(exact-match rate)을 달성했으며, 약간의 사후 편집을 허용할 경우 시나리오의 98.0%(50/51)에서 기능적으로 사용 가능한 초안을 생성했습니다. 2025년 3월부터 시작된 9개월간의 실제 운영 배포에서 NL2Test는 3,196개의 테스트 케이스를 생성했으며, 전체 코드 채택률(code adoption rate)은 85.4%를 기록했습니다. 이러한 결과는 결정론적 가드레일(deterministic guardrails)을 갖춘 트래픽 기반 생성 방식이 복잡한 마이크로서비스 환경에서 회귀 자동화를 개선하는 동시에 수동 작업량을 실질적으로 줄일 수 있음을 나타냅니다.
AI 자동 생성 콘텐츠
본 콘텐츠는 arXiv Codex (cs.SE)의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기