iop/agent-ops/rules/project/domain/testing/rules.md
toki 6c52e7b56f docs(agent-ops): 검증 게이트를 최소화한다
누적된 잠금·승인·증거 체인이 구현과 완료를 반복 차단해 작업 비용을 키웠다. 보안·데이터 손상·명시적 외부 의존성만 차단 조건으로 남기고 로드맵과 스킬의 기본 흐름을 단순화한다.
2026-08-15 16:54:00 +09:00

3.8 KiB

domain last_rule_review_commit last_rule_updated_at
testing 790dd69ceb 2026-08-15

testing

목적 / 책임

최우선 방향은 검증 게이트 최소화다. 변경 범위에 맞는 가장 작은 회귀 검증과 사용자가 요청한 실행 검증만 제공한다. 기존 검증 게이트도 제거·병합하며, 테스트를 일반 작업의 구현·완료 게이트로 사용하지 않는다.

포함 경로

  • Makefile — 공식 빌드·테스트 진입점이다.
  • scripts/dev/ — repo 내부 개발 진단 helper다.
  • scripts/e2e-*.sh — 입력 표면과 런타임 경로의 선택적 smoke다.
  • scripts/fixtures/ — E2E fixture다.
  • scripts/inventory-query/ — 제한된 환경 inventory 조회 helper다.
  • scripts/readability_* — 선택적 가독성 audit와 기준 데이터다.
  • cmd/iop-provider-smoke/ — 외부 provider lifecycle smoke command다.
  • docker-compose.yml — local dev stack 조립 표면이다.

제외 경로

  • apps/** — 각 앱 도메인이 구현과 단위 테스트를 소유한다.
  • packages/**, proto/** — platform-common 또는 client 도메인이 구현과 단위 테스트를 소유한다.

주요 구성 요소

  • 대상 패키지 테스트 — 기본 검증이다.
  • 저장소 전체 테스트 — 공통 계약이나 여러 패키지에 영향을 주는 변경에서만 사용한다.
  • mock smoke — 실제 외부 의존성 없이 사용자 경로의 최소 생존을 확인한다.
  • live/full-cycle 검증 — 사용자가 요청했거나 외부 환경에서만 확인 가능한 변경에 한해 수행한다.
  • readability audit — 사용자가 요청하거나 관련 정책을 변경할 때만 수행한다.

유지할 패턴

  • 기본값은 변경한 패키지나 컴포넌트의 가장 작은 관련 테스트다.
  • 여러 패키지의 공통 계약을 변경한 경우에만 go test ./... 또는 대응하는 전체 client test로 넓힌다.
  • E2E, live provider, 실제 외부 CLI, full-cycle, field bootstrap은 서로 대체 관계를 강제하지 않는다. 변경 위험이나 사용자 요청에 맞는 하나를 선택한다.
  • smoke 성공을 모든 작업의 완료 조건으로 만들지 않는다. 반대로 smoke가 필요한 작업에서는 관찰한 사용자-visible 결과를 간단히 기록한다.
  • 외부 endpoint, 계정, provider 또는 host가 없어 실행하지 못한 검증은 blocker가 아니라 미실행 검증과 남은 위험으로 보고한다. 단, 배포·외부 쓰기 자체가 요청 결과인 경우에는 해당 실행 실패를 완료로 보고하지 않는다.
  • secret, token, credential, private endpoint 원문은 출력이나 evidence에 남기지 않는다.
  • task-loop simulation은 실제 provider process나 네트워크를 호출하지 않고 fake seam을 사용한다.
  • bootstrap/install UX를 직접 변경한 경우에만 대상 OS의 한 줄 기본 경로를 확인한다.
  • 최종 보고에는 실제 실행한 테스트와 실행하지 않은 위험 관련 테스트만 적는다. 고정된 전체 검증 체크리스트를 반복하지 않는다.

다른 도메인과의 경계

  • node/edge/control-plane/client/platform-common: 각 도메인이 구현과 단위 테스트를 소유한다. testing은 공통 진입점과 선택적 통합 검증만 소유한다.
  • agent-test: 환경별 값과 secret-safe 실행 방법만 제공한다. 테스트 선택 정책은 이 문서가 소유한다.

금지 사항

  • 작은 변경에 전체 테스트, E2E, live provider, full-cycle을 일괄 강제하지 않는다.
  • 문서·plan·review·evidence 형식 충족을 테스트 성공의 선행 조건으로 만들지 않는다.
  • 실제 문제가 확인되지 않았는데 예방 목적으로 새 검증 게이트를 추가하지 않는다.