DevOps

테스트의 종류 - 단위.통합테스트 CBT UAT 시스템테스트

IT오이시이 2025. 10. 10. 08:46
728x90

단위 /통합 테스트CBT (Component-Based Testing), UAT (인수 테스트, User Acceptance Testing)

 

 

📌  테스트 종류


종류 대상 주체 목적
단위 테스트 함수/메서드 개발자 기능별 정확성 검증
통합 테스트 모듈 간 연결 QA/개발자 상호작용 및 데이터 흐름 확인
CBT(기능단위) 개별 컴포넌트 개발자
자동화 도구
기능 단위의 정확성 및 안정성 검증
 UI 요소, API, 데이터 처리 모듈 등
시스템 테스트 전체 시스템(개발완료) QA 전체 기능 및 성능 검증
UAT (인수 테스트) 실제 사용자 시나리오 고객/사용자 요구사항 충족 여부 확인

 

소프트웨어 테스트 종류 비교 (옵션 B - 표 형식)

테스트 종류 (Testing Type) 주요 대상 (Focus Area) 주요 주체 (Primary Executor) 핵심 목적 (Core Goal) 수행 단계 (Phase)
단위 테스트
(Unit Testing)
함수, 메서드, 클래스 등 가장 작은 개별 코드 단위 개발자 개별 기능의 정확성 및 논리 검증. 버그를 조기에 발견하여 수정 비용 절감. 개발 초기 (코딩 직후)
통합 테스트
(Integration Testing)
모듈 간의 연결 및 인터페이스. 데이터 흐름. 개발자, QA (품질 보증) 결합된 모듈들의 정상적인 상호작용 및 데이터 흐름 확인 단위 테스트 완료 후
CBT  
(Component-Based Testing)
독립적으로 배포 가능한 개별 컴포넌트 (UI, API 모듈 등) 개발자, 자동화 도구 독립적인 컴포넌트의 기능적 정확성 및 재사용성 확인. 통합 테스트 전후
시스템 테스트
(System Testing)
완성된 전체 시스템 (End-to-End) QA 전문가, 독립 테스트 팀 종합적인 시스템 검증
요구사항 충족 여부
및 성능, 보안, 사용성 등 
통합 테스트 완료 후
UAT  
(User Acceptance Testing)
실제 비즈니스 시나리오 및 사용자 관점의 흐름 고객, 최종 사용자 시스템이 비즈니스 요구사항을 충족하며 실제 사용 환경에서 문제없이 작동하는지 최종 승인. 시스템 테스트 완료 직후 (출시 전 최종 검증)
 
  • 단위 테스트CBT는 작은 범위에서 시작하여 각 부분의 품질을 확보하는 데 중점을 둡니다.
  • 통합 테스트는 부분이 합쳐질 때 발생하는 오류를 찾습니다.
  • 시스템 테스트는 전체 그림이 요구사항에 맞는지 확인합니다.
  • UAT는 실제로 사용할 고객의 최종 만족도를 확인하는 마지막 관문입니다.

 

🧪 단위 테스트 (Unit Testing)

정의: 단위 테스트는 소프트웨어의 가장 작은 단위인 함수, 메서드, 클래스 등 개별 모듈정상적으로 작동하는지 확인하는 테스트입니다. 개발자가 직접 작성하며, 자동화된 테스트 코드로 수행되는 경우가 많습니다.

🎯 목적

  • 코드의 기능별 정확성 검증
  • 버그를 초기에 발견하고 수정
  • 리팩토링이나 기능 추가 시 기존 기능이 깨지지 않도록 보장

🧩 특징

  • 테스트 범위가 작고 명확함
  • 외부 시스템(DB, 네트워크 등)과 격리된 상태에서 수행
  • 빠르고 반복적으로 실행 가능
  • 일반적으로 테스트 프레임워크를 사용 (예: JUnit, pytest, NUnit 등)

 

 

🧪 통합 테스트 (Integration Testing)

정의: 통합 테스트는 여러 개의 모듈이나 컴포넌트를 조합해서 테스트하는 단계입니다. 각 모듈이 단위 테스트를 통과한 후, 이들이 서로 정상적으로 상호작용하는지 확인하는 것이 목적입니다.

주요 특징:

  • 모듈 간 데이터 흐름인터페이스를 검증
  • 오류가 발생하기 쉬운 경계 영역을 집중적으로 테스트
  • 예: 로그인 모듈과 사용자 정보 조회 모듈이 함께 작동하는지 확인

종류:

  • Top-down: 상위 모듈부터 하위 모듈로 통합
  • Bottom-up: 하위 모듈부터 상위 모듈로 통합
  • Big Bang: 모든 모듈을 한 번에 통합 후 테스트

 

 

 

🖥️ 시스템 테스트 (System Testing)

정의: 시스템 테스트는 개발된 소프트웨어 전체를 대상으로 하는 테스트로, 요구사항에 따라 전체 시스템이 제대로 작동하는지 확인하는 단계입니다. 이는 통합 테스트 이후에 수행되며, 실제 운영 환경과 유사한 조건에서 테스트합니다.

주요 특징:

  • 전체 시스템을 엔드 투 엔드(End-to-End)로 테스트
  • 기능, 성능, 보안, 사용성 등 다양한 측면을 검증
  • 비즈니스 요구사항이 충족되는지 확인
  • QA 팀 또는 테스트 전문가가 수행

예시:

쇼핑몰 웹사이트에서 회원가입, 상품 검색, 장바구니, 결제까지 모든 기능이 정상적으로 작동하는지 확인

 

 

🧩 CBT (Component-Based Testing)

정의: CBT는 시스템을 구성하는 각 컴포넌트 단위로 테스트하는 방식입니다. 컴포넌트란 독립적으로 개발되고 배포 가능한 기능 단위로, UI, API, 데이터 처리 모듈 등이 될 수 있습니다.

주요 특징:

  • 각 컴포넌트를 개별적으로 테스트하여 품질 확보
  • 컴포넌트 간의 의존성을 최소화하고 재사용성을 높임
  • 예: 결제 컴포넌트만 따로 테스트하여 오류 여부 확인

장점:

  • 유지보수 용이
  • 테스트 자동화에 적합
  • 빠른 피드백 제공

 

 

✅ UAT (사용자 인수 테스트, User Acceptance Testing)

정의: UAT는 실제 사용자 또는 고객이 시스템을 테스트하여 요구사항이 제대로 반영되었는지 확인하는 마지막 테스트 단계입니다. 개발과 테스트가 완료된 후, 제품이 실제 사용 환경에서 문제 없이 작동하는지를 검증합니다.

🎯 목적

  • 시스템이 비즈니스 요구사항을 충족하는지 확인
  • 사용자 관점에서 기능, 성능, 사용성을 검토
  • 제품 출시 전 최종 승인을 받기 위한 테스트

🧩 특징

  • 실제 사용자 또는 고객이 수행
  • 테스트 시나리오는 실제 업무 흐름 기반
  • 개발자나 QA가 아닌 비즈니스 담당자가 주체
  • 오류 발견 시, 수정 후 다시 테스트

🛠️ 예시

예: 쇼핑몰 웹사이트에서 고객이 상품을 검색하고 결제까지 진행하는 시나리오를 테스트하여, 모든 기능이 정상적으로 작동하는지 확인

📋 UAT 절차

  1. 요구사항 분석 및 테스트 계획 수립
  2. 테스트 시나리오 및 케이스 작성
  3. 테스트 환경 구축
  4. 사용자 테스트 수행
  5. 결과 분석 및 승인 여부 결정

UAT는 제품이 실제 사용자에게 적합한지를 판단하는 중요한 단계

 

 

728x90
반응형