다섯 살도 알 수 있게 · SW공학
메타모픽 테스트가 뭐예요?
메타모픽 테스트를, 정답이 없는 번역 원고를 '문장을 반복하면 번역도 반복돼야 한다'는 관계로 검증하는 출판사 이야기로 풀어봤어요.
번역이 맞는지 비교할 정답을 교정자도 몰라요.번역엔 '유일한 정답'이 없을 때가 많아요.
'정답과 비교하기'라는 평소 방법을 못 써요.그럼 번역이 맞는지 아예 확인할 방법이 없을까요?
메타모픽 테스트는 정답 없이도 입력과 출력의 관계로 번역을 확인해요.문장을 두 번 넣으면, 번역문도 두 번 나와야 해요.
정답 없이도 테스트정답을 몰라도 괜찮아요
입력을 규칙적으로 바꾸기예: 문장을 반복해요
출력도 같은 규칙으로입력이 반복이면 출력도 반복이어야 해요
관계가 깨지면 버그정답을 몰라도 버그를 알아챌 수 있어요
문장을 반복하면 번역문도 반복되듯, 입력과 출력 사이의 '관계'를 미리 정해두고 확인해요.이 관계가 깨지면, 정답을 몰라도 번역기 어딘가 잘못됐다는 신호예요.
관계를 잘못 세우면 버그를 놓칠 수 있어요.정답을 아는 경우엔, 정답과 비교하는 쪽이 더 정확해요.
한 줄로
메타모픽 테스트는 '정답'을 몰라도, 입력이 바뀌면 출력도 이렇게 바뀌어야 한다는 관계를 확인해 버그를 찾는 테스트예요.
메타모픽 테스트는 '오라클 문제'(정답을 알 수 없거나 정답 하나를 정하기 어려운 경우)가 있는 프로그램을 위한 테스트 기법이에요. 번역기, 검색엔진, 머신러닝 모델처럼 유일한 정답이 없는 경우, 입력을 특정 방식으로 변형했을 때 출력이 만족해야 할 '메타모픽 관계'를 정의하고, 그 관계가 지켜지는지로 결함을 찾아요.
어른들은 이렇게 불러요
- 메타모픽 테스트
Metamorphic Testing - 정답 없이 관계로 확인하기. 오라클 문제가 있을 때 써요.
- 오라클 문제
Oracle Problem - 정답지가 없거나 정답을 하나로 정하기 어려운 상황. 번역·검색·ML에서 자주 생겨요.
- 메타모픽 관계
Metamorphic Relation - 입력을 바꾸면 출력도 이렇게 바뀐다는 규칙. 미리 정의해둬야 해요.
- 회귀테스트
Regression Test - 줄거리가 그대로인지 확인하는 교정. 정답(기대 결과)을 알 때 더 흔히 써요.
- 가설검정
Hypothesis Testing - 우연인지 진짜 차이인지 숫자로 가리기. 다른 방식으로 '모르는 것'을 다루는 방법이에요. → 두 표지 중 뭐가 진짜 더 잘 팔릴까
- 블랙박스테스트
Black-box Testing - 내부는 안 보고 결과만 보는 교정. 메타모픽 테스트도 이 계열이에요. → 속을 펼쳐 볼지, 겉만 읽을지
- 단위테스트
Unit Test - 정답지를 두고 비교하는 보통 교정. 정답이 있을 때는 단위테스트가 더 정확해요.
- AI 환각
AI Hallucination - 그럴듯하지만 틀린 답을 내놓는 현상. 정답 없는 AI 결과를 검증할 때도 메타모픽 발상이 쓰여요. → AI 분야의 그럴듯한 거짓말
다음 이야기
책 만들기를 나뭇가지로 늘어놓기 →