Software Engineering/Test & Quality

[TDD] 1-1. Spring Test

foreverWon 2025. 8. 13. 11:43
목차

    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