피드로 돌아가기
Spec-First Engineering with Specmatic: Contract-Testing a Multi-Agent AI Assistant
Dev.toDev.to
Backend

Spec-First 및 Service Virtualization 기반 AI 에이전트 계약 테스트 구축

Spec-First Engineering with Specmatic: Contract-Testing a Multi-Agent AI Assistant

Lara praneeth kondeti2026년 6월 24일10intermediate

Context

FastAPI 기반 Multi-Agent AI 시스템 TRIO의 API 일관성 확보 및 LLM 의존성으로 인한 테스트 불확실성 해결 필요. 기존의 사후 문서화 방식으로는 비결정적(Non-deterministic)인 AI 응답과 느린 추론 속도로 인한 CI/CD 병목 현상 제어 불가.

Technical Solution

  • OpenAPI 3.0 기반 Spec-First 설계 도입을 통한 API 명세의 Single Source of Truth화
  • Specmatic 기반 Contract Testing을 적용하여 코드 구현체와 명세 간의 드리프트(Drift) 자동 검증
  • Schema-based Resiliency Test를 통해 잘못된 데이터 타입 및 Null 값 주입 시의 백엔드 예외 처리 정밀 검증
  • LLM의 비결정성 및 고비용 문제를 해결하기 위해 외부 Mock 서버를 활용한 Service Virtualization 구현
  • OLLAMA_BASE_URL 환경 변수 제어를 통해 애플리케이션 코드 수정 없이 실제 LLM을 가상 서비스로 대체
  • GitHub Actions 워크플로우 내 Mock 서버 우선 실행 구조를 설계하여 GPU 없는 환경에서 전체 API 커버리지 확보

- API 명세를 단순 문서가 아닌 실행 가능한 테스트 스크립트로 활용하고 있는가 - 외부 의존성(LLM, 3rd Party API) 테스트 시 코드 내 Mocking 대신 Service Virtualization을 검토했는가 - Happy Path 외에 Schema Mutated Request를 통한 경계값 및 예외 케이스 검증 프로세스가 존재하는가 - 인프라 설정(Environment Variable)만으로 테스트 환경과 운영 환경의 의존성을 분리했는가

원문 읽기