1. 몌타모픽 테스트 기법 개요
1.1 메타모픽 테스팅이란?
- 메타모픽 테스팅(Metamorphic Testing, MT)
- 입력과 출력 간의 관계, 즉 ‘메타모픽 관계(Metamorphic Relations, MRs)’를 활용하여 소프트웨어의 신뢰성을 검증하는 방법
- 테스트 오라클 문제(Test Oracle Problem)를 해결하기 위해 고안된 소프트웨어 테스팅 분야의 오래된 기법 중 하나
- 테스트 오라클 문제란?
- 어떤 소프트웨어를 테스트했을 때 정확한 ‘기대 출력값’을 알기 어렵거나 존재하지 않아서
- 테스트가 통과했는지 실패했는지 판정하기 어려운 상황
- 원래는 소프트웨어의 동작을 평가하는 보조적인 수단으로 사용되었음
1.2 메타모픽 테스팅이 필요한 이유
- AI 기반 시스템(이미지 인식, 자연어 처리 모델 등)에서는 정확한 기대 출력값을 일일이 정의하기 매우 어려움
- 예시
- 한 이미지를 인식하는 AI 모델에 대해 “이 이미지는 고양이”라고 기대할 수는 있지만,
- 그 ‘고양이’에 해당하는 정확한 픽셀값 배열이 무엇이라고 단정하기는 불가능함
- 메타모픽 테스팅이 유용하게 활용됨
1.3 메타모픽 테스팅의 작동 방식
- 원본 입력(Source Input)과 그에 대한 원본 출력(Source Output)을 준비
- 원본 입력에 특정 변환(Transformation)을 적용하여 후속 입력(Follow-up Input)을 생성
- 소프트웨어는 후속 입력에 대해서도 후속 출력(Follow-up Output)을 생성
- 메타모픽 관계는 원본 출력과 후속 출력 사이에 기대되는 관계를 정의함
- 예: 이미지를 회전시켜도 분류 결과가 같아야 한다는 규칙 등
- 이러한 관계가 성립하는지 확인하여 소프트웨어의 올바른 동작 여부를 판단
1.4 메타모픽 테스팅의 적용 방식
- 입력에 대한 출력 관계가 아니라, 다른 종류의 관계성을 이용함
- 입력에 대한 출력의 정답 값은 알 수 없지만, 입력이 변화되면 출력이 어떻게 변화할 것인지를 알고 있는 경우
- 예시
- 7세 아동의 정확한 입장료를 알 수 없어도, 같은 나이라면 생년월일이 다르더라도 입장료는 같음
- 어떤 이미지가 고양이인지는 알 수 없어도, 고양이라고 판별된 이미지의 밝기를 변경해도 그 분류 결과는 고양이로 나옴
- 이처럼 “입력 데이터의 변화에 따라서 추론 결과가 어떻게 변화하는지(또는 변화하지 않는지)에 관한 관련성”을 토대로 하는 테스트 기법
AI 분야에서의 활용 사례
- 자세 추정 시스템(MET-POSE 기법 등)
- 입력 이미지에 특정 메타모픽 규칙(예: 이미지 회전, 조명 변경)의 변환을 적용한 후,
- 원본과 수정된 이미지의 자세 추정 결과가 메타모픽 관계에 부합하는지 검증
- CNN 이미지 분류 모델
- CNN 기반 이미지 분류 모델이 실제 입력 환경에서도 성능을 유지하는지 검증하기 위한 테스트 케이스 생성 활용
- 자율주행 시스템
- GAN(생성적 적대 신경망)을 활용하여 다양한 도로 상황을 생성
- 차선 변경과 같은 동작이 일관되게 이루어지는지를 검사하는 데 메타모픽 관계 적용
- 메타모픽 테스팅은 테스트 오라클이 부재하거나 테스트 비용이 높은 상황에서, 소프트웨어의 신뢰성을 효과적으로 검증할 수 있는 강력한 기법
- 특히 AI 모델의 복잡성으로 인해 발생하는 다양한 오류를 찾아내는 데 크게 기여하고 있음