누적된 잠금·승인·증거 체인이 구현과 완료를 반복 차단해 작업 비용을 키웠다. 보안·데이터 손상·명시적 외부 의존성만 차단 조건으로 남기고 로드맵과 스킬의 기본 흐름을 단순화한다.
3.8 KiB
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 형식 충족을 테스트 성공의 선행 조건으로 만들지 않는다.
- 실제 문제가 확인되지 않았는데 예방 목적으로 새 검증 게이트를 추가하지 않는다.