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

2024. 8. 28. 17:49·Tips/A to Z

[작성일: 2023. 09. 10]

 

 

블랙박스 테스트(Black Box Test)

블랙박스 테스트는 소프트웨어의 내부 구조, 로직, 코드 등을 고려하지 않고 기능을 검사하는 소프트웨어 테스트 방법이다. 블랙박스 테스트의 주 목적은 소프트웨어의 기능적 요구사항이 제대로 구현되었는지 확인하는 것이다.

 

  • 소프트웨어의 내부 구조나 동작 방식을 모른 채로 진행한다.
  • 사용자의 요구사항 명세를 보면서 주로 구현된 기능을 테스트 한다.
  • 사용자 입장에서 스프트웨어의 요구사항과 결과물이 일치하는지 확인하기 위한 테스트 기법이다.
    • 사용자 환경에서 발생할 수 있는 문제점들을 효과적으로 발견할 수 있다.

 

블랙박스 테스트는 다음과 같은 방법으로 수행할 수 있다.

 

각 테스트 기법에는 다음과 같은 예시가 주어진다.

 

예시:

A카페의 아이스 아메리카노의 가격을 사이즈별로 다음과 같이 구분한다.

Small은 3,000원
Medium은 4,000원
Large는 5,000원 

 

기법 설명
동등 분할 기법
(Equivalence Partitioning Testing)
- 입력 자료에 초점을 맞춰 테스트 케이스를 만들어 검사하는 기법

* 예시:
A카페의 아이스 아메리카노를 각 사이즈마다 한 번씩 가격 검증을 한다.
경계값 분석
(Boundary Value Analysis)
- 입력 값의 중간값보다 경계값에서 오류가 발생할 확률이 높다는 점을 이용해 입력 조건의 경계값을 테스트 케이스로 선정하는 기법
- 80~90의 입력 조건이 있을 때, 79, 80, 81, 89, 90, 91을 테스트 값으로 선정한다.

* 예시
A카페의 Small과 Medium, Medium과 Large 사이의 가격 경계를 검증한다. Medium사이즈의 가격을 4,000원으로 선정한다.
원인-효과 그래프 검사
(Cause-Effect Graphing Testing)
- 입력 데이터 간의 관계와 출력에 영향을 미치는 상황을 체계적으로 분석한 다음 효율성이 높은 테스트 케이스를 선정하여 검사하는 기법

* 예시
A카페에서 아이스 아메리카노를 주문했을 때,
- 원인: 사이즈 선택(Small, Medium, Large)
- 결과: 가격(3,000원, 4,000원, 5,000원)
이를 기반으로 원인과 결과의 관계를 그래프로 표현하며 테스트 케이스를 도출할 수 있다.
오류 예측 검사
(Error Guessing)
- 과거의 경험이나 테스터의 감각으로 테스트하는 기법

* 예시 
A카페에서 아이스 아메리카노 주문 시 사이즈를 선택하지 않았을 때 시스템이 어떻게 반응하는지 확인한다.
비교 검사
(Comparison Testing)
- 여러 버전의 프로그램에 동일한 테스트 자료를 제공하여 동일한 결과가 출력되는지 테스트하는 기법

* 예시
A카페의 주문 시스템은 기존 버전과 업데이트 버전을 가지고 있다고 가정한다.
두 버전 모두에서 아이스 아메리카노의 가격이 올바르게 적용되는지 확인하기 위해 비교 검사를 수행한다. 
Small 사이즈의 아메리카노를 선택했을 때 기존 버전과 업데이트 버전 모두에서 3,000원이 제대로 적용되는지 확인한다.
의사결정 테이블 테스팅 - 입력과 출력 사이의 관계를 표로 표현하며 조건과 결과를 명확히 정의하여 테스트 케이스를 도출하는 기법

* 예시
A카페에서 사이즈와 시럽 추가 여부에 따라 최종 가격을 결정하는 표를 생성하고 이를 기반으로 테스트한다.
상태 전이 테스팅 - 소프트웨어의 다양한 상태와 그 상태 간의 전이를 테스트하는 기법

* 예시 
온라인 상점의 주문 상태가 '주문 접수', '결제 완료', '제조 중', '제조 완료', '픽업 준비'와 같이 변경되는 과정을 테스트한다.

 

다양한 블랙박스 테스트 기법이 있지만 모든 종류의 오류나 문제점을 발견하기는 어려울 수 있다.

그렇기 때문에 화이트박스 테스트와 함께 병행하여 수행하는 것이 좋다.

 

 

장점

  • 실제 사용자의 경험에 가까운 테스트를 수행하므로 사용자 관점에서 중요한 결함을 발견하기 쉽다.
  • 개발자의 내부 구현 방법을 모르기 때문에 테스트는 완전히 독립적으로 수행된다.
  • 특정 기능 또는 비즈니스 요구사항에 대해 빠르게 테스트할 수 있다.

 

단점

  • 내부 로직의 세부사항을 알 수 없기 때문에 일부 경로나 상황에서 발생하는 결함을 놓칠 수 있다.
  • 동일한 기능에 대해 여러 테스트 케이스를 작성하게 될 수 있어 중복될 수 있다.

 

 

 

화이트박스 테스트(White Box Test)

화이트박스 테스트는 소프트웨어의 내부 구조와 동작을 검사하는 테스트 기법이다. 화이트박스 테스트는 코드의 각 라인, 분기 및 경로를 테스트하는 것을 목표로 한다. 주로 개발자에 의해 수행되며 코드의 복잡성, 누락된 시나리오, 불필요한 코드 등을 식별하는데 유용한 테스트이다.

 

화이트박스 테스트는 다음과 같은 방법으로 수행할 수 있다.

 

 

기법 설명
기초 경로 검사
(Base Path Testing)
-  McCabe가 제안한 대표적인 화이트박스 테스트 기법
- 프로그램의 복잡도를 측정하고 그 복잡도에 따라 테스트 케이스의 수를 결정한다.
- 계산식: V(G) = E-N+2
문장 검증 - 프로그램의 모든 문장을 한 번씩 수행하여 검증
선택(분기) 검증 - 선택하는 부분만 검증
경로 검증 - 수행 가능한 모든 경로를 검사
- 실무에서는 모든 경로를 테스트하는 것은 불가능할 수 있으므로 주로 경로 위주로 테스트가 진행된다.
조건 검증 - 조건이나 반복문 내 조건식을 검사

기초 경로 검사

 

화이트 박스 테스트 기법을 사용하여 소프트웨어의 내부 로직과 구조를 꼼꼼히 테스트하게 되면, 누락된 로직이나 잘못된 코드를 발견하고 수정할 수 있어 소프트웨어의 품질을 향상시킬 수 있다.

 

 

장점

  • 내부 로직의 모든 경로를 검토하기 때문에 세부적인 버그나 오류를 발견하기 쉽다.
  • 코드의 효율성과 성능을 확인하고 최적화 할 수 있다.
  • 코드의 보안 취약점을 발견하고 수정할 수 있다.

 

단점

  • 코드를 자세히 알아야 하기 때문에 테스트를 수행하는데 시간과 자원이 많이 소요된다.
  • 사용자 관점에서는 중요한 결함을 놓칠 수 있다.

 

 

 

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

블랙박스 테스트와 화이트박스 테스트는 서로 다른 목적과 특징을 가지고 있기 때문에 어떤 테스트를 사용할지는 개발 프로세스, 프로젝트의 특성, 요구사항 등에 따라 결정할 수 있다. 

 

결론적으로는 두 테스트 모두 각각 중요한 역할을 한다. 

 

화이트박스 테스트는 시스템의 내부 구조와 로직에 중점을 둔 반면 블랙박스 테스트는 사용자의 관점에서 시스템이 올바르게 동작하는지 확인한다. 대부분의 개발 프로세스에서는 두 가지 테스트 방법을 함께 사용하여 시스템의 품질을 높이는 것이 바람직하다.

 

저작자표시 비영리 변경금지 (새창열림)
'Tips/A to Z' 카테고리의 다른 글
  • [Servlet] Eclipse로 Servlet 프로그램 만들기
  • [DB] Mariadb와 Java 연동하기
  • [IntelliJ] 유용한 단축키(Mac)
  • [SpringBoot] spring-boot-devtools 라이브러리 사용법
뚜비
뚜비
1년차 백엔드&iOS 개발자의 감자 탈출 블로그 🥔🥔
  • 뚜비
    뚜비의 개발로그
    뚜비
  • 전체
    오늘
    어제
  • 글쓰기     관리
    • Devlog
      • Back-End
        • Java
        • Spring
        • JPA
        • HTTP
        • Security
        • Back-End
        • Front-End
      • 알고리즘
      • iOS
        • Swift
      • Database
      • Tips
        • Git & GitHub
        • A to Z
      • 프로젝트
      • 생각정리
  • 태그

    자바
    MVC
    Swift
    jsp
    최주호
    html
    javascript
    김영한
    스프링
    Database
    자바스크립트
    Java
    HTTP
    Security
    DB
    성능최적화
    생성자
    의존성주입
    알고리즘
    데이터베이스
    변수
    프로그래머스
    다형성
    객체
    spring
    게시판만들기
    Spring Security
    JPA
    sql
    백준
  • hELLO· Designed By정상우.v4.10.0
뚜비
블랙박스 테스트 vs 화이트박스 테스트
상단으로

티스토리툴바