SE

metamorphic test

  • 간접테스트
댓글 24
홍신·일 년 전
원래 의도를 살린 직역으로 ''변성 테스팅'' 제안합니다.
홍신·일 년 전
변성암(metamorphic rock)과 같이, 개발자가 만든 테스트 케이스에 변화를 줘서 새로운 테스트 케이스를 도출한다는 의도로 metamorphic test 라는 이름을 지었다고 합니다: https://www.cse.ust.hk/faculty/scc/publ/CS98-01-metamorphictesting.pdf
이광근/YiKwangkeun·일 년 전
1. "새로운 테스트 케이스를 도출한다"라는 것이, 간접적으로 확인해주는 테스트 케이스를 뜻하죠? 2. 홍교수님은 항상 한문투를 애용하시는군요. 더 쉽게, "떠보는 테스트", "간접 테스트"가 부족한가요? 3. https://en.wikipedia.org/wiki/Metamorphic_testing 를 보면, 말그대로 meta-morphic 한 방법이네요. 실제 요구사항을 직접 확인하기 어려운 경우, 간접적인 성질("변성", 확인하고픈 성질의 변형, 확인하고픈 요구사항(생김새,morph)을 대상 목적물로(meta-X, X를 대상으로) 주물러 변형한 성질)을 테스트해서 더듬어 보는 것이라고 이해합니다. (예, sin(x)가 맞게 구현되었나? 대신에 sin(x) = sin(x+pi) 인지 테스트해서 간접적으로 확인한다. sort(x)의 경우, 결과의 첫원소 <= 마지막원소 인지 테스트해서 간접적으로 확인한다.)
홍신·일 년 전
결과를 간접적으로 체크한다는 뜻으로 간접 테스트 좋은 것 같습니다. 떠보는 테스트의 경우, 듣는 사람에 따라 테스트를 실제로 실행하지 않고도 결과를 떠본다는 뜻으로 오해하지 않을지 걱정이 됩니다.
이광근/YiKwangkeun·일 년 전
그런것 같네요
홍신·일 년 전
오늘날 metamorphic testing이라는 말은 원래 의미를 재해석한 의미로 활용되고 있는 것 같습니다.
홍신·일 년 전
묶음 테스팅, 뭉치 제안합니다. 여러 실행을 아우르는 성질을 이용한 테스팅이라는 의미를 살려 묶음 혹은 뭉치라 부르면 어떨까합니다.
이광근/YiKwangkeun·일 년 전
더 자세한 설명 부탁해요. 아래 설명과 제가 알게된 내용과 다른 건가요?
이광근/YiKwangkeun·일 년 전
"여러 실행을 아루르는 성질을 이용한"의 예를 들어주길 바랍니다.
홍신·일 년 전
이미지 파일을 받아서 이미지에서 고양이 몇 마리 있는지 찾는 프로그램이 있다고 할 때, 입력 이미지를 늘리거나 줄이거나 뒤집거나 회전시켜서 여러 이미지를 만들어서 각 이미지에서 고양이 숫자는 같게 나오는지 테스팅하는 게 metamorphic test의 예입니다.
홍신·일 년 전
또, 이미지의 일부분을 추출한 이미지를 만들면 원본 이미지의 고양이 수와 같거나 작다, 를 테스팅하는 경우도 메타몰픽 테스팅입니다.
이광근/YiKwangkeun·일 년 전
보통의 테스트도 이래요. 아닌가요?
이광근/YiKwangkeun·일 년 전
보통의 테스트와 다른점이 없는 예 같은데요?
홍신·일 년 전
metamorphic relation이란 여러개 입력값과 출력값의 관계에 대한 성질을 뜻합니다. metamorphic relation을 확보하면 각 개별 입력에 대한 구체적인 출력값을 정의하지 않아도 검사를 할수 있기 때문에 nontestable program을 두루뭉실하게 테스팅할 때 오라클로 활용하려는 시도가 많이 있습니다.
홍신·일 년 전
간접 테스트, 떠보는 테스트가 metamorphic test에 주요한 활용방식입니다만, 핵심은 여러 입력 여러 출력 관계를 활용한다는 점이라 생각합니다.
이광근/YiKwangkeun·일 년 전
여러입출력을 활용하는 게 핵심이라면 왜 "metamorhpic"이라고 이름지은 걸까요?
이광근/YiKwangkeun·2년 전
떠보는 테스트를 제안합니다.
이광근/YiKwangkeun·간접테스트·2년 전
간접테스트를 제안합니다.
이광근/YiKwangkeun·2년 전
쉽게쉽게, 별거아닌걸 거창하게 "metamorphic test"라고 하는 허풍/허세를 날려버려요. 우리말로는 누구나 쉽게 알 수 있도록요.
JC
Jaeho Choi·2년 전
입력과 출력이 규칙을 만족하는지 테스팅 한다는 의미에서 입출력 규칙 테스팅을 제안합니다
JC
Jaeho Choi·2년 전
항상 Metamorphic Testing을 적절하게 바꿀 말이 없어서 '메타몰픽 테스팅' 이라고 불렀는데, 쉬운 용어를 제안 부탁드립니다!
이광근/YiKwangkeun·2년 전
무슨 테스팅인지 설명해 주실 수 있을까요?
JC
Jaeho Choi·2년 전
프로그램에 입력을 주었을 때 어떤 출력이 나오는지는 정확히 모르지만, 여러 입출력들 사이의 규칙을 알 때 그 규칙을 잘 지키는지 테스트 하는 방법입니다. 예를 들어 sin(x)를 구현한 프로그램 P가 있을 때, P가 sin(x) = sin(pi-x)라는 규칙을 잘 지키는지 확인하기 위해 P에 1.234와 pi-1.234를 넣어보고 같은 출력이 나오는지 검사하는 방법이 있겠습니다.
이광근/YiKwangkeun·2년 전
정답 값/상태를 만드는지 직접 테스트하는게 아니고, 만족할 성질을 간접적으로 테스트하는 거군요. 그래서 "meta-morphic"(생김새-성질을 대상으로하는) 테스트라는 이름이 붙었군요. 직접적인 단도직입 테스트가 아니라 간접적인 테스트, 떠보는 테스트 아닐까요?

검색창

쉬운 전문용어를 찾아보세요