본문으로 바로가기
리옵트 핸드북
리옵트 핸드북
에이전틱 테스트 환경 엔지니어링

근본 원리

테스트 포트폴리오 운영 모델환경·상태 통제 전략실행 토폴로지와 러너 아키텍처테스트 하네스 엔지니어링

계약 & 구성

인터페이스 계약과 관측 포인트상태 구성과 시나리오 픽스처

실행 & 게이트

실행 패브릭과 오케스트레이션리스크 기반 릴리즈 게이트

신뢰도 & 운영

비결정성과 Flake 관리관측성·신뢰도 지표테스트 인시던트 대응거버넌스와 소유권

부록

런북 템플릿검증 리포트업데이트 내역
핸드북›에이전틱 테스트 환경 엔지니어링›환경·상태 통제 전략

환경·상태 통제 전략

preview, integration, prod-like, sandbox와 seed·clock·queue·reset 전략을 테스트 환경 표준으로 만드는 방법

핵심 요약

  • 테스트 신뢰도는 테스트 코드보다 환경과 상태 통제에서 더 자주 무너집니다.
  • 환경은 local sandbox·preview·shared integration·prod-like·canary로 나눠 한 환경에 모든 질문을 몰지 않습니다.
  • 상태 통제는 reference seed·scenario data·external sandbox·time·event/queue 5개 레이어로 나눠 봅니다.
  • seed는 전역·suite·scenario-local 3단으로 두고, 데이터뿐 아니라 clock과 queue까지 통제해야 합니다.
  • production 계정·실제 고객 데이터는 테스트에 쓰지 않고 trace/screenshot의 PII는 redaction합니다.

테스트 환경의 신뢰도는 테스트 코드보다 환경과 상태 통제에서 더 자주 무너집니다. 에이전틱 시대에는 특히 "어디서 돌렸는가", "무슨 상태였는가", "어떤 시간과 이벤트 흐름이었는가"를 설명할 수 있어야 합니다.

환경 토폴로지

환경목적특징권장 용도
local sandbox빠른 재현과 디버깅개발자/agent 전용, 강한 통제root cause 확인
previewPR 단위 검증짧은 수명, 빠른 생성/폐기smoke subset
shared integration팀 간 통합 확인여러 변경이 충돌 가능critical 일부
prod-like최종 승인production과 유사한 구성release gate
canary / shadow실제 배포 관찰read-safe probe 중심rollout 판단

권장 원칙

한 환경에 모든 질문을 몰아넣지 마세요. preview는 빠르게, shared integration은 협업용으로, prod-like는 게이트용으로, canary는 실제 이상 탐지용으로 분리해야 합니다.

상태 통제의 5개 레이어

레이어예시실패하면 생기는 문제
reference seed조직, 권한 role, feature flag 기본값테스트 시작조차 불가능
scenario data주문, 구독, 만료 상태, 권한 변경 리소스같은 흐름이 매번 다르게 보임
external sandbox결제, 이메일, OAuth, webhook외부 의존성 때문에 원인 분리 실패
time control만료, 예약 작업, polling, cronwait/sleep 남발, 비결정성 증가
event / queue drainasync worker, webhook, retry queue최종 상태가 언제 맞는지 알 수 없음

테스트가 안정적이려면 데이터뿐 아니라 시간과 이벤트 흐름까지 통제할 수 있어야 합니다.

seed / reset 전략

1. 전역 seed

  • 서비스 부팅에 필요한 최소 reference data
  • 조직, 플랜, role, feature flag 기본값
  • 환경 생성 시 1회 적용

2. suite seed

  • smoke/critical가 공통으로 쓰는 계정과 상태
  • 테스트 간 경쟁 조건이 없도록 namespace 분리
  • 읽기 전용 확인이 가능해야 함

3. scenario-local seed

  • 특정 probe에서만 필요한 데이터
  • API, admin endpoint, job helper로 생성
  • 종료 시 cleanup하거나 TTL로 자동 정리

clock과 queue를 통제하지 못하면 생기는 문제

  • polling 기반 화면이 환경마다 다르게 보임
  • 예약 작업 완료 시점이 랜덤해져 sleep이 늘어남
  • webhook / async job 완료 이전에 assertion이 실행됨
  • queue backlog가 다른 팀 실행과 섞여 false negative가 생김

권장 방식:

  • fake clock 또는 controllable clock 도입
  • queue drain endpoint 또는 admin signal 제공
  • async completion을 log/event로 확인 가능한 상태로 외부화
  • "이 작업이 끝났는지"를 UI가 아니라 시스템 이벤트로도 검증

외부 의존성 통제

의존성기본 정책예외
결제sandbox 또는 provider mock실제 gateway는 canary 수준만
이메일test inbox / sinkproduction inbox 사용 금지
SMS / pushmock gateway전송 결과 검증용 sandbox만 허용
analyticsnoop 또는 stub태그 존재 여부만 확인
LLM / agent providerfrozen prompt/model config 또는 recorded stubonline eval은 별도 gate로 분리

개인정보와 보안

  • production 계정이나 실제 고객 데이터는 테스트 환경에 사용하지 않습니다.
  • secret은 secret manager로만 배포하고 로컬 .env 공유를 금지합니다.
  • trace, screenshot, logs에 PII가 남을 수 있으면 redaction 또는 제한 보관을 적용합니다.
  • 외부 벤더와 artifact를 공유할 때는 접근 범위를 분리합니다.

흔한 실패 패턴

  1. 여러 suite가 같은 계정을 동시에 써서 상태가 꼬인다
  2. preview는 빨리 올라오지만 seed가 늦게 적용된다
  3. shared integration에서 다른 팀 배포가 같은 시간대에 겹친다
  4. sandbox quota 초과와 제품 회귀를 구분하지 못한다
  5. queue backlog나 scheduled job 지연이 flaky로 잘못 분류된다

관련 문서

테스트 하네스 엔지니어링

테스트 코드를 넘어 환경 제어, 증거 수집, 재현성, agent repair boundary를 묶는 테스트 하네스 설계 원칙과 패키지 구조

Ch8. Sandbox 보안 런타임

엔터프라이즈 Eve 에이전트 개발 · Eve sandbox의 trust boundary, backend, network policy, credential brokering, workspace lifecycle을 운영 기준으로 정리한다.

테스트 포트폴리오 운영 모델

어떤 시나리오를 browser, API, workflow, canary probe로 나누고 어느 tier를 게이트에 올릴지 정하는 운영 표준

테스트 포트폴리오 운영 모델

어떤 시나리오를 browser, API, workflow, canary probe로 나누고 어느 tier를 게이트에 올릴지 정하는 운영 표준

실행 토폴로지와 러너 아키텍처

브라우저 러너, 서비스 클라이언트, 증거 수집기, 판정기를 어떤 구조로 분리해야 하는지 설명합니다.

On this page

환경 토폴로지상태 통제의 5개 레이어seed / reset 전략1. 전역 seed2. suite seed3. scenario-local seedclock과 queue를 통제하지 못하면 생기는 문제외부 의존성 통제개인정보와 보안흔한 실패 패턴