핵심 짚어보기
관점의 차이: 내부 코드를 보지 않는 블랙박스 vs 제어 흐름을 보는 화이트박스
블랙박스 테스트(Black-Box Test, 명세 기반 테스트)는 프로그램을 속이 보이지 않는 검은 상자로 보고, 요구사항 명세서에 정의된 입력을 넣었을 때 기대한 출력이 나오는지만 확인합니다.
화이트박스 테스트(White-Box Test, 구조 기반 테스트)는 소스 코드의 내부 논리 구조(조건문, 반복문, 제어 흐름 그래프)를 열어 보고, 작성된 코드 경로가 빠짐없이 실행되는지 검증합니다.
블랙박스 핵심 기법: 동등 분할·경곗값 분석·원인-효과 그래프
동등 분할(Equivalence Partitioning)은 입력값의 범위를 유사한 결과를 내는 유효 구간과 무효 구간으로 나눈 뒤 각 구간에서 대표값을 하나씩 뽑는 기법입니다.
경곗값 분석(Boundary Value Analysis)은 오류가 구간의 한가운데보다 경계(최솟값·최댓값 바로 안팎)에서 집중적으로 발생한다는 점에 착안한 기법입니다. 예를 들어 1 이상 100 이하가 유효 입력이면 0, 1, 2와 99, 100, 101을 시험값으로 고릅니다.
화이트박스 핵심 기준: 문장(Statement) vs 분기(Branch) vs 조건(Condition) 커버리지
문장 검증 기준(Statement Coverage)은 코드 내의 모든 실행 문장이 최소 한 번씩 실행되도록 테스트 케이스를 구성합니다. 하지만 if (a > 0 && b > 0) 문이 참일 때만 한 번 실행되어도 문장 자체는 실행된 것으로 집계되는 한계가 있습니다.
분기 검증 기준(Branch/Decision Coverage)은 조건문 전체의 결과가 참(True)인 간선과 거짓(False)인 간선을 모두 최소 한 번씩 거치게 하며, 조건 검증 기준(Condition Coverage)은 복합 조건식 내부의 개별 하위 조건(a > 0, b > 0)이 각각 참과 거짓을 모두 갖도록 검증합니다.
통합 테스트 방향과 대역: 하향식(Stub) vs 상향식(Driver)
단위 테스트를 마친 모듈들을 결합하는 통합 테스트(Integration Test)는 위에서 아래로 붙이는 하향식(Top-Down)과 아래에서 위로 붙이는 상향식(Bottom-Up)으로 나뉩니다.
하향식 통합에서는 상위 제어 모듈이 이미 있고 하위 피호출 모듈이 미완성이므로, 아래쪽 빈자리에 껍데기 응답만 돌려주는 테스트 스텁(Test Stub)을 둡니다. 반대로 상향식 통합에서는 하위 모듈이 먼저 준비되고 이를 호출해 줄 상위 모듈이 없으므로, 위에서 데이터를 넘겨 호출해 주는 테스트 드라이버(Test Driver)를 작성합니다.
한눈에 정리
테스트 관점·기법·통합 단계 한눈에 비교
| 구분 기준 | 유형 A | 유형 B | 핵심 판별 키워드 |
|---|---|---|---|
| 내부 코드 확인 여부 | 블랙박스 테스트 (명세 기반) | 화이트박스 테스트 (구조 기반) | 요구사항·입출력(블랙) vs 소스코드·경로(화이트) |
| 대표 테스트 기법 | 동등 분할 · 경곗값 분석 · 원인-효과 | 기초 경로 · 문장/분기/조건 커버리지 | 구간 대표값·경계(블랙) vs 참/거짓 분기(화이트) |
| 통합 테스트 방향 | 하향식 통합 (Top-Down) | 상향식 통합 (Bottom-Up) | 메인 제어 모듈부터(하향) vs 하위 클러스터부터(상향) |
| 미구현 대체 모듈 | 테스트 스텁 (Test Stub) | 테스트 드라이버 (Test Driver) | 하위 피호출 대역(Stub) vs 상위 호출자 대역(Driver) |
직접 풀어보기
예제로 확인하기
01경곗값 분석으로 테스트 입력값 고르기
장바구니 주문 수량 입력창은 '1개 이상 10개 이하의 정수'만 허용합니다. 경곗값 분석(Boundary Value Analysis) 기법으로 최소·최대 경계 안팎을 시험하려고 합니다.
하한 경계(1)와 상한 경계(10) 바로 안팎을 확인하는 핵심 테스트 값 조합은 무엇인가요?
정답과 풀이 근거
최솟값 1의 바로 바깥 무효값(0)과 경곗값(1)·인접값(2), 최댓값 10의 인접값(9)·경곗값(10)·바로 바깥 무효값(11)을 시험합니다.
02V-모델에서 설계 단계와 테스트 단계 짝짓기
V-모델에서는 개발 단계의 각 산출물이 오른쪽 테스트 단계의 기준이 됩니다. 단위 설계는 단위 테스트와, 기본(구조) 설계는 통합 테스트와 대응합니다.
사용자의 최초 '요구사항 분석' 단계와 직접 대응하여 최종 인도 전 사용자의 요구 충족 여부를 확인하는 테스트 단계는 무엇인가요?
정답과 풀이 근거
V-모델 대응 관계는 요구사항 분석↔인수 테스트, 시스템 설계↔시스템 테스트, 기본 설계↔통합 테스트, 상세(단위) 설계↔단위 테스트입니다.
마지막 점검
스스로 확인하기
답을 떠올린 뒤 해설을 펼쳐 보세요.
1다음 중 블랙박스 테스트 기법이 아닌 것은? (동등 분할 / 경곗값 분석 / 분기 커버리지 / 원인-효과 그래프)
분기(결정) 커버리지는 소스 코드 내부 조건문의 참·거짓 분기 실행 여부를 따지는 화이트박스 테스트 기준입니다.
2상향식(Bottom-Up) 통합 테스트에서 아직 구현되지 않은 상위 호출 모듈 역할을 대신해 하위 모듈을 실행시켜 주는 시험용 모듈은?
상위 호출자 역할은 드라이버(Driver), 하향식 통합에서 하위 피호출자 역할은 스텁(Stub)입니다.
3결함 수정이나 기능 추가 후 그 변경 때문에 기존에 잘 동작하던 다른 기능에 새로운 오류가 생기지 않았는지 반복 확인하는 테스트는?
변경 후 부작용(Side Effect) 유입 여부를 점검하는 테스트입니다.
4실제 코드 작성 전에 실패하는 테스트 케이스를 먼저 작성하고, 이를 통과하는 최소 코드를 구현한 뒤 리팩터링하는 개발 방법론은?
Red(실패 테스트 작성) → Green(통과 코드 작성) → Refactor(구조 개선) 주기를 반복합니다.
읽기에서 연습으로
이어서 연습하기
테스트 기법·통합 카드 10장
개념 설명 → 핵심 용어. 본문과 연결된 10개 문항을 순서대로 확인합니다. 카드의 알아요·몰라요는 자기평가이며 같은 뜻의 다른 답도 해설과 비교해 주세요.
테스트 기법·통합 카드 10장 시작아래는 전체 세트의 첫 10개를 여는 넓은 범위 복습입니다. 위의 선별 연습과 시작 문항이 다를 수 있습니다.
정보처리기사 필기 핵심 객관식 — 설계·DB·테스트·보안
50문항 · 객관식 문제 → 정답·해설 확인