코딩일기/QA

[QA 기본 개념] 내부를 볼 것인가, 결과만 볼 것인가? | 블랙박스(Black Box), 화이트박스(White Box), 그레이박스(Gray Box) 테스트

jhy_2023 2026. 3. 3. 13:00
728x90
반응형

사진: Unsplash 의 Bayu Syaits

기능이 제대로 동작하는지를 검증할 때,
QA는 보통 세 가지 테스트 방식을 활용한다.

이 세 가지 방식은
테스트 대상의 내부 구조를 얼마나 이해하고 있는지에 따라 구분된다.

즉, 기능 테스트를 수행할 때
“코드를 어디까지 알고 검증할 것인가”라는 관점에 따라 다음과 같이 나뉜다.

  • 블랙 박스 테스트 (Black Box Testing)
  • 화이트 박스 테스트 (White Box Testing)
  • 그레이 박스 테스트 (Gray Box Testing)

🔶 블랙 박스 테스트 (Black Box Testing)

블랙 박스 테스트는
시스템의 내부 구조나 구현 방식을 고려하지 않고,
입력과 출력 결과를 기준으로 기능을 검증하는 테스트 방식이다.

즉, 내부 코드를 확인하지 않은 상태에서
사용자 관점으로 기능이 요구사항대로 동작하는지를 검증한다.

이 방식은 기능 테스트에서 가장 널리 사용되는 테스트 기법 중 하나이다.

  • 내부 코드나 로직을 보지 않고 테스트 수행
  • 입력값과 그에 따른 출력 결과를 기준으로 테스트 케이스를 설계
  • 사용자 관점의 기능 검증에 적합
반응형

🔶 화이트 박스 테스트 (White Box Testing)

화이트 박스 테스트는
시스템의 내부 로직과 코드 구조를 이해한 상태에서
프로그램이 의도한 대로 올바르게 동작하는지를 검증하는 테스트 방식이다.

이 방식은 코드의 흐름, 분기, 조건 처리 등을 직접 확인하며
논리적인 오류가 없는지를 점검하는 데 초점을 둔다.

주로 개발자나 코드에 대한 이해도가 있는 QA가 수행한다.

  • 내부 코드 구조를 기반으로 테스트 수행
  • 경로, 조건, 분기 커버리지 등을 확인
  • 주로 단위 테스트(Unit Test)에서 많이 활용
  • 기능 테스트라기보다는 구조 기반 테스트에 가깝다
728x90

🔶 그레이 박스 테스트 (Gray Box Testing)

그레이 박스 테스트는
블랙 박스 테스트와 화이트 박스 테스트의 특성을 결합한 테스트 방식이다.

기본적으로는 사용자 관점에서 기능을 검증하지만,
필요한 범위 내에서 내부 구조나 설계 정보를 참고하여 테스트를 수행한다.

즉, 전체 코드를 직접 분석하지는 않지만
API 구조나 데이터베이스(DB) 스키마와 같은 내부 정보를 활용하여
보다 정밀하게 테스트를 설계한다.

  • 내부 구조를 일부 이해한 상태에서 테스트 설계
  • API 명세나 DB 구조 등을 참고하여 검증
  • 블랙 박스 테스트와 화이트 박스 테스트의 중간 성격을 가짐

본 글은 roadmap.sh의 QA Engineer 로드맵(https://roadmap.sh/qa)을 참고하여, 원문 내용을 번역하고 재구성한 글입니다.


"이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다."

728x90
반응형