AI SW 테스트 기법
1. AI 소프트웨어 테스팅 개요
- AI 소프트웨어 테스팅의 방향성
- AI 소프트웨어 테스팅은 전통적인 소프트웨어 테스팅과는 다른 접근이 필요함
- AI 시스템은 명시적으로 프로그래밍된 규칙이 아닌 데이터로부터 학습하기 때문에, 테스트 방법론도 이에 맞게 진화해야 함
- AI 소프트웨어 테스팅의 주요 목표는 모델의 정확성, 견고성, 공정성, 안전성 등을 확보하는 것
- AI 시스템 테스팅에서 고려해야 할 요소
- 테스트 오라클 문제(정확한 기대 출력값을 알기 어려운 상황)
- 데이터 품질과 다양성
- 모델의 내부 구조 이해와 검증
- 실제 환경에서의 성능과 안정성
2. 주요 AI 테스트 기법
2.1 메타모픽 테스트 기법(Metamorphic Testing)
- 테스트 오라클 문제를 해결하기 위한 기법
입력과 출력 간의 관계인 ‘메타모픽 관계(Metamorphic Relations, MRs)’를 활용하여 소프트웨어의 신뢰성을 검증
- 핵심 원리:
- 원본 입력과 출력이 있을 때, 입력에 특정 변환을 적용하여 새로운 입력을 만듦
- 새로운 입력에 대한 출력이 원본 출력과 어떤 관계를 가져야 하는지 정의
- 이 관계가 성립하는지 확인하여 소프트웨어의 올바른 동작 여부 판단
- 예시
- 이미지 분류 AI에서 이미지를 회전시켜도 같은 객체로 인식해야 한다는 규칙을 검증하는 방식
2.2 뉴런 커버리지 테스트 기법(Neuron Coverage Testing)
신경망 모델의 내부 뉴런들이 테스트 실행 중에 얼마나 활성화되었는지 측정하는 화이트박스 테스팅 기법
핵심 원리:
- 뉴런 커버리지: 활성화된 뉴런의 수를 총 뉴런 수로 나눈 값으로 측정
- 소프트웨어 테스팅의 코드 커버리지 개념을 신경망에 적용한 것
- 높은 뉴런 커버리지는 신경망의 더 많은 부분이 테스트되었음을 의미함
- 뉴런 커버리지: 활성화된 뉴런의 수를 총 뉴런 수로 나눈 값으로 측정
계산 방법:
뉴런 커버리지(%) = (활성화된 뉴런의 수 / 총 뉴런 수) × 100
2.3 최대 안전 반경 테스트 기법(Maximum Safe Radius Test)
- 딥 뉴럴 네트워크(DNN)의 견고성을 검증하기 위한 테스트 기법
입력 데이터에 작은 변화를 주었을 때 모델의 예측이 변경되지 않는 최대 반경(거리)을 계산
- 핵심 원리:
- 원본 입력 데이터 주변에 존재하는 안전한 영역 정의
- 이 영역 내에서는 어떤 입력 변화가 있더라도 AI 모델의 출력이 동일하게 유지됨
- 최소 안전 반경(MinUR)과 최대 안전 반경(MaxRR)을 함께 계산하여 모델의 안정성을 평가
- 원본 입력 데이터 주변에 존재하는 안전한 영역 정의
- 활용
- 적대적 예제(adversarial examples)에 대한 모델의 취약성 평가
- 안전이 중요한 미션 크리티컬(Mission Critical) 시스템에서 AI의 신뢰성을 보장하는 데 중요함
2.4 커버리지 검증 기법(Coverage Verification)
테스트가 AI 모델의 입력 공간, 내부 상태, 의사 결정 경로 등을 얼마나 광범위하게 다루고 있는지를 측정하고 평가하는 방법
- 주요 커버리지 유형:
- 결정 경계 커버리지(Decision Boundary Coverage)
- AI 모델의 의사 결정 경계가 얼마나 테스트되었는지 측정
- 입력 공간 커버리지(Input Space Coverage)
- 모델이 처리해야 할 전체 입력 데이터 공간 중 얼마나 많은 부분이 테스트되었는지 측정
- 테스트 케이스 다양성(Test Case Diversity)
- 생성된 테스트 케이스들이 얼마나 다양하고 독립적인 입력 변화를 포함하는지 측정
- 결정 경계 커버리지(Decision Boundary Coverage)
- 활용
- 모델의 일반화 능력을 평가 후, 테스트가 충분히 이루어지지 않은 영역을 식별하여 추가 테스트를 진행할 수 있음
3. AI 테스트 기법 비교
| 특징/기법 | 메타모픽 테스트 (Metamorphic Testing) | 뉴런 커버리지 테스트 (Neuron Coverage Testing) | 최대 안전 반경 테스트 (Maximum Safe Radius Test) | 커버리지 검증 기법 (Coverage Verification) |
|---|---|---|---|---|
| 목표 | 테스트 오라클 문제 해결 및 신뢰성 검증 | 신경망 내부 동작(활성화) 검증 및 테스트 철저도 측정 | 모델의 견고성(robustness) 및 안정성 검증 | 테스트 케이스의 충분성 및 AI 모델의 포괄적 검증 |
| 접근 방식 | 블랙박스 (입력-출력 관계 기반) | 화이트박스 (모델 내부 뉴런 활성화 기반) | 블랙박스/그레이박스 (입력 변화에 따른 출력 안정성 기반) | 화이트박스/블랙박스/그레이박스 (다양한 기준의 포괄 범위 측정) |
| 검증 대상 | 입력과 출력 간의 관계 (예: 이미지가 회전해도 분류 결과는 동일) | 신경망 내부 뉴런의 활성화 여부 | 입력 데이터의 작은 변화에 대한 모델 출력의 일관성 | 모델의 입력 공간, 내부 상태, 의사 결정 경로 등 |
| 주요 활용 | - 테스트 오라클이 없는 경우 - AI 모델의 일반화 능력 검증 | - 학습된 모델의 훈련 범위 평가 - 잠재적 취약 영역 식별 | - 적대적 예제(adversarial examples) 방어력 평가 - 안전이 중요한 시스템의 신뢰성 검증 | - 테스트 케이스 생성 최적화 - 테스트 미흡 영역 발견 및 보강 |
| 장점 | - 테스트 오라클 문제 해결에 효과적 - 복잡한 AI 시스템에 적용 용이 | - 모델의 '내부' 동작 가시화 - 테스트 케이스 부족 영역 식별 | - 모델의 견고성을 정량적으로 측정 - 실제 위협에 대한 모델 저항력 평가 | - 테스트의 체계적 관리 - 잠재적 결함 감소 및 품질 향상에 기여 |
| 단점/한계 | - 메타모픽 관계 정의의 어려움 - 일부 모델에는 적용이 어려움 | - 뉴런 커버리지가 곧 성능/품질을 의미하지는 않음 - 복잡한 모델에 적용 시 계산 비용 | - 계산 복잡성이 높을 수 있음 - '최대 안전 반경' 정의가 어려울 수 있음 | - 어떤 커버리지를 목표로 할지 선정의 어려움 - 과도한 커버리지 목표는 비효율적일 수 있음 |
- 각 기법은 AI 모델의 특정 측면을 평가하고 검증하는 데 강점을 가지므로
- 개발하는 AI 시스템의 특성과 목표에 따라 적절한 기법들을 조합하여 활용하는 것이 중요함