[TEST] 테스트 유형 3가지 비교: 단위 테스트, 통합 테스트, 인수 테스트

728x90
반응형

테스트 유형 3가지: 단위 테스트 vs 통합 테스트 vs 인수 테스트

1. 단위 테스트 (Unit Test)

단위 테스트는 시스템의 가장 작은 구성 요소인 함수나 메서드가 독립적으로 올바르게 작동하는지를 확인하는 데 집중한다. 이를 통해 코드의 세부적인 오류를 조기에 발견하고, 변경이 다른 부분에 미치는 영향을 최소화하여 개발 과정에서 안정성을 확보할 수 있다.

  • 목적: 개별 모듈이나 기능의 정확성을 검증한다.
  • 특징:
    • 특정 함수나 메서드 단위로 테스트
    • 인터페이스, 외부적 I/O, 자료구조, 독립적 기초 경로, 오류처리 경로, 경계 조건 등을 검사한다.
    • 외부 의존성을 최소화(Mock 사용)
    • 빠른 실행 속도
    • 소프트웨어 내부 코드에 관련한 지식을 반드시 알고 있어야 하는 화이트박스 테스트
    • TDD (Test Driven Development)
  • 예시: 숫자 합산 함수가 올바르게 동작하는지 테스트
  • 발견 가능 오류: 알고리즘의 원치 않는 결과, 탈출구가 없는 반복문, 틀린 계산 수식 등

[Jenkins] 젠킨스 Pipeline 사용 실습: 스크립트, Jenkinsfile, 단위 테스트, 코드 커버리지

 

[Jenkins] 젠킨스 Pipeline 사용 실습: 스크립트, Jenkinsfile, 단위 테스트, 코드 커버리지

[Jenkins] 젠킨스 파이프라인 이해하기: 구조, 작업, 지시어지난 글에 이어서, 이번 시간에는 Pipeline을 스크립트로 작성하는 방법과 Jenkinsfile을 프로젝트에 포함시키는 방법으로 사용하는 실습에

ynslee627.tistory.com


2. 통합 테스트 (Integration Test)

통합 테스트는 개별 모듈이 아닌, 서로 연관된 모듈들이 함께 동작할 때 발생할 수 있는 문제를 발견하는 데 중점을 둔다. 이는 모듈 간 데이터 흐름, 외부 시스템과의 통신, 그리고 실제 운영 환경에서의 상호작용을 확인함으로써, 시스템 전체의 신뢰성과 안정성을 보장하기 위해 중요하다.

  • 목적: 여러 모듈이 함께 작동할 때 올바르게 동작하는지 검증한다.
  • 특징:
    • 데이터베이스, 외부 API 등 실제 환경과의 상호작용 테스트
    • 단위 테스트보다 실행 속도가 느리다.
    • 단점) 어디서 에러가 발생했는지 확인하기 쉽지 않아 유지보수하기 힘들다.
    • @SpringBootTest
  • 예시: 서비스 계층이 데이터베이스와 정상적으로 연동되는지 테스트

3. 인수 테스트 (Acceptance Test)

실업무를 가지고 사용자가 직접 테스트 하는 것으로, 개발자에 의해 제어되지 않는 상태에서 테스트가 이루어진다. 발견된 오류와 사용상의 문제는 개발자에게 주기적으로 보고된다.

  • 목적: 시스템이 사용자의 요구사항을 충족하는지 검증한다.
  • 특징:
    • 사용자 관점에서 전체 워크플로우 테스트
    • 실제 환경에서 테스트가 이루어진다.
    • 가장 느리지만 최종 제품의 품질 보증에 중요하다.
  • 예시: 사용자가 두 숫자를 더하는 기능을 요청했을 때, 올바른 결과가 반환되는지 검증
  • 발견된 오류: 실사용 중의 문제점과 사용자 경험 개선 사항

인수테스트의 개념과 Cucumber를 활용한 자동화 실습

 

인수테스트의 개념과 Cucumber를 활용한 자동화 실습

인수 테스트란?인수 테스트는 사용자의 요구 사항을 기반으로 시스템이 제대로 동작하는지 검증하는 과정이다. 웹 애플리케이션에서는 REST 웹 서비스의 블랙박스 테스트를 통해 이를 확인할 수

ynslee627.tistory.com

 


📝 차이점 요약

구분 단위 테스트 통합 테스트 인수 테스트
대상 개별 모듈, 함수 여러 모듈 간 상호작용 전체 시스템 (사용자 관점)
목적 기능 정확성 검증 모듈 간 통합 검증 사용자 요구사항 충족 여부 검증
속도 빠름 중간 느림
의존성 외부 의존성 없음(Mock 사용) 외부 시스템 포함 실제 환경
누구를 위한 테스트? 개발자 개발자, QA 사용자, QA

 


 

참고) https://m.blog.naver.com/jword_/223368297665

https://velog.io/@daoh98/Test-통합테스트-단위테스트-인수테스트

 

 

 

728x90
반응형