4.8 KiB
4.8 KiB
testing
목적 / 책임
작업 완료 후 어떤 테스트와 E2E smoke 검증을 거쳐야 하는지 정리한다. 테스트 파일을 바꿨는지가 아니라, 변경 작업이 어떤 사용자 실행 파이프라인에 닿았는지를 기준으로 검증 범위를 정한다.
포함 경로
Makefile— 공식 test target과 향후 E2E smoke target을 선언하는 위치이다.bin/edge.sh— 사용자가 edge console/server를 실행하는 shell entrypoint이며 E2E smoke의 검증 대상이다.bin/node.sh— 사용자가 node를 edge에 연결하는 shell entrypoint이며 E2E smoke의 검증 대상이다.
제외 경로
apps/node/— node 실행 구현의 소유자는 node 도메인이다. testing 도메인은 작업 후 검증 기준만 정의한다.apps/edge/— edge 실행 구현의 소유자는 edge 도메인이다. testing 도메인은 작업 후 검증 기준만 정의한다.packages/및proto/— 공통 계약의 소유자는 platform-common 도메인이다. testing 도메인은 해당 변경 후 필요한 검증 기준만 정의한다.
주요 구성 요소
- 대상 패키지 테스트 — 변경한 패키지와 인접한 패키지의 빠른 회귀 검증이다.
go test ./...— 저장소 전체 Go 테스트 회귀 검증이다.bin/edge.sh+bin/node.shE2E smoke — 사용자가 실행하는 entrypoint를 통해 edge-node 등록, console 입력, adapter 실행, event/message 출력을 빠르게 확인하는 검증이다.- full-cycle 실제 구동 — 비효율적이어도 관련 사용자 명령과 실행 cycle을 한 번씩 실제 entrypoint로 통과시키는 검증이다.
- 실제 외부 CLI 검증 —
claude,gemini,codex,opencode처럼 외부 CLI 설치와 계정/환경이 필요한 기준 profile을 실제 호출하는 검증이다.
유지할 패턴
- 테스트는 테스트 파일 변경 여부가 아니라 작업 영향 범위로 결정한다.
- 사용자 실행 파이프라인에 닿는 작업을 한 경우, 작업 완료 후 일반 Go 테스트,
bin/edge.sh+bin/node.sh기반 E2E smoke, full-cycle 실제 구동 흐름을 반드시 검증한다. - 사용자 실행 파이프라인에는
bin/**,apps/*/cmd/**,apps/*/internal/bootstrap/**, edge-node transport/service/registry, adapter 실행/stream/cancel/status 경로,configs/**,packages/config/**, 관련 protobuf 계약 변경이 포함된다. - 기본 E2E smoke는 mock adapter와 임시 설정/포트를 사용해 외부 CLI 의존성 없이 수행한다.
- E2E smoke에서는 최소한 node 등록,
/nodes확인, console 메시지 전송, delta/message 출력, complete event를 확인한다. - full-cycle 실제 구동에서는 startup/register, foreground run, session 변경, background run, terminate-session, status, 관련 routing/cancel/timeout/persistent session cycle을 실제 entrypoint로 한 번씩 통과시킨다.
- 상세 수행 절차와 기능별 체크리스트는
agent-ops/skills/project/e2e-smoke/SKILL.md를 따른다. make test-e2e같은 고정 명령이 생기면 그 명령을 우선 사용한다. 아직 고정 명령이 없으면 동일한 내용을 수동 smoke 절차로 검증하거나, 실행하지 못한 이유를 최종 보고에 명시한다.- 풀테스트에서는 실제 외부 CLI profile 검증을 필수로 수행한다. 환경, 계정, provider, 원격 endpoint 문제로 호출할 수 없거나 실패한 profile은 누락하지 말고 profile별 실패 또는 blocker로 보고한다.
- 작업 최종 보고에는 실행한 테스트 명령, E2E smoke 수행 여부, full-cycle 실제 구동 수행 여부를 명시한다. 수행하지 못한 필수 검증은 이유와 남은 위험을 함께 적는다.
다른 도메인과의 경계
- node: node는 adapter 실행과 edge 연결 구현을 소유한다. testing은 node 변경 후 어떤 검증을 거칠지 정한다.
- edge: edge는 registry, service, transport, console 구현을 소유한다. testing은 edge 변경 후 사용자 실행 흐름을 어떻게 확인할지 정한다.
- platform-common: platform-common은 config/proto 계약을 소유한다. testing은 해당 계약 변경이 edge-node 실행 흐름에 닿을 때 필요한 검증을 정한다.
금지 사항
- 사용자 실행 파이프라인에 닿는 변경을 하고 유닛/패키지 테스트만으로 완료 처리하지 않는다.
- 관련 작업 후 full-cycle 실제 구동을 비용이 크다는 이유만으로 생략하지 않는다.
- 기본 E2E smoke를 외부 CLI 설치, 로그인, 네트워크 계정 상태에 의존하게 만들지 않는다.
- E2E smoke를 위해 기본
configs/*.yaml을 임시값으로 오염시키지 않는다. 임시 설정 파일이나 환경 변수 override를 사용한다. - 필수 검증을 실행하지 못했는데 조용히 생략하지 않는다.