테스트 / 자동화

통합 테스트(Integration Test)

통합 테스트는 각각 따로 만든 코드나 서비스가 서로 연결됐을 때 올바르게 데이터를 주고받는지 확인합니다.

쉬운 설명

통합 테스트는 각각 따로 만든 코드나 서비스가 서로 연결됐을 때 올바르게 데이터를 주고받는지 확인합니다.

배경과 쓰임까지 이해하기

조금 더 자세히

통합 테스트(Integration Test)는 따로 만든 여러 코드나 서비스가 서로 연결됐을 때 잘 작동하는지 확인하는 테스트입니다. 예를 들어 회원가입 API가 입력을 검사하고 데이터베이스에 회원을 저장한 뒤 올바른 응답을 돌려주는지 함께 검증합니다.

작은 함수 하나를 따로 보는 단위 테스트보다 범위가 넓고, 실제 사용자 흐름 전체를 실행하는 E2E 테스트보다는 보통 범위가 좁습니다. 한마디로, 통합 테스트는 시스템의 연결 부위가 제대로 맞물리는지 확인하는 테스트입니다.

실제로는 이렇게 만나요

회원 생성 API를 호출했을 때 입력 검증, 데이터베이스 저장, 중복 이메일 오류 응답이 함께 올바르게 동작하는지 확인합니다.

  • 이런 거 할 때 나와요 함수들이 각각 통과해도 요청 형식, 데이터 스키마, 트랜잭션, 인증 처리처럼 연결 지점에서 오류가 발생할 수 있습니다.
  • 이렇게 생겼어요 통합 테스트(Integration Test)은(는) Unit Test, E2E Test, API 같은 주변 개념과 함께 문서, 설정 화면, 오류 메시지에서 자주 보입니다.
  • 나오는 화면 예시 테스트 / 자동화 작업을 하다가 Unit Test, E2E Test, API를 확인하는 화면

단위 테스트와 무엇이 다른가요?

단위 테스트는 작은 코드 하나를 격리해 검사하고, 통합 테스트는 여러 단위와 실제 또는 대체된 데이터베이스·API의 연결을 함께 검사합니다.

헷갈리기 쉬운 점

실제 외부 서비스에 무분별하게 연결하면 느리고 불안정하며 비용이 생길 수 있습니다. 무엇을 실제로 연결하고 무엇을 대체할지 테스트 목적에 맞게 정해야 합니다.

왜 알아두면 좋을까요?

함수들이 각각 통과해도 요청 형식, 데이터 스키마, 트랜잭션, 인증 처리처럼 연결 지점에서 오류가 발생할 수 있습니다.

Checklist

실제로 볼 때 확인할 것

  1. 01

    검증할 구성 요소의 경계를 정한다

  2. 02

    데이터베이스와 외부 API의 사용 방식을 정한다

  3. 03

    테스트 전후 데이터를 초기화한다

  4. 04

    실패한 연결 지점을 로그로 확인한다

관계 지도

통합 테스트(Integration Test) 중심으로 관련 개념의 정의와 관계를 한눈에 정리했습니다.
통합 테스트(Integration Test)의 정의와 관련 개념 간 관계를 설명한 계층형 그래프