기본 콘텐츠로 건너뛰기

라벨이 슬라이스 테스트인 게시물 표시

단위 테스트와 통합 테스트, 무엇을 어디까지 검증해야 할까

단위 테스트와 통합 테스트, 무엇을 어디까지 검증해야 할까 빠른 답 단위 테스트는 한 함수, 클래스, 정책 객체처럼 작은 책임을 빠르게 검증하고 외부 의존성은 보통 테스트 대역으로 분리한다. 통합 테스트는 DB, HTTP API, 파일 시스템, 메시지 브로커처럼 실제 연결 지점이 함께 동작하는지 확인한다. 슬라이스 테스트는 웹 계층이나 저장소 계층처럼 일부 구성만 로드해 단위 테스트보다 현실적이고 전체 통합 테스트보다 가볍게 검증한다. CI에서는 빠른 테스트를 먼저 실행하고, 통합·E2E·스모크 테스트는 변경 위험과 배포 단계에 맞춰 품질 게이트로 나누는 편이 관리하기 쉽다. 목차 한눈에 비교 왜 경계가 헷갈리기 쉬운가 선택 기준 매트릭스 테스트 범위 정하는 흐름 스택 중립 예시로 보는 테스트 경계 슬라이스 테스트를 둘 위치 CI 품질 게이트 나누기 실패 출력으로 원인 좁히기 테스트 대역과 실제 환경의 균형 운영 검증까지 이어지는 테스트 전략 한눈에 비교 검증 범위 단위 테스트는 작은 책임 단위, 슬라이스 테스트는 특정 계층, 통합 테스트는 여러 구성 요소의 연결을 본다. 실행 비용 단위 테스트는 빠르고 자주 돌리기 좋으며, 통합 테스트는 환경 준비와 I/O 때문에 상대적으로 느리다. 실패 원인 단위 테스트는 실패 지점이 좁고, 통합 테스트는 설정, 데이터, 네트워크, 트랜잭션까지 원인 후보가 넓어진다. 의존성 처리 단위 테스트는 대역 객체를 자주 쓰고, 통합 테스트는 실제 DB나 컨테이너, 테스트용 외부 API 서버를 사용한다. 신뢰도 성격 단위 테스트는 로직 회귀를 빠르게 잡고, 통합 테스트는 배포 후 연결 문제를 줄이는 데 도움이 된다. 왜 경계가 헷갈리기 쉬운가 테스트 이름은 단순하지만 실제 코드에서는 경계가 자주 흐려진다. 예를 들어 OrderService 하나만 테스트한다고 해도 그 안에서 재고 조회, 결제 요청, 주문 저장이 모두 일어나면 클래스 하나를 테스트한다는 사실만으로 단위 테스트라고 부르기 어렵다. 테스트가 묻는 질문...