인공신경망에서의 화이트박스 테스트 커버리지와 블랙박스 테스트 커버리지

인공신경망(ANN)은 내부 구조가 복잡한 고차원 행렬 연산으로 이루어져 있어, 전통적인 소프트웨어의 코드 커버리지(구문, 결정 등)를 그대로 적용하기 어렵습니다. 따라서 AI 모델의 특성에 맞춘 새로운 커버리지 개념이 등장했습니다.

1. 인공신경망의 화이트박스 커버리지 (White-box Coverage)

전통적인 화이트박스 테스트가 '코드 라인'을 얼마나 실행했는지 본다면, 인공신경망에서는 '뉴런(Neuron)이 얼마나 활성화되었는지'를 측정합니다. 이를 통해 학습 데이터가 모델의 내부 로직을 충분히 자극했는지 평가합니다.

  • 뉴런 커버리지 (Neuron Coverage)
    가장 기본적인 지표. 전체 뉴런 중 활성화 임계값(Threshold)을 넘는 입력이 한 번이라도 있었던 뉴런의 비율을 측정.
    $뉴런 커버리지 = \frac{활성화된 뉴런 수}{전체 뉴런 수}$
  • 레이어 커버리지 (Layer Coverage)
    특정 레이어 내의 뉴런들이 골고루 활성화되었는지 확인
  • K-멀티섹션 뉴런 커버리지 (K-multisection Neuron Coverage)
    뉴런의 출력 범위를 $k$개의 구간으로 나누고, 입력 데이터들이 각 구간에 얼마나 골고루 분포되는지 측정
    모델의 작동 범위를 세밀하게 검증할 때 사용
  • 강한 뉴런 활성화 커버리지 (Strong Neuron Activation Coverage)
    뉴런이 단순히 활성화되는 것을 넘어, 최대/최소값 근처의 극한 상황(Corner Case)에서 어떻게 반응하는지 측정
구분 테스트 항목 주요 내용 및 검증 목적
뉴런 수준 뉴런 커버리지(NC) 임계값을 초과하여 활성화된 뉴런의 비율 측정 (가장 기본)
K-멀티섹션 뉴런 커버리지
(KMNC)
뉴런 출력 범위를 $k$개 구간으로 나누어 데이터가 골고루 분포되는지 측정
뉴런 경계값 커버리지
(NBNC)
뉴런의 출력이 과거 학습 데이터의 범위를 벗어나는지 (최대/최소 외곽) 확인
강한 뉴런 활성화 커버리지
(SNAC)
뉴런 출력이 학습 데이터의 최대값보다 큰 상한값을 초과하는지 측정
레이어 수준 레이어 커버리지 (LC) 특정 레이어 내 뉴런들이 충분히 활성화되었는지 확인
Top-K 뉴런 커버리지
(TKNC)
각 레이어에서 가장 활성화된 상위 $k$개 뉴런의 조합을 측정
상호작용 Sign-Sign 커버리지
(SSSC)
앞 뉴런의 활성화 상태(부호) 변화가 뒤 뉴런의 활성화에 주는 영향 검증
Value-Change 커버리지
(VCC)
앞 뉴런의 미세한 수치 변화가 뒤 뉴런의 수치 변화로 이어지는지 측정



2. 인공신경망의 블랙박스 커버리지 (Black-box Coverage)

블랙박스 테스트는 내부 구조를 보지 않습니다. 대신 입력값의 도메인(범위)과 출력 결과의 견고성을 기준으로 얼마나 넓은 범위를 테스트했는지 측정합니다.

  • 입력 공간 커버리지 (Input Space Coverage)
    모델이 처리해야 할 가능한 모든 입력값의 조합을 얼마나 시도했는지 측정
    예: 자율주행 AI라면 낮/밤, 비/눈, 안개 등 다양한 환경 조건(Combinatorial Coverage)을 얼마나 테스트했는지 확인
  • 변형 커버리지 (Metamorphic Coverage)
    입력값에 미세한 변화(노이즈, 회전, 밝기 조절)를 주었을 때, 결과가 일관되게 나오는지 측정
    적대적 공격(Adversarial Attack)에 대한 방어력을 검증하는 지표로 활용
  • 출력 클래스 커버리지 (Output Class Coverage)
    모델이 분류할 수 있는 모든 클래스(강아지, 고양이, 자동차 등)에 대해 골고루 테스트 데이터가 존재하고 정확하게 분류하는지 확인
구분 테스트 항목 주요 내용 및 검증 목적
입력 중심 입력 공간 커버리지 가능한 모든 입력 변수 조합(환경, 노이즈 등)이 테스트되었는지 확인
조합 테스트 커버리지 입력 변수들 간의 상호작용(예: 비 오는 밤, 눈 오는 낮 등)을 조합하여 테스트
강건성 중심 변형(Metamorphic) 커버리지 입력에 미세한 변형(회전, 밝기)을 주어도 결과가 일관된지(MR 만족 여부) 검증
적대적 공격 커버리지 공격용 노이즈(Adversarial Perturbation)에 대해 모델이 얼마나 버티는지 측정
출력 중심 클래스 커버리지 모델이 분류해야 할 모든 카테고리(Label)에 대해 골고루 테스트가 수행되었는지 확인
임계값 신뢰도 커버리지 모델의 판단 결과(Confidence Score)가 낮은 '애매한 구간'의 데이터 검증

 

3. 전통적 소프트웨어 vs 인공신경망 커버리지 비교

구분 전통적 소프트웨어 (Code) 인공신경망 (AI Model)
최소 단위 구문(Statement), 함수 뉴런(Neuron), 레이어
제어 흐름 명시적(If, Loop) 암시적(가중치와 활성화 함수)
화이트박스 핵심 모든 코드 경로 실행 모든 뉴런의 활성화 유도
블랙박스 핵심 요구사항 명세 충족 데이터 분포 및 환경 강건성 확보

 

4. 왜 AI에서는 커버리지가 중요한가요?

인공지능 모델은 학습 데이터에 없는 미학습 영역(Unseen Data)에서 오작동할 가능성이 높음

  • 사각지대 발견 : 뉴런 커버리지가 낮다면, 특정 로직이 한 번도 검증되지 않았음을 의미하며 이는 잠재적 사고의 원인이 됨
  • 과적합(Overfitting) 탐지 : 특정 뉴런만 과하게 활성화된다면 모델이 특정 데이터에만 편향되어 있을 확률이 높음

최근에는 자율주행이나 의료 AI처럼 안전이 중요한 분야에서 이러한 DeepGauge나 DeepXplore 같은 도구를 활용한 커버리지 측정이 필수적으로 요구되고 있음.