공든탑앱 열기

화이트박스·블랙박스 테스트

정보처리기사 · 애플리케이션 테스트 · 약 14분

쉽게 말하면

프로그램 속을 들여다보며 테스트하면 화이트박스, 속은 모르는 채 입력과 출력만 보고 테스트하면 블랙박스예요. 화이트박스는 코드의 모든 문장, 모든 분기가 한 번씩 실행되는지 따져요. 블랙박스는 입력값을 똑똑하게 골라요. 예를 들어 1~100만 받는 칸이면 경계인 0, 1, 100, 101을 넣어 보는 경계값 분석이 대표적이에요.

시험용 정의

화이트박스 테스트는 모듈의 원시 코드를 보며 내부 논리 경로를 시험한다. 기법은 기초 경로 검사(맥케이브 순환 복잡도로 독립 경로를 정함), 제어 구조 검사(조건 검사, 루프 검사, 데이터 흐름 검사)이고, 기준이 되는 커버리지는 구문(모든 문장 한 번 이상), 결정(분기)(각 분기의 참·거짓 한 번 이상), 조건(결정 안 개별 조건의 참·거짓), 조건/결정, 변경 조건/결정(MC/DC), 다중 조건이다. 블랙박스 테스트는 명세(요구사항)를 보고 입력·출력을 시험하며 동등 분할, 경계값 분석, 원인-결과 그래프, 오류 예측, 비교 검사가 있다.

비유로 이해하기

자동차 점검이다. 화이트박스는 보닛을 열고 배선과 부품을 하나하나 확인하는 것, 블랙박스는 운전석에 앉아 브레이크를 세게, 약하게, 끝까지 밟아 보며 반응만 보는 것이다.

자세히

먼저 알아 둘 말

말뜻
커버리지테스트가 코드나 요구를 얼마나 덮었는지의 비율
분기(결정)if처럼 흐름이 갈리는 곳의 전체 판단 결과 (참/거짓)
조건결정 안의 개별 식. if (a > 0 && b > 0)에서 a > 0과 b > 0
동등 클래스프로그램이 같은 방식으로 처리할 입력값 묶음
원인-결과 그래프입력(원인)과 출력(결과)의 관계를 그래프로 그려 테스트 케이스를 뽑는 방법

화이트박스 vs 블랙박스

구분화이트박스블랙박스
보는 것내부 코드·논리 구조명세, 입력과 출력
다른 이름구조 기반, 코드 기반명세 기반, 기능 테스트
기법기초 경로, 조건·루프·데이터 흐름 검사동등 분할, 경계값, 원인-결과 그래프, 오류 예측, 비교 검사
주로 하는 단계단위 테스트통합·시스템·인수 테스트

커버리지 종류

커버리지기준
구문(문장)모든 문장을 한 번 이상 실행
결정(분기)각 분기의 결과(참·거짓)를 한 번 이상
조건결정 안 각 개별 조건의 참·거짓을 한 번 이상 (전체 결정 결과는 상관없음)
조건/결정결정과 개별 조건 모두 참·거짓 한 번 이상
변경 조건/결정 (MC/DC)각 개별 조건이 다른 조건과 무관하게 전체 결과에 독립적으로 영향을 주도록
다중 조건결정 안 조건들의 모든 조합

블랙박스 기법 예 (점수 0~100, 90 이상 A)

기법고르는 값
동등 분할구간마다 대표값 하나: 95(A 구간), 50(그 외), −10·150(무효)
경계값 분석−1, 0, 89, 90, 100, 101
원인-결과 그래프원인과 결과를 그래프·의사결정 테이블로 정리해 조합
오류 예측경험으로 잘 틀리는 값 (빈칸, 특수 문자)
비교 검사같은 입력을 여러 버전에 넣어 결과 비교

시험에 이렇게 나와요

확인 문제

Q1. 입력 범위가 1~100일 때 경계 바로 안팎의 값(0, 1, 100, 101)으로 테스트하는 기법은?

  1. 기초 경로 검사
  2. 경계값 분석
  3. 조건 검사
  4. 동등 분할
정답 보기

2번 경계값 분석

오류는 경계에서 자주 생긴다. 경계값 분석은 경계값과 그 바로 위아래 값을 테스트 케이스로 고르는 블랙박스 기법이다.

Q2. 블랙박스 테스트 기법이 아닌 것은?

  1. 기초 경로 검사
  2. 동등 분할
  3. 경계값 분석
  4. 원인-결과 그래프
정답 보기

1번 기초 경로 검사

기초 경로 검사는 코드 안의 경로를 보는 화이트박스 기법이다. 동등 분할, 경계값 분석, 원인-결과 그래프는 입력과 출력만 보는 블랙박스 기법이다.

Q3. 결정 안의 각 개별 조건이 참과 거짓을 한 번 이상 갖도록 하는 커버리지는?

  1. 구문 커버리지
  2. 조건 커버리지
  3. 결정 커버리지
  4. 경로 커버리지
정답 보기

2번 조건 커버리지

조건 커버리지는 개별 조건 기준.

Q4. 입력 자료를 같은 처리를 받는 묶음으로 나누고 묶음마다 대표값을 고르는 기법은?

  1. 경계값 분석
  2. 오류 예측
  3. 동등 분할
  4. 비교 검사
정답 보기

3번 동등 분할

동등(동치) 분할이다. 같은 결과가 나오는 입력을 한 묶음으로 보고 대표값만 시험한다. 경계값 분석은 묶음의 경계 근처를 시험한다.

Q5. 화이트박스 테스트에 대한 설명으로 옳은 것은?

  1. 모듈 내부의 논리 경로를 시험한다
  2. 사용자 요구 명세만 보고 시험한다
  3. 입력과 출력만 확인한다
  4. 인수 테스트에서 주로 쓴다
정답 보기

1번 모듈 내부의 논리 경로를 시험한다

모듈 내부의 논리 경로를 시험한다. 요구 명세나 입출력만 보는 것은 블랙박스 테스트이고, 인수 테스트에서는 주로 블랙박스를 쓴다.

헷갈리기 쉬운 O·X

경계값 분석은 화이트박스 테스트 기법이다.

정답 보기

X 블랙박스 기법이다.

구문 커버리지는 모든 문장을 최소 한 번 실행하는 것을 기준으로 한다.

정답 보기

O

블랙박스 테스트는 프로그램 내부 구조를 몰라도 할 수 있다.

정답 보기

O

함께 보면 좋은 개념