메타모픽 테스트 기법의 개념과 활용

1. 몌타모픽 테스트 기법 개요

1.1 메타모픽 테스팅이란?

  • 메타모픽 테스팅(Metamorphic Testing, MT)
  • 입력과 출력 간의 관계, 즉 ‘메타모픽 관계(Metamorphic Relations, MRs)’를 활용하여 소프트웨어의 신뢰성을 검증하는 방법
  • 테스트 오라클 문제(Test Oracle Problem)를 해결하기 위해 고안된 소프트웨어 테스팅 분야의 오래된 기법 중 하나
    • 테스트 오라클 문제란?
      • 어떤 소프트웨어를 테스트했을 때 정확한 ‘기대 출력값’을 알기 어렵거나 존재하지 않아서
      • 테스트가 통과했는지 실패했는지 판정하기 어려운 상황
  • 원래는 소프트웨어의 동작을 평가하는 보조적인 수단으로 사용되었음

1.2 메타모픽 테스팅이 필요한 이유

  • AI 기반 시스템(이미지 인식, 자연어 처리 모델 등)에서는 정확한 기대 출력값을 일일이 정의하기 매우 어려움
    • 예시
      • 한 이미지를 인식하는 AI 모델에 대해 “이 이미지는 고양이”라고 기대할 수는 있지만,
      • 그 ‘고양이’에 해당하는 정확한 픽셀값 배열이 무엇이라고 단정하기는 불가능함
  • 메타모픽 테스팅이 유용하게 활용됨

1.3 메타모픽 테스팅의 작동 방식

  1. 원본 입력(Source Input)과 그에 대한 원본 출력(Source Output)을 준비
  2. 원본 입력에 특정 변환(Transformation)을 적용하여 후속 입력(Follow-up Input)을 생성
  3. 소프트웨어는 후속 입력에 대해서도 후속 출력(Follow-up Output)을 생성
  4. 메타모픽 관계는 원본 출력과 후속 출력 사이에 기대되는 관계를 정의함
    • 예: 이미지를 회전시켜도 분류 결과가 같아야 한다는 규칙 등
  5. 이러한 관계가 성립하는지 확인하여 소프트웨어의 올바른 동작 여부를 판단

1.4 메타모픽 테스팅의 적용 방식

  • 입력에 대한 출력 관계가 아니라, 다른 종류의 관계성을 이용함
    • 입력에 대한 출력의 정답 값은 알 수 없지만, 입력이 변화되면 출력이 어떻게 변화할 것인지를 알고 있는 경우
    • 예시
      • 7세 아동의 정확한 입장료를 알 수 없어도, 같은 나이라면 생년월일이 다르더라도 입장료는 같음
      • 어떤 이미지가 고양이인지는 알 수 없어도, 고양이라고 판별된 이미지의 밝기를 변경해도 그 분류 결과는 고양이로 나옴
    • 이처럼 “입력 데이터의 변화에 따라서 추론 결과가 어떻게 변화하는지(또는 변화하지 않는지)에 관한 관련성”을 토대로 하는 테스트 기법

AI 분야에서의 활용 사례

  • 자세 추정 시스템(MET-POSE 기법 등)
    • 입력 이미지에 특정 메타모픽 규칙(예: 이미지 회전, 조명 변경)의 변환을 적용한 후,
    • 원본과 수정된 이미지의 자세 추정 결과가 메타모픽 관계에 부합하는지 검증
  • CNN 이미지 분류 모델
    • CNN 기반 이미지 분류 모델이 실제 입력 환경에서도 성능을 유지하는지 검증하기 위한 테스트 케이스 생성 활용
  • 자율주행 시스템
    • GAN(생성적 적대 신경망)을 활용하여 다양한 도로 상황을 생성
    • 차선 변경과 같은 동작이 일관되게 이루어지는지를 검사하는 데 메타모픽 관계 적용
  • 메타모픽 테스팅은 테스트 오라클이 부재하거나 테스트 비용이 높은 상황에서, 소프트웨어의 신뢰성을 효과적으로 검증할 수 있는 강력한 기법
  • 특히 AI 모델의 복잡성으로 인해 발생하는 다양한 오류를 찾아내는 데 크게 기여하고 있음