속도가 느릴 때
- 증상
- 대기 시간이 길어 PR 피드백이 늦다.
- 설정
- Jest 병렬 실행, npm 캐시, 변경분 테스트를 검토한다.
- 주의
- 병렬화 후에도 테스트 격리가 깨지지 않아야 한다.
E2E가 불안정할 때
- 증상
- 로컬은 통과하지만 CI에서 간헐 실패한다.
- 설정
- SQLite, Docker Compose, Testcontainers로 실행 환경을 고정한다.
- 주의
- 테스트마다 데이터 초기화 기준을 명확히 둔다.
환경 값이 필요할 때
- 증상
- API 키, DB URL이 테스트 실행에 필요하다.
- 설정
- GitHub Secrets와 테스트 전용 값을 분리한다.
- 주의
- 로그와 아티팩트에 비밀 값이 찍히지 않게 한다.
실패 대응이 늦을 때
- 증상
- 실패 원인과 담당자가 늦게 드러난다.
- 설정
- Slack 알림, coverage artifact, 테스트 리포트를 묶는다.
- 주의
- 알림은 실패 위치와 다음 행동을 포함해야 한다.
코드 품질 기준을 자동화할 때
- 증상
- 테스트는 통과하지만 스타일, 정적 분석, 취약점 기준이 사람 손에 남는다.
- 설정
- ESLint, Prettier, SonarQube 같은 품질 도구를 테스트 앞뒤의 명시적 단계로 둔다.
- 주의
- 품질 단계 실패도 테스트 실패와 같은 병합 차단 신호로 취급한다.
먼저 반복 시간을 줄인다
동시에 실행 환경을 고정한다
마지막에 실패 증거와 알림을 정돈한다