테스트 전략과 품질 게이트
vitest · pytest · Playwright · testcontainers와 저장소의 수동 CI 실행기로 회귀·완료 조건·복구까지 증명하는 8단계.
- 난이도
- 중급
- 강의
- 8
테스트가 많다고 안전한 것도 아니고, 없어서 빠른 것도 아닙니다. 프로젝트 규모 · 팀 문화 · 사고 비용에 맞는 레이어별 선택이 진짜 설계.
누구를 위한 강좌인가
- "어디서 어떤 테스트를 써야 하지?" 가 늘 고민인 분
- vitest · pytest · Playwright 를 한 프로젝트에 같이 쓰는 방법이 궁금한 분
- CI 에서 "초록 불" 의 신뢰를 높이고 싶은 분
다 끝내면 가능한 것
- 테스트 피라미드 실전 배치 (단위 80% · 통합 15% · E2E 5%)
- vitest +
vi.hoistedmock 패턴 SSOT - pytest + fixture · parametrize
- testcontainers 로 실제 PostgreSQL 과 통합 테스트
- Playwright 매니페스트 자동 생성 + smoke
- 저장소의 수동 CI 실행기와 서비스 범위별 품질 게이트
- 기획 · 디자인 · 개발 · 사용자 · 운영 관점의 완료 증거 매핑
- 부분 실패 · 마이그레이션 · readiness · 롤백을 품질 게이트에 포함
단계 흐름
신뢰도를 쌓는 검증 순서
테스트 피라미드와 언어별 단위 검증으로 작은 계약을 빠르게 확인합니다.
컨테이너 기반 통합 검증과 핵심 E2E로 경계 간 동작을 증명합니다.
CI가 같은 검증을 재현하고 실패를 배포 전에 차단하게 합니다.
공개 smoke와 복구 훈련까지 통과한 증거만 완료로 인정합니다.
위에서 아래로 갈수록 비용도, 신뢰도도 올라갑니다. CI 가 맨 마지막 인 이유 — 그 전까지 모든 레이어가 갖춰져야 게이트의 의미가 있습니다.
단계 구성
- 테스트 피라미드 · 트레이드오프 — 비용 vs 신뢰 · 레이어 결정
- vitest 기본 + mock 패턴 —
vi.hoisted·vi.stubEnv· node vs jsdom - pytest · fixture · parametrize — conftest · async · coverage
- testcontainers — PostgreSQL 실제 컨테이너 + 멱등 시드
- Playwright E2E — 매니페스트 자동 ·
@writePROD skip - 수동 CI 실행기와 품질 게이트 — OS wrapper · Node SSOT · 아티팩트 · 서비스 범위
- 완료 조건을 검증 가능한 증거로 바꾸기 — 다섯 관점 · 계약 · 사용성
- 부분 실패와 복구를 품질 게이트에 넣기 — 멱등 시드 · 점진 마이그레이션 · readiness · rollback
전제 — getting-started + 한 번이라도 테스트를 써본 경험.