통합 테스트

0

정보처리기사

목록 보기
94/100

📌 통합 테스트(Integration Testing) 정리 🚀

소프트웨어 개발 단계에서 단위 테스트(Unit Test)가 완료된 후,
모듈을 결합하여 오류를 찾는 과정통합 테스트(Integration Testing)라고 합니다.


1️⃣ 통합 테스트란?

📌 목적:

  • 단위 테스트에서 검증된 개별 모듈들이 통합되었을 때 정상적으로 동작하는지 검증
  • 모듈 간 인터페이스 오류 또는 데이터 흐름 오류 탐색
  • 시스템 전체가 하나의 일관된 구조로 동작하는지 확인

📌 테스트 방식:

  • 단순히 개별 모듈의 오류를 찾는 것이 아니라 모듈 간의 상호작용을 검증
  • 데이터가 올바르게 전달되는지, 기능이 연속적으로 수행되는지 확인

📌 주요 오류 유형:
✔️ 인터페이스 오류 → 모듈 간 데이터 전달 문제
✔️ 데이터 흐름 오류 → 입력값과 출력값의 불일치
✔️ 의존성 오류 → 한 모듈이 다른 모듈의 실행에 영향을 주는 문제


2️⃣ 통합 테스트의 유형

📌 ① 비점진적 통합(Big Bang 방식)

  • 모든 모듈을 한꺼번에 통합하여 테스트
  • 빠르게 테스트 가능하지만, 오류 발생 시 원인을 찾기 어려움
  • 일반적으로 소규모 프로그램에서 사용
  • 대표적인 기법: 빅뱅(Bang Bang) 통합 테스트

📌 ② 점진적 통합(Incremental 방식)

  • 하나씩 모듈을 추가하며 통합 테스트를 진행
  • 오류 발견이 쉽고, 디버깅이 용이
  • 상향식(하위 모듈부터), 하향식(상위 모듈부터), 혼합 방식 존재

3️⃣ 점진적 통합 테스트 방법

📌 ① 하향식 통합 테스트(Top-Down Integration Testing)

  • 상위 모듈에서 하위 모듈로 진행
  • 모듈 간 계층 구조를 따름
  • Stub(스텁) 사용 → 하위 모듈이 아직 개발되지 않았을 때 가상의 기능을 대신 수행
  • 테스트 방식:
    • 깊이 우선(Depth-First): 하나의 경로를 끝까지 내려가면서 테스트
    • 너비 우선(Breadth-First): 같은 레벨의 모듈을 먼저 테스트

📌 ② 상향식 통합 테스트(Bottom-Up Integration Testing)

  • 하위 모듈에서 상위 모듈로 진행
  • 먼저 개별 모듈을 결합한 후, 차츰 상위 모듈과 통합
  • Driver(드라이버) 사용 → 상위 모듈이 아직 개발되지 않았을 때 가상의 기능을 대신 수행
  • 하위 기능이 먼저 테스트되므로 오류를 조기에 발견 가능

📌 ③ 혼합식(샌드위치) 통합 테스트(Hybrid Integration Testing)

  • 상향식 + 하향식 통합 방식 병행
  • 중간 모듈을 기준으로 상향식 & 하향식 방식 결합
  • Stub(스텁)과 Driver(드라이버)를 함께 사용
  • 대규모 시스템 개발에 적합

4️⃣ 통합 테스트 절차

✔️ Step 1 → 개별 모듈을 통합할 방법 결정 (하향식, 상향식, 혼합식)
✔️ Step 2 → Stub(스텁) 또는 Driver(드라이버) 사용 여부 결정
✔️ Step 3 → 테스트 케이스 설계 및 실행
✔️ Step 4 → 오류 발생 시 수정 및 재테스트(회귀 테스트)


5️⃣ 통합 테스트 관련 개념

📌 Stub(스텁)

  • 하위 모듈이 아직 개발되지 않았을 때, 가상의 모듈을 만들어 기능을 대신 수행
  • 하향식 테스트(Top-Down)에서 사용

📌 Driver(드라이버)

  • 상위 모듈이 아직 개발되지 않았을 때, 가상의 모듈을 만들어 데이터 호출 역할 수행
  • 상향식 테스트(Bottom-Up)에서 사용

📌 회귀 테스트(Regression Testing)

  • 새로운 기능 추가 또는 기존 코드 수정 후, 기존 기능에 문제가 없는지 검증
  • 모듈 간의 의존성이 높은 경우 필수 수행

6️⃣ 핵심 요약

1️⃣ 통합 테스트는 모듈 간 상호작용을 검증하는 과정
2️⃣ 비점진적(빅뱅 방식) vs 점진적(상향식, 하향식, 혼합식) 방식 존재
3️⃣ 하향식 통합 → Stub(스텁) 사용
4️⃣ 상향식 통합 → Driver(드라이버) 사용
5️⃣ 샌드위치(혼합식) → 상향 & 하향 결합, 대규모 시스템에 적합
6️⃣ 회귀 테스트(Regression Test)는 오류 수정 후 필수 수행

📌 시험 대비

  • Stub vs Driver 개념을 확실히 이해
  • 하향식 & 상향식 차이점 구별
  • 혼합식(샌드위치) 테스트의 장점 숙지
  • 회귀 테스트의 역할과 중요성 이해

테스트 문제 예시

1. 하향식 통합 테스트에서 사용되는 것은?
👉 Stub(스텁)

2. 통합 테스트에서 최적의 테스트 방식을 지원하는 것은?
👉 혼합식(샌드위치) 테스트

3. 모듈 간의 결합을 진행할 때 가장 오류 발견이 쉬운 방식은?
👉 점진적 통합 테스트 (특히 하향식/상향식 방식)

4. 코드 수정 후 기존 기능의 정상 동작을 확인하는 테스트는?
👉 회귀 테스트(Regression Testing)


이제 통합 테스트의 개념과 특징을 확실히 정리할 수 있겠죠? 🚀
시험 대비를 위해 개념을 정확히 숙지하고, 기출문제 유형을 연습하면 도움이 될 거예요!
💡

0개의 댓글