[TEST] 블랙박스 테스트 vs 화이트박스 테스트 비교

728x90
반응형

블랙박스 테스트 vs 화이트박스 테스트 비교

블랙박스 테스트와 화이트박스 테스트는 소프트웨어의 품질을 보장하기 위해 사용되는 대표적인 테스트 기법으로, 접근 방식과 테스트의 초점이 다르다. 이번 글에서는 두 테스트의 정의, 특징, 장단점, 주요 기법, 그리고 발견할 수 있는 오류를 비교하여 정리해보았다.

⬛️ 블랙박스 테스트

1) 정의

내부 구조나 코드 구현을 전혀 보지 않고, 소프트웨어의 외부 동작만을 테스트하는 방법이다.

입력값과 기대 출력값을 비교하여 기능이 요구사항에 부합하는지 확인한다.

 

2) 특징

  • 내부 코드나 로직에 대한 지식이 필요 없다.
  • 사용자 관점에서 테스트한다.
  • 일반적으로 기능 테스트(Functional Testing)에서 사용된다.
  • 컨테이너 이미지 생성 후와 같이 실행 가능한 상태에서 수행되어야 한다.

블랙박스 테스트 시점 예시 다이어그램

 

3) 장단점

장점

  • 개발자와 테스트가 독립적으로 이루어질 수 있다.
  • 실제 사용자 시나리오를 기반으로 테스트 가능하다.

단점

  • 내부 동작을 알 수 없으므로 테스트 케이스가 제한될 수 있다.
  • 숨겨진 버그를 발견하기 어려울 수 있다.

 

4) 주요 기법

  • 경계 값 분석 (Boundary Value Analysis)
  • 동등 분할 (Equivalence Partitioning)
  • 결정 테이블 (Decision Table)

 

5) 찾을 수 있는 오류

  • 인터페이스 오류
  • 자료 구조상의 오류
  • 성능 오류
  • 시작과 종결상의 오류
  • 부정확하거나 빠진 오류
  • 비정상적인 자료를 입력해도 오류 처리를 수행하지 않는 경우
  • 정상적인 자료를 입력해도 요구된 기능이 제대로 수행되지 않는 경우
  • 경계값을 입력할 경우 요구된 출력 결과가 나오지 않는 경우

⬜️ 화이트박스 테스트

1) 정의

소프트웨어의 내부 구조, 로직, 코드 흐름을 완전히 이해한 상태에서 이를 기반으로 테스트를 수행하는 방법이다.

소스 코드의 모든 문장을 한 번 이상 수행하여 모듈 안의 작동을 직접 관찰할 수 있다.

 

2) 특징

  • 내부 구현 세부사항을 활용한다.
  • 개발자 관점에서 테스트한다.
  • 동적 테스트 (Dynamic Test)에 해당한다.
  • 일반적으로 단위 테스트(Unit Testing)이나 코드 검증에서 사용된다.

 

3) 장단점

장점

  • 복잡한 로직이나 숨겨진 오류를 발견하기 쉽다.
  • 코드 커버리지(Coverage)를 통해 테스트의 완성도를 측정할 수 있다.

단점

  • 내부 구조를 알아야 하므로 테스트 작성이 복잡하다.
  • 사용자 관점에서의 결함을 놓칠 수 있다.

 

4) 주요 기법

  • 구문 커버리지 (Statement Coverage): 작성된 모든 코드를 한 번 이상 수행했는지 확인
  • 분기 커버리지 (Branch Coverage): 조건문의 모든 경우를 테스트
  • 경로 커버리지 (Path Coverage): 복잡한 코드의 모든 가능한 실행 경로를 검증

 

5) 찾을 수 있는 오류

  • 세부적 오류
  • 논리 구조상의 오류
  • 반복문 오류
  • 수행 경로 오류
  • 알고리즘 오류에 따른 원치 않는 결과
  • 탈출구가 없는 반복문의 사용
  • 틀린 계산 수식에 의한 잘못된 결과

비교

  블랙박스 테스트 화이트박스 테스트
관점 사용자 관점 개발자 관점
목적 요구사항 충족 검증 코드의 논리적 결함 검증
필요 지식 내부 구조 알 필요 없음. 내부 구조와 코드에 대한 이해 필요
적용 범위 시스템, 통합, 기능 테스트에 주로 사용 단위 테스트, 로직 검증에 주로 사용
장점 사용자 시나리오 기반 테스트 가능 숨겨진 결함 및 복잡한 로직 문제 발견 가능
단점 내부 결함 놓칠 가능성 있음 사용자 관점 결함 발견 어려움

참고

https://velog.io/@wooyong99/테스트-기법-화이트박스-블랙박스

728x90
반응형