콘텐츠로 이동

테스트 전략 (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 스모크-테스트-대상-기능 참조