뉴런 커버리지 테스트 기법
1. 뉴런 커버리지 테스트 개요
1.1 뉴런 커버리지 테스트란?
- 뉴런 커버리지 테스트(Neuron Coverage Testing)
- 신경망 모델의 학습 및 일반화 능력을 평가하기 위한 테스팅 기법
- 소프트웨어 테스팅에서 사용되는 코드 커버리지 개념을 인공신경망에 적용한 것으로, AI 시스템의 신뢰성을 보장하기 위한 중요한 방법론
- 정의
- 일련의 테스트에서 활성화된 뉴런의 수를 신경망의 총 뉴런 수로 나눈 값
- 활성화: 뉴런의 출력 값이 설정된 임계값보다 높은 상태를 의미
일반적으로 백분율(%)로 표시됨
수식
뉴런 커버리지(%) = (활성화된 뉴런의 수 / 총 뉴런 수) × 100
- 일련의 테스트에서 활성화된 뉴런의 수를 신경망의 총 뉴런 수로 나눈 값
1.2 뉴런 커버리지 테스트의 작동 원리
- 활성화 측정
- 테스트 입력을 신경망에 통과
- 각 뉴런의 출력 값이 임계값(일반적으로 0)보다 높은지 확인
- 커버리지 계산
- 활성화된 뉴런의 수를 총 뉴런 수로 나누어 커버리지 비율 계산
- 테스트 케이스 생성
- 낮은 커버리지를 보이는 영역을 타겟으로 하여 추가 테스트 케이스를 생성
- 신경망의 더 많은 부분이 테스트될 수 있도록 함
1.3 뉴런 커버리지 테스트의 목적과 중요성
- 모델 품질 평가
- 뉴런 커버리지는 DNN(Deep Neural Network) 모델이 얼마나 철저하게 테스트되었는지를 측정하는 지표로 사용됨
- 취약점 탐지
- 낮은 커버리지를 보이는 영역은 잠재적인 취약점이 될 수 있음
- 이를 식별하여 모델의 신뢰성을 높일 수 있음
- 테스트 케이스 최적화
- 커버리지 정보를 바탕으로 효과적인 테스트 케이스를 설계하여 테스팅 효율을 높일 수 있음
1.4 뉴런 커버리지 테스트의 한계와 논쟁점
- 최근 연구에 따르면, 뉴런 커버리지가 딥러닝 네트워크의 테스트 품질을 측정하는 데 있어 그 유효성에 대한 의문이 제기되고 있음
- 의미 있는 목표인가?
- 단순히 뉴런 커버리지를 높이는 것이 딥 신경망 테스트를 위한 의미 있는 목표가 아닐 수 있다는 회의론
- 품질과의 상관관계
- 뉴런 커버리지와 모델 품질 간의 직접적인 상관관계가 불명확하다는 연구 결과
- 복제 연구를 통한 검증
- “Correlations between deep neural network model coverage criteria and model quality(심층 신경망 모델 커버리지 기준과 모델 품질 간의 상관관계)”라는 연구논문에서 뉴런 커버리지 테스트의 관계 제시
- 해당 연구 결과를 의심하여 연구를 복제하고 더 깊은 분석을 위해 실험을 확장한 연구 진행 ➜ 이 분야에 대한 추가적인 검증이 진행 중
1.5 뉴런 커버리지 테스트 vs 메타모픽 테스트
- 뉴런 커버리지 테스트가 신경망 내부의 활성화 상태를 측정하는 화이트박스 테스팅 접근법이라면,
- 메타모픽 테스트는 입력과 출력 간의 관계에 초점을 맞춘 블랙박스 테스팅 접근법
- 두 방법은 상호 보완적으로 사용될 수 있음
- 화이트박스 테스팅 접근법
- 모든 명령문 뿐만아니라 모든 분기문, 모든 조건, 모든 실행 경로 등 다양한 기준이 준비됨
- 준비된 기준에 맞춰 테스트 데이터 생성
- 어떤 테스트 데이터를 사용했을 때 얼마만큼의 소프트웨어 범위를 커버했는지 측정
- 부족한 테스트 데이터 추가
- 커버리지 테스트: 커버리지가 높아지도록 테스트 데이터를 작성하는 테스트 기법
- 커버리지: 얼마만큼의 범위를 커버했는가를 나타내는 지표
- 블랙박스 테스팅 접근법
- 소프트웨어의 내부를 파악하지 않은 채로 소프트웨어가 요구사항을 만족하고 있는지 테스트
- 동치 분할을 이용한 테스트가 대표적인 예
- 동치 분할
- 입력 데이터를 유효한 값과 유효하지 않은 값의 그룹으로 나누어,
- 각 그룹에서 대표 값만 테스트함으로써 테스트 케이스의 수를 효율적으로 줄이는 방법
- 소프트웨어 내부 구현을 알 필요 없이 입력 데이터의 특성에 기반하여 테스트를 설계하기 때문에 블랙박스 테스팅의 전형적인 예시가 됨