블랙박스 시험과 화이트박스 시험
설명 영상 정보관리기술사 - 블랙박스 시험과 화이트박스 시험 · 2:17
영상 페이지에서 보기: 정보관리기술사 - 블랙박스 시험과 화이트박스 시험
왜 배우는가: 블랙박스 시험과 화이트박스 시험은 소프트웨어 테스트의 두 가지 기본 관점이다. 실무에서는 요구사항 기반 검증과 코드 기반 검증을 어떻게 나누어 설계할지 결정하는 기준이 된다. 시험에서는 두 기법의 정의와 차이, 커버리지 기준을 묻는 문제가 반복해서 출제된다.
출제 이력: 제125회 2교시 6번, 제114회 3교시 6번
1. 한 줄 정의와 핵심 키워드
답안 첫 줄 정의 문장:
블랙박스 시험은 내부 구조를 보지 않고 입력과 출력 조건으로 기능을 검증하며, 화이트박스 시험은 소스코드와 제어 흐름을 분석해 테스트 케이스를 설계하는 구조 기반 시험이다.
핵심 키워드
- 블랙박스 시험(Black-box Testing)
- 화이트박스 시험(White-box Testing)
- 동등 분할(Equivalence Partitioning)
- 경계값 분석(Boundary Value Analysis)
- 구문 커버리지(Statement Coverage)
- 분기 커버리지(Branch Coverage)
- MC/DC 커버리지
- 테스트 오라클(Test Oracle)
2. 개념 풀이
쉬운 말로 보면, 블랙박스 시험은 상자 겉면의 스위치만 누르고 불이 들어오는지 보는 방식이다. 화이트박스 시험은 상자를 열어 회로의 배선을 따라가며 모든 경로가 제대로 동작하는지 확인하는 방식이다.
정식 정의: 블랙박스 시험은 소프트웨어의 내부 구현을 알지 못한 채 요구사항 명세와 기능 명세를 기준으로 입력에 대한 출력이 기대한 값과 같은지 검증하는 기능 중심 시험이다. 시험자는 소프트웨어가 무엇을 해야 하는지만 알고 어떻게 구현되었는지는 알지 못한다.
블랙박스 시험의 핵심 기법에는 동등 분할, 경계값 분석, 결정 테이블, 상태 전이, 유스케이스 시험이 있다. 동등 분할은 입력 범위를 유효·무효 클래스로 나누어 대표값을 고르는 기법이다. 경계값 분석은 클래스의 경계 근처 값을 집중적으로 시험하는 기법이다.
정식 정의: 화이트박스 시험은 소스코드의 제어 흐름과 데이터 흐름을 근거로 테스트 케이스를 설계하는 구조 기반 시험이다. 소스코드의 각 문장, 분기, 조건, 경로가 실행되는지를 확인하며, 실행되는 코드 줄과 기대 출력을 알 수 있다는 점이 특징이다.
화이트박스 시험의 핵심 용어는 제어 흐름 테스트, 데이터 흐름 테스트, 분기 테스트, 경로 테스트다. 이 가운데 제어 흐름 테스트는 프로그램의 실행 순서를 따라 경로를 검증하고, 데이터 흐름 테스트는 변수의 정의와 사용 관계를 검증한다.
두 기법은 대립 관계로만 보지 않는다. 블랙박스 시험은 요구사항 충족 여부를, 화이트박스 시험은 내부 논리의 누락을 찾는다. 따라서 실무에서는 두 기법을 함께 사용하는 것이 일반적이다.
3. 등장 배경과 필요성
소프트웨어 규모가 커지면서 모든 입력 조합을 시험하는 것은 현실적으로 불가능해졌다. 이 때문에 입력을 대표값으로 줄이는 기법과, 코드의 어느 부분을 얼마나 실행했는지 측정하는 기준이 필요해졌다. 블랙박스 시험은 사용자 관점의 요구 충족을 확인하는 수단으로, 화이트박스 시험은 내부 논리 결함을 찾는 수단으로 발전했다.
시험 자체의 신뢰성 문제도 배경이 된다. 테스트 결과가 기대값과 맞는지 판단하는 기준을 테스트 오라클(Test Oracle)이라고 한다. 블랙박스 시험은 명세가 오라클 역할을 하고, 화이트박스 시험은 코드 실행 결과와 설계 의도를 함께 보고 오라클을 정한다.
커버리지 측정은 시험의 충분성을 수치로 보여 주기 위해 도입되었다. 그러나 커버리지가 100%라고 해서 결함이 없다는 뜻은 아니다. 같은 코드가 서로 다른 입력을 옳게 또는 틀리게 처리할 수 있기 때문이다. 이 한계를 알고 두 기법을 보완적으로 적용해야 한다.
4. 구성요소·원리·절차
블랙박스 시험과 화이트박스 시험은 테스트 설계의 관점이 다르다. 블랙박스는 입력과 출력의 관계로 테스트 케이스를 만들고, 화이트박스는 소스코드의 제어 흐름을 따라 테스트 케이스를 만든다. 두 방식은 구성요소와 설계 절차가 다르므로 표로 나누어 정리한다.
| 구분 | 블랙박스 시험 | 화이트박스 시험 |
|---|---|---|
| 기준 원천 | 요구사항 명세, 기능 명세 | 소스코드, 제어 흐름도 |
| 설계 단위 | 입력 조건과 기대 출력 | 문장, 분기, 조건, 경로 |
| 주요 기법 | 동등 분할, 경계값 분석, 결정 테이블, 상태 전이 | 구문·분기·조건·MC/DC 커버리지 |
| 결함 발견 | 기능 누락, 명세와 불일치 | 내부 논리 오류, 미실행 코드 |
블랙박스 시험의 원리는 명세에서 입력 영역을 나누는 것이다. 같은 방식으로 처리되는 입력은 한 동등 클래스로 묶고, 각 클래스의 대표값 하나를 시험한다. 경계값은 클래스의 양 끝에서 결함이 많이 나오므로 경계 바로 안쪽과 바깥쪽을 함께 시험한다. 예를 들어 입력 허용 범위가 1~100이면 0, 1, 100, 101 을 경계값 시험 입력으로 쓴다.
화이트박스 시험의 원리는 소스코드의 모든 실행 경로를 추적해 시험 케이스를 얻는 것이다. 절차는 다음과 같다.
- 소스코드로 제어 흐름 그래프를 그린다.
- 선택한 커버리지 기준(구문, 분기, 조건, MC/DC)을 정한다.
- 기준을 만족하는 경로를 찾고 경로를 실행할 입력값을 정한다.
- 실행 결과와 기대 결과를 비교하고 커버리지를 측정한다.
- 미달 구간이 있으면 케이스를 추가하고 반복한다.
화이트박스 커버리지의 포함 관계는 구문 커버리지 구문 커버리지는 분기 커버리지보다 약하다. 분기 커버리지는 결정문의 참·거짓을 모두 실행해야 하므로 구문 커버리지를 포함한다. 조건 커버리지는 개별 조건의 참·거짓을 보지만 결정 결과를 보장하지 않으므로 분기 커버리지와 서로 포함하지 않는다. 조건-결정 커버리지는 둘을 함께 만족시킨다.
블랙박스 시험은 명세의 기능이 빠짐없이 검증되었는지를 측정한다. 요구사항 커버리지는 명세 항목 중 시험으로 확인된 비율이다. 이는 코드 커버리지와 다른 척도이며, 두 척도를 함께 써야 시험의 완전성을 판단할 수 있다.
5. 관련 법령·기준·표준
소프트웨어 시험 기법은 특정 법령이 정한 기준보다 산업 표준과 국제 표준이 정한 기준을 따른다. 국내 기업은 공공 사업에서 소프트웨어 품질 기준을 요구받는 경우가 많다. 아래 표는 시험 기법과 기준의 연결을 정리한다.
| 기준 | 적용 대상 | 기준 수치·조건 | 비고 |
|---|---|---|---|
| 구문 커버리지 | 화이트박스, 모든 실행문 | 실행문 100% 실행 | 가장 약한 기준 |
| 분기(결정) 커버리지 | 화이트박스, 결정문 | 결정문의 참·거짓 각 1회 이상 | 구문 커버리지 포함 |
| 조건 커버리지 | 화이트박스, 개별 조건식 | 각 조건의 참·거짓 각 1회 이상 | 결정 결과 보장 안 함 |
| 조건-결정 커버리지 | 화이트박스 | 조건과 결정 모두 참·거짓 각 1회 이상 | 분기와 조건을 합침 |
| MC/DC 커버리지 | 화이트박스, 안전 필수 소프트웨어 | 개별 조건이 결정 결과에 독립적으로 영향 | 조건 수에 따라 필요한 케이스 수가 달라짐 |
| 다중 조건 커버리지 | 화이트박스 | 결정 내 모든 조건 조합 | 결정 내 조건들의 가능한 조합을 고려 |
| 동등 분할·경계값 분석 | 블랙박스, 명세 기반 | 클래스별 대표값, 경계 안팎 값 | 명세 기반 기법 |
MC/DC 케이스 수는 조건 수와 조건 간 관계에 따라 달라진다. 다중 조건 커버리지는 결정 내 조건들의 가능한 조합을 고려한다. 두 기준은 법령의 기준값이 아니다.
국제 표준에서는 ISO/IEC/IEEE 29119 시험 표준이 블랙박스와 화이트박스 기법을 분류한다. 표준 번호와 세부 조항은 확인되지 않았으므로 이 절에서는 이름만 쓴다. 국내에서는 소프트웨어 품질 평가 기준으로 ISO/IEC 25010 품질 모델이 자주 인용된다.
이어지는 내용
- 6. 유형과 비교
- 7. 장단점·한계와 개선 방향
- 8. 사례 또는 계산 예제
- 9. 최근 동향과 쟁점
- 10. 흔한 실수와 채점 포인트
- 11. 암기 정리
- 12. 답안 구성 예시
- 13. 예상 변형 문항
로그인하면 하루 2페이지까지 무료로 전체를 읽을 수 있습니다.
앱에서 이 단원 읽기