[시나공] 테스트 유형 정리 (화이트박스·블랙박스 핵심 총정리)

2026. 3. 4. 14:57Certifications/정보처리기사 실기

1️⃣ 애플리케이션 테스트

✅ 정의

  • 애플리케이션에 잠재되어 있는 결함을 찾아내는 일련의 행위 또는 절차

🔹 목적

  • Validation(확인): 고객 요구사항 만족 여부 확인
  • Verification(검증): 명세대로 기능이 정확히 수행되는지 확인

🎯 포인트

  • "요구사항 만족" → Validation
  • "명세대로 수행" → Verification

✅ 기본 원리 ⭐

🔹 파레토 법칙 (Pareto Principle)

  • 전체 결함의 80%는 코드의 20%에서 발생

🔹 살충제 패러독스 (Pesticide Paradox)

  • 동일한 테스트 케이스를 반복하면 새로운 결함을 발견하기 어려움

🔹 오류-부재의 궤변 (Absence of Errors Fallacy)

  • 결함이 없다고 해서 품질이 높은 것은 아님

🎯 포인트

  • "8:2" = 파레토
  • "동일 테스트 반복 → 결함 발견 어려움" = 살충제 패러독스
  • "오류 없음 ≠ 품질 보장" = 오류-부재의 궤변

2️⃣ 테스트 분류 기준

✅ 프로그램 실행 여부에 따른 테스트 ⭐

구분 설명 종류
정적 테스트
(Static Test)
프로그램을 실행하지 않고 분석
명세서, 소스 코드 검토
워크스루
인스펙션
코드 검사
동적 테스트
(Dynamic Test)
프로그램을 실행하여 오류 발견 블랙박스 테스트
화이트박스 테스트

🔎
실행 X → 정적 테스트
실행 O → 동적 테스트


✅ 테스트 분류 기준

분류 기준 구분 관점 설명
시각에 따른 테스트 검증 (Verification) 개발자 관점 명세대로 구현되었는지 확인
확인 (Validation) 사용자 관점 요구사항 만족 여부 확인
목적에 따른 테스트 회복 (Recovery) - 시스템 장애 후 정상 복구 여부 확인
안전 (Security) - 불법 침입으로부터 보호 가능 여부 확인
강도 (Stress) - 과부하 상황에서 정상 동작 여부 확인
성능 (Performance) - 응답 시간 및 처리량 측정
구조 (Structure) - 내부 논리 경로 및 복잡도 평가
회귀 (Regression) - 수정 후 기존 기능 정상 동작 여부 확인
병행 (Parallel) - 기존 시스템과 신규 시스템에 동일한 데이터를 입력하여 결과를 비교

🎯 포인트

  • 수정 후 영향 확인 = 회귀 테스트
  • 과부하 상황 점검 = 강도 테스트
  • 침입 대비 = 안전 테스트

📌 목적에 따른 테스트 = "회·안·강·성·구·회·병"


3️⃣ 화이트박스 테스트 (White Box Test) ⭐

✅ 정의

  • 원시 코드(소스 코드)를 공개한 상태에서 원시 코드의 논리적 모든 경로를 테스트하도록 케이스를 설계

✅ 특징

  • 모든 경로를 테스트 케이스로 설계
  • 코드 복잡도 측정 가능
  • 내부 구조 분석 가능

📌 화이트박스 테스트
→ "내부 로직·경로 중심", "구조 기반 테스트"


✅ 화이트박스 테스트의 종류

🔹 기초 경로 검사 (Base Path Testing)

  • 테스트 케이스 설계자가 절차적 설계의 논리적 복잡성을 측정할 수 있게 해주는 기법
  • 대표적인 화이트박스 테스트 기법

🔹 제어 구조 검사 (Control Structure Testing)

  • 프로그램의 제어 흐름(조건문, 반복문 등)을 중심으로 테스트 케이스를 설계하는 기법
  • 내부 구조의 흐름을 기준으로 테스트 수행
    • 조건 검사 (Condition Testing)
    • 루프 검사 (Loop Testing)
    • 데이터 흐름 검사 (Data Flow Testing)

🎯 포인트

  • “논리적 복잡성 측정” → 기초 경로 검사
  • “조건/루프/데이터 흐름 중심” → 제어 구조 검사

✅ 화이트박스 테스트의 검증 기준 (Coverage)

검증 기준 의미
문장 검증 기준
(Statement Coverage)
소스 코드의 모든 구문이 1번 이상 수행되도록 테스트 케이스 설계
결정 검증 기준
(Decision Coverage)
= 분기 검증 기준
모든 조건문의 결과가 True / False 각각 1번 이상 수행되도록 설계
조건 검증 기준
(Condition Coverage)
조건문에 포함된 개별 조건식의 결과가 True / False 각각 1번 이상 수행
조건/결정 검증 기준
(Condition/Decision Coverage)
조건 검증 기준 + 결정 검증 기준을 모두 만족
변경 조건/결정 검증 기준
(MC/DC)
각 개별 조건식이 다른 조건과 무관하게
전체 결과에 독립적으로 영향을 주도록 설계
다중 조건 검증 기준
(Multiple Condition Coverage)
조건문에 포함된 모든 개별 조건식의 모든 조합을 고려하여
테스트 케이스 설계


4️⃣ 블랙박스 테스트 (Black Box Test) ⭐

✅ 정의

  • 소프트웨어가 수행할 특정 기능을 알기 위해 각 기능이 완전히 작동되는 것을 입증하는 테스트
  • 기능 테스트(Functional Test) 라고도 함

✅ 특징

  • 사용자 관점
  • 입력과 출력 중심
  • 명세 기반 테스트

📌 블랙박스 테스트
→ "기능 테스트", "명세 기반", "입력/출력 중심"


✅ 블랙박스 테스트의 종류

테스트 기법 설명 시험 키워드
동치 분할 검사
(Equivalence Partitioning)
입력 자료를 유효/무효의 동치 클래스(그룹)로 나누고
각 클래스의 대표값을 선택하여 테스트 케이스 설계
입력을 그룹으로 나눔
경계값 분석
(Boundary Value Analysis)
오류가 경계에서 잘 발생하는 특성을 이용하여
최솟값/최댓값 및 그 주변 값을 집중 테스트
경계에서 오류 발생
원인-효과
그래프 검사

(Cause-Effect Graphing)
입력(원인)과 출력(효과)의 관계를 그래프로 분석하여
효율적인 테스트 케이스 선정
원인-결과 관계 분석
오류 예측 검사
(Error Guessing)
과거 경험이나 직감을 기반으로
오류가 발생할 가능성이 높은 부분을 예측하여 테스트
경험 / 직감 기반
비교 검사
(Comparison Testing)
여러 버전의 프로그램에 동일한 테스트 데이터를 입력하여 동일한 결과가 출력되는지 비교 버전 비교 / 결과 동일성

🎯 포인트

  • “입력을 그룹으로 나눔(동치 클래스)” = 동치 분할
  • “경계에서 오류 확률↑” = 경계값 분석
  • “경험/감각 기반” = 오류 예측
  • “버전 비교” = 비교 검사

구분 화이트박스 (White Box) 블랙박스 (Black Box)
기준 내부 구조 기능
관점 개발자 사용자
분석 대상 소스 코드 요구사항 명세
테스트 방식 경로 / 구조 중심 입력 / 출력 중심

🎯 포인트

  • 내부 구조 → 화이트박스
  • 기능 중심 → 블랙박스

📊 시험 포인트 정리

🔥 1. 정적 vs 동적 테스트 구분 문제

→ "실행 여부" 키워드 확인

🔥 2. 살충제 패러독스 거의 매년 출제

→ 동일 테스트 반복 시 결함 발견 어려움

🔥 3. Verification / Validation 혼동 문제

→ 개발자 관점 vs 사용자 관점 정확히 구분

🔥 4. 화이트박스 vs 블랙박스 정의형 문제

→ 내부 구조 / 기능 중심 구분 암기 필수

🔥 5. 회귀 테스트 개념 출제 빈도 ↑

→ 수정 후 기존 기능 정상 동작 확인


📌 암기 핵심 요약

  • 실행 X → 정적 테스트
  • 실행 O → 동적 테스트
  • 개발자 관점 → Verification
  • 사용자 관점 → Validation
  • 내부 구조 → 화이트박스
  • 기능 중심 → 블랙박스
  • 수정 후 점검 → 회귀 테스트
  • 동일 테스트 반복 → 살충제 패러독스





2025 시나공 퀵이지 정보처리기사 실기 단기완성
(저자: 강윤석, 김용갑, 김우경, 김종일 | 출판사: 길벗)

※ 본 글은 위 교재를 참고하여 학습 목적으로 재정리한 내용입니다.