TL;DR

  • VoiceGremlin은 실제 통신사 회선으로 AI 전화 에이전트에 전화를 걸어 엔드투엔드(E2E) 테스트를 수행하는 SaaS 도구임.
  • 테스트 케이스는 검증할 내용을 설명하는 일반 영어 문장으로 작성하며, 테스트 대상 에이전트와 통화한 뒤 판정 대형 언어 모델(LLM)이 목표에 따라 결과를 평가함.
  • 테스트는 REST API로 실행하고, 전화번호와 테스트 케이스를 전달하는 호출 및 실행 결과를 가져오는 호출로 구성됨.
  • 테스트 대상에는 SIP 통합, 음성 인식(STT), 음성 합성(TTS), 에이전트의 기능 동작이 포함됨.
  • 실패 알림에 전체 통화 기록이 포함돼 실패 원인을 진단할 수 있음.

실제 전화 통화 기반 검증

  • VoiceGremlin은 실제 통신사 회선으로 음성 에이전트의 전화번호에 전화를 걸어 E2E 테스트를 수행함.
  • 테스트 범위에는 SIP 통합, STT/TTS, 에이전트의 기능 동작이 포함됨.
  • 지원 전화가 작동하지 않을 경우 고객이 이를 알릴 방법이 불분명할 수 있어, 전화 에이전트 테스트를 생략하는 것은 위험하다는 문제를 제기함.

LLM을 테스터이자 심사자로 활용

  • 지능형 지원 에이전트의 테스트 케이스는 사용자의 의도이므로, 테스트 케이스 저장소나 취약한 스크립트 기반 대화 경로 없이 검증 목표를 일반 영어로 입력하는 방식임.
  • VoiceGremlin의 에이전트가 고객 역할을 맡아 테스트 대상 에이전트에 전화를 걸며, 통화가 끝나면 대화 기록을 판정 LLM에 전달해 테스트 목표에 비춰 동작을 평가함.
  • 최종 통과·실패 판정은 키워드 일치나 정규식이 아니라 추론을 통해 제공됨.

간단한 API 통합

  • CI 또는 테스트 프레임워크는 첫 번째 API 호출로 전화번호와 테스트 케이스를 전달하고, 두 번째 호출로 결과를 가져옴.
  • 실행 요청은 https://voicegremlin.com/api/runs에 전송하며, 예시 요청에는 전화번호와 첫 메시지에서 에이전트가 AI임을 밝히고 통화가 녹음된다는 사실을 고지하는지 확인하는 테스트가 포함됨.
  • 응답에는 실행 ID와 대기 상태가 반환되며, https://voicegremlin.com/api/runs/abc123를 조회하면 완료 상태와 통과한 테스트 수, 테스트별 결과 및 판정 이유를 확인할 수 있음.
  • 별도의 SDK나 관리해야 하는 테스트 케이스 저장소가 필요하지 않으며, API 호출이 가능한 테스트 환경에서 통합할 수 있음.

가볍고 특정 방식에 얽매이지 않는 구성

  • 테스트 케이스는 검증할 내용을 설명하는 문자열이며, 테스트 모음은 문자열 배열임.
  • 자체 테스트 관리 방식을 강제하는 테스트 프레임워크와 달리 간단한 문자열 기반 구성을 사용함.

실패 원인 진단

  • E2E 테스트는 다양한 기능을 다루므로 테스트 실패 시 문제 파악이 어려울 수 있음.
  • VoiceGremlin의 실패 알림에는 전체 통화 기록이 포함되며, 이를 도구에 표시하면 실패를 확인한 사람이 곧바로 근본 원인 진단을 시작할 수 있음.