테스트 전략 (Spring)¶
"개발 30%, 테스트 70%." 테스트 코드는 비공식 문서 역할 + 배포/리팩토링 안정성. 커버리지 100%보다 핵심 로직 집중.
1. 어디에 집중¶
- 주요 비즈니스 로직 (예: 주문 생성–결제)
- 자주 변경되는 유지보수 잦은 코드
- 외부 시스템 통합 (통신 실패/예외 포함)
2. 방법론¶
- TDD (Red-Green-Refactor): 개발자 관점, 유닛 중심. 테스트 우선 → 실패 → 구현 → 통과
- BDD (Given-When-Then): 비즈니스 요구 중심, 통합/E2E 검증
3. 테스트 유형 / 툴¶
| 유형 | 대상 | 툴 |
|---|---|---|
| 유닛 | 단위 로직 | JUnit, Mockito (Spock 대안) |
| 통합 | 내부 기능 동작 | @SpringBootTest/@MockBean, TestContainers(실 Docker) |
| 계약 | API 통신 일관성 | Spring Cloud Contract, Pact |
| E2E | 시나리오 전체 | Cypress, Selenium |
| 성능 | 부하·응답시간 | JMeter, Gatling, nGrinder |
4. 성능 테스트 (JMeter 요지)¶
- Thread Group: Threads(가상 사용자), Ramp-Up(시작 분산 시간), Loop Count(반복)
- Sampler: 실제 HTTP/JDBC 요청 정의
5. 관련¶
- teams/engineering/guides/cicd — CI에서
build -x test(빌드 단계 분리) - 스모크 테스트 대상은 raw
스모크-테스트-대상-기능참조