다섯 살도 알 수 있게 · SW공학

메타모픽 테스트가 뭐예요?

메타모픽 테스트를, 정답이 없는 번역 원고를 '문장을 반복하면 번역도 반복돼야 한다'는 관계로 검증하는 출판사 이야기로 풀어봤어요.

원문번역문이 번역이 맞는지 볼 정답을 몰라요번역엔 '유일한 정답'이 없을 때가 많아요

번역이 맞는지 비교할 정답을 교정자도 몰라요.번역엔 '유일한 정답'이 없을 때가 많아요.

정답지'정답과 비교하기'라는 평소 방법을 못 써요그럼 번역이 맞는지 아예 확인을 못 할까요

'정답과 비교하기'라는 평소 방법을 못 써요.그럼 번역이 맞는지 아예 확인할 방법이 없을까요?

문장문장을 두 번 반복입력: 문장+문장출력도 번역문+번역문이어야 해요메타모픽 테스트 = 정답은 몰라도, 입력을 바꿨을 때 출력도 정해진 규칙대로 바뀌는지 확인하기

메타모픽 테스트는 정답 없이도 입력과 출력의 관계로 번역을 확인해요.문장을 두 번 넣으면, 번역문도 두 번 나와야 해요.

정답 없이도 테스트정답을 몰라도 괜찮아요
입력을 규칙적으로 바꾸기예: 문장을 반복해요
출력도 같은 규칙으로입력이 반복이면 출력도 반복이어야 해요
관계가 깨지면 버그정답을 몰라도 버그를 알아챌 수 있어요
메타모픽 관계 예시문장을 두 번 반복 → 번역문도 두 번 반복돼야 함단어 순서를 살짝 바꿔도 → 핵심 단어 수는 똑같아야 함같은 문장을 따로 두 번 번역하면 → 두 번 다 같은 번역이 나와야 함이 관계가 깨지면, 정답을 몰라도 번역기 어딘가 잘못됐다는 신호예요

문장을 반복하면 번역문도 반복되듯, 입력과 출력 사이의 '관계'를 미리 정해두고 확인해요.이 관계가 깨지면, 정답을 몰라도 번역기 어딘가 잘못됐다는 신호예요.

관계를 잘못 세우면 진짜 버그를 놓쳐요정답을 아는 경우엔 정답 비교가 더 정확해요메타모픽 테스트는 '정답 비교'를 완전히 대신하진 않아요

관계를 잘못 세우면 버그를 놓칠 수 있어요.정답을 아는 경우엔, 정답과 비교하는 쪽이 더 정확해요.

한 줄로

메타모픽 테스트는 '정답'을 몰라도, 입력이 바뀌면 출력도 이렇게 바뀌어야 한다는 관계를 확인해 버그를 찾는 테스트예요.

메타모픽 테스트는 '오라클 문제'(정답을 알 수 없거나 정답 하나를 정하기 어려운 경우)가 있는 프로그램을 위한 테스트 기법이에요. 번역기, 검색엔진, 머신러닝 모델처럼 유일한 정답이 없는 경우, 입력을 특정 방식으로 변형했을 때 출력이 만족해야 할 '메타모픽 관계'를 정의하고, 그 관계가 지켜지는지로 결함을 찾아요.

어른들은 이렇게 불러요

메타모픽 테스트
Metamorphic Testing
정답 없이 관계로 확인하기. 오라클 문제가 있을 때 써요.
오라클 문제
Oracle Problem
정답지가 없거나 정답을 하나로 정하기 어려운 상황. 번역·검색·ML에서 자주 생겨요.
메타모픽 관계
Metamorphic Relation
입력을 바꾸면 출력도 이렇게 바뀐다는 규칙. 미리 정의해둬야 해요.
회귀테스트
Regression Test
줄거리가 그대로인지 확인하는 교정. 정답(기대 결과)을 알 때 더 흔히 써요.
가설검정
Hypothesis Testing
우연인지 진짜 차이인지 숫자로 가리기. 다른 방식으로 '모르는 것'을 다루는 방법이에요. → 두 표지 중 뭐가 진짜 더 잘 팔릴까
블랙박스테스트
Black-box Testing
내부는 안 보고 결과만 보는 교정. 메타모픽 테스트도 이 계열이에요. → 속을 펼쳐 볼지, 겉만 읽을지
단위테스트
Unit Test
정답지를 두고 비교하는 보통 교정. 정답이 있을 때는 단위테스트가 더 정확해요.
AI 환각
AI Hallucination
그럴듯하지만 틀린 답을 내놓는 현상. 정답 없는 AI 결과를 검증할 때도 메타모픽 발상이 쓰여요. → AI 분야의 그럴듯한 거짓말
다음 이야기
책 만들기를 나뭇가지로 늘어놓기 →
다른 용어도 그림책으로 보고 싶다면 요청하기 →