자격증 따기/정보처리기사

[정처기 실기] 화이트박스 테스트와 블랙박스 테스트

맹꽁이+ 2026. 4. 2. 16:33

테스트 기법

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

원시 코드의 논리적인 모든 경로를 테스트하여 테스트 케이스를 설계하는 방법

 

  • 기초 경로 검사(Base Path Testing): 테스트 케이스 설계자가 절차적 설계의 논리적 복잡성을 측정할 수 있게 해주는 테스트 기법
  • 제어 구조 검사(Control Structure Testing)
    • 조건 검사(Condition Testing)
    • 루프 검사(Loop Testing)
    • 데이터 흐름 검사(Data Flow Testing)

 

화이트박스 테스트의 검증 기준

  • 문장 검증 기준(Statement Coverage): 소스 코드의 모든 구문이 한 번 이상 수행되도록 테스트 케이스를 설계한다.
  • 분기 검증 기준(Branch Coverage): 소스 코드의 모든 조건문에 대해 조건식의 결과가 True인 경우와 False인 경우가 한 번 이상 수행되도록 테스트 케이스를 설계한다.
  • 조건 검증 기준(Condition Coverage): 소스 코드의 조건문에 포함된 개별 조건식의 결과가 True인 경우와 False인 경우가 한 번 이상 수행되도록 테스트 케이스를 설계한다.
  • 분기/조건 기준(Branch/Condition Coverage): 분기 검증 기준과 조건 검증 기준을 모두 만족하는 설계로, 조건문이 True인 경우와 False인 경우에 따라 조건 검증 기준의 입력 데이터를 구분하는 테스트 케이스를 설계한다.

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

각 기능이 완전히 작동되는 것을 입증하는 테스트

  • 동치 분할 검사(Equivalence Partitioning Testing, 동치 클래스 분해)
    • 프로그램의 입력 조건에 타당한 입력 자료와 타당하지 않은 입력 자료의 개수를 균등하게 하여 테스트 케이스를 정하고, 해당 입력 자료에 맞는 결과가 출력되는지 확인하는 기법
  • 경계값 분석(Boundary Value Analysis)
    • 입력 조건의 중간값보다 경계값에서 오류가 발생될 확률이 높다는 점을 이용하여 입력 조건의 경계값을 테스트 케이스로 선정하여 검사하는 기법
  • 원인-효과 그래프 검사(Cause-Effect Graphing Testing)
    • 입력 데이터 간의 관계와 출력에 영향을 미치는 상황을 체계적으로 분석한 다음 효용성이 높은 테스트 케이스를 선정하여 검사하는 기법
  • 오류 예측 검사(Error Guessing)
    • 과거의 경험이나 확인자의 감각으로 테스트하는 기법
  • 비교 검사(Comparison Testing)
    • 여러 버전의 프로그램에 동일한 테스트 자료를 제공하여 동일한 결과가 출력되는지 테스트하는 기법