목차
1. 테스트 종류
| 테스트 종류 | 주요 목적 | 테스트 범위 | 특징 |
| 단위 테스트 | 작은 단위(메서드, 클래스)의 기능 검증 | 매우 좁음 | 빠르고 가볍다 |
| 슬라이스 테스트 | 특정 계층(예: Controller, Repository)만 검증 | 중간 | Spring 제공 지원 활용 |
| 통합 테스트 | 여러 컴포넌트 간의 연동 검증 | 넓음 | 실제 환경 유사 |
2. 단위 테스트(Unit Test)
: 보통 메서드 단위로 작성
1) F.I.R.S.T 원칙
- Fast(빠르게)
- Independent(독립적으로) : 어떤 테스트 케이스를 먼저 실행시켜도 실행되는 순서와 상관없이 정상적인 실행이 보장되어야 함
- Repeatable(반복 가능하도록) : 어떤 환경에서도 반복해서 실행이 가능해야 함
- Self-validating(셀프 검증이 되도록) : 성공/실패를 보여야 함
- Timely(시기적절하게) : 테스트하려는 기능 구현을 하기 직전에 작성, 구현하고자 하는 기능을 단계적으로 조금씩 업그레이드하면서 그때 그때 테스트 케이스 역시 단계적으로 업그레이드하는 방식이 더 나음
3. 슬라이스 테스트(Slice Test)
- 애플리케이션을 특정 계층으로 쪼개어서 하는 테스트
- Mock(가짜) 객체를 사용하여 계층별로 끊어서 테스트할 수 있기 때문에 테스트 범위를 좁히는 것이 가능
항목 내용 테스트 범위 특정 계층 (Controller, Repository 등) 외부 의존성 없음 (@MockBean 사용) 속도 빠름 사용 목적 계층 단위 검증
4. 통합 테스트(Integration Test)
: 개발자 또는 개발 팀이 주체가 되어 하는 테스트
| 항목 | 내용 |
| 테스트 범위 | 애플리케이션 전체 계층 |
| 외부 의존성 | 존재 (DB, API 등) |
| 속도 | 비교적 느림 |
| 사용 목적 | 전체 흐름 검증 |
5. 기능 테스트
- 애플리케이션을 사용하는 사용자 입장에서 애플리케이션이 제공하는 기능이 올바르게 동작하는지 테스트
- 일반적으로 테스트 전문 부서(QA 부서) 담당
728x90
'Software Engineering > Test & Quality' 카테고리의 다른 글
| [TDD] 4. Mockito (0) | 2025.08.19 |
|---|---|
| [TDD] 3. Spring Data JPA: 데이터 액세스 계층 테스트 (1) | 2025.08.18 |
| [TDD] 2. JUnit 5 (2) | 2025.08.18 |
| 상황에 맞는 예외 정리 (4) | 2025.08.14 |
| [TDD] 1-2. Spring Test 모듈 (2) | 2025.08.13 |