Notice
Recent Posts
Recent Comments
Link
관리 메뉴

Douglas' Space

Ai-based System의 Test Techniques 본문

Computing Tech. Diary/AI RMF

Ai-based System의 Test Techniques

똘키아빠 2024. 10. 27. 22:32

1. ISO/IEC 29119-Software Testing 표준
 
지난 글에서 Ai-based System의 품질을 검증하기 위해서 ISO 25000 시리즈 소개를 통해  Ai로 인해 추가된 품질특성들에 대해 소개하였습니다. 이와 마찬가지로 Ai-based System의 품질을 확인(Validation)하는 활동으로서의 테스팅도 기존의 Software Testing 표준을 기반으로 Ai-based System의 테스팅을 위해 추가로 고려해야 할 기법들이 제안되고 있습니다. 
 
ISO 29119-Software Testing은 아래 그림과 같이 파트1로서 Concepts and Definition, 파트2-Test Process, 파트3-Test Documentation, 파트4-Test Techniques, 파트5-Keyword-driven Testing의 5부분으로 나누어져 있습니다. 
 

ISO 29119-Software Testing 구성부문

 
그리고 ISO/IEC TR 29119-11, Guidelines on the testing of Ai-based Systems에 Ai 시스템에 특화된 Test Technique을 제안하고 있습니다. 
 
2. ISO/IEC 29119의 Test Techniques
 
ISO 29119 파트4와 ISO/IEC TR 29119-11에서 제안하고 있는 Test Techniques를 기반으로 Ai-based Systems에 대한 Test Cases를 설계하여 품질을 확인할 수 있습니다. 일반적으로 Test Techniques는 Black-Box Testing이라고 Specification-based Testing과 White-Box Testing이라고 하는 Structured-based Testing으로 나누어진다. 이름에서 짐작하듯이 White-Box Testing은 소프트웨어의 내부 로직을 기반으로 Test Case를 설계하며, Black-Box Testing은 소프트웨어의 외부 인터페이스를 기반으로 Test Case를 설계합니다.
 

ISIO/IEC Software Tesitng에서의 Test Case Design Techniques

 
위의 그림에서 노란색으로 표시된 부분은 Ai-based System을 위한 Black-Box 및 White-Box Testing을 위한 Test Techniques를 나타내고 있습니다. 본 글에서는 흰색의 일반적인 Software Test Technique에 대한 설명을 제외하고 노란색의 Ai-based System과 관련된 testing 기법들에 대해서만 소개하고자 합니다.
 
3. Ai-based System의 Black-Box 테스트 기법
 

Combinatorial testing: 다양한 입력 파라미터의 조합을 테스트하여 이들 간의 상호작용으로 인해 발생할 수 있는 결함을 식별하는 데 중점을 둡니다. AI 기반 시스템은 여러 특성과 변수를 포함하기 때문에 조합 테스팅은 다음과 같은 목적에 유용합니다.

 

  • 다양한 특성이나 파라미터 조합을 사용할 때 AI 시스템의 동작을 탐색
  • 예상치 못한 결과를 초래할 수 있는 상호작용을 식별
  • 넓은 범위의 입력에서 시스템의 동작이 견고한지 확인

Back-to-Back testing: 동일한 입력 세트를 사용하여 두 개의 AI 시스템 버전(또는 다른 조건의 동일한 시스템)의 출력을 비교합니다. 이 기법은 다음과 같은 경우에 유용합니다.

  • AI 모델 또는 시스템의 수정이 시스템 동작에 예상치 못한 변화를 초래하지 않는지 확인
  • 새로운 버전과 참조 버전 사이의 일관성을 테스트
  • 이전에 검증된 버전 또는 대체 시스템과 시스템의 출력을 검증

A/B testing: 모델 또는 알고리즘의 변경 사항을 평가하기 위해 두 개의 변형(A와 B)을 비교하는 방법입니다. 특히 다음과 같은 경우에 적합합니다:

  • AI 시스템의 수정을 테스트하여 변경 사항이 주요 성능 지표를 개선하는지 판단
  • 더 효과적인 버전을 찾기 위해 두 개의 다른 모델이나 접근 방식을 비교
  • 실제 사용 데이터에 기반하여 한 버전이 다른 버전보다 우수한지 통계적 증거를 수집

Metamorphic testing: AI 시스템의 예상 출력이 사양서에 기반하지 않아 직접적으로 결정하기 어려운 상황에서 이전 결과의 내용을  현재의 결과를 예측하는 형식으로 사용됩니다. 이 기법은 다음을 포함합니다.

  • 입력 변경과 출력의 예상 변경 간의 관계를 식별
  • 입력 변화를 통해 시스템을 테스트하여 출력이 이러한 관계를 따르는지 확인
  • 입력의 예측 가능한 변화에 따라 Ai 모델이 일관된 동작을 유지하는지 검증

Exploratory testing: 사전 정의된 스크립트나 계획 없이 테스터의 과거의 경험을 기반으로 Ai 시스템의 동작을 탐색하는 더 개방적이고 직관적인 접근 방식을 포함합니다. 이 기법은 다음에 중점을 둡니다.

  • 예상치 못한 시나리오나 엣지 케이스에서 시스템이 어떻게 동작하는지 조사
  • 스크립트화된 테스트로 다루지 못하는 새로운 유형의 결함이나 불일치를 발견
  • 테스터가 경험과 직관을 활용하여 시스템의 강점과 약점을 탐구

4. Ai-based System의 White-Box 테스트 기법
 

Neuron coverage: 테스트 입력을 통해 신경망 모델 내의 모든 뉴런이 활성화되었는지를 평가하는 지표입니다. 테스트세트에 대해 특정 임계값 이상으로 활성화된 뉴런의 비율을 계산합니다. 기본적인 아이디어는 모든 뉴런이 테스트 과정에서 충분히 활성화되지 않으면, 해당 뉴런과 관련된 기능이 충분히 테스트되지 않았을 수 있다는 점입니다.

  • 활성화 기준: 주어진 입력에 대해 각 뉴런이 설정된 임계값 이상으로 활성화된 경우 해당 뉴런이 커버되었다고 간주합니다.

Threshold coverage: 특정 뉴런의 활성화 수준이 여러 다른 임계값에 대해 어떻게 변화하는지를 평가하는 지표입니다. 이는 단순히 뉴런이 활성화되었는지를 넘어, 다양한 임계값에서 뉴런이 어떻게 반응하는지를 확인하여 더 정밀한 커버리지를 평가합니다.

  • 다중 임계값 설정: 단일 임계값뿐만 아니라 여러 임계값을 설정하고, 각각의 임계값을 초과하는 뉴런의 비율을 측정합니다.

Sign Change Coverage: 입력 변화에 따라 뉴런의 활성화 값의 부호가 어떻게 바뀌는지를 평가하는 지표입니다. 예를 들어, 특정 입력 세트에서 뉴런의 출력이 음수에서 양수로, 또는 양수에서 음수로 바뀌는 경우를 추적합니다.

  • 변경 추적: 입력의 작은 변화로 인해 뉴런 출력의 부호가 변화하는 경우를 확인하여, 모델의 민감성을 평가합니다.

Value Change Coverage: 특정 입력의 변화에 따라 뉴런의 활성화 값이 크게 변동하는지를 평가합니다. 이는 모델의 안정성이나 민감도를 분석하는 데 도움이 됩니다.

  • 변화 정도 측정: 모든 뉴런 중에서 변화량이 설정된 기준 이상으로 바뀐 뉴런의 비율을 계산하여, 입력이 약간 변화할 때 뉴런의 활성화 값이 미세하게 변동하는지, 급격하게 변동하는지를 확인합니다.

Sign-Sign Coverage: 신경망에서 한 뉴런의 부호가 바뀌었을 때, 그 변화가 다음 계층의 특정 뉴런에만 영향을 미치는지 확인하는 지표입니다. 이를 쉽게 설명하자면, 한 뉴런의 출력값의 부호가 바뀌었을 때 그 변화를 특정 뉴런에서만 반영하고, 다른 뉴런들은 영향을 받지 않고 그대로 유지되는지를 평가하는 것입니다.

  • 부호 변경: 여기서 부호란 활성화 값이 양수인지 음수인지를 의미합니다. 부호가 바뀌는 것은 양수에서 음수로, 또는 음수에서 양수로 변하는 경우를 말합니다.

Layer Coverage: 신경망의 각 계층이 입력에 대해 충분히 활성화되는지를 평가하는 지표입니다. 이는 모델의 구조를 계층별로 분석하여, 모든 계층이 테스트 입력에 대해 적절하게 동작하고 있는지 확인합니다.

  • 계층별 활성화 검증: 각 계층의 모든 뉴런이 일정 수준 이상 활성화되는지 확인하여, 모델이 입력을 효과적으로 처리하고 있는지를 평가합니다.

 

Comments