일반적으로 경험에 의존해서 테스팅 하는 것을 경험 기반 기법(experience-based technique)으로 구분하는데, 대표적인 것으로 애드혹(add-hoc) 테스팅이나 오류 추정(error-guessing) 등이 있다.
지난해 5월 릴리즈된 ISTQB 표준용어(Standard glossary of terms used in Software Testing) Version 1.3에서는 몇가지 새로운 단어가 추가 되었다. 그 중 하나가 몽키 테스팅(Monkey testing)이다. 몽키인지 멍키인지 발음은 확실치 않지만, 몽키로 부르겠다. 몽키 테스팅을 경험 기반 기법으로 착각할 수도 있을 수 있겠지만 전혀 그렇지 않다.
Testing by means of a random selection from a large range of inputs and by
randomly pushing buttons, ignorant on how the product is being used.
제품이 어떻게 사용되는지 모르는채로, 방대한 범위에서 입력 값을 랜덤하게 선정하거나 랜덤하게 버튼을 누르는 방식으로 수행되는 테스팅.
위 해석은 내 임의대로 한 것이므로 정확하지 않을 수도 있다. (틀린 내용이 있으면 댓글로 알려주시기 바람) 참고로 이 단어는 이번에 새로 개정되는 "개발자도 알아야할 소프트웨어 테스팅 용어" 서적에 포함될 예정이다. 어쨌든 읽어보면 무슨 의미를 담고 있는 용어인지는 이해가 될 것이다. 일반적으로 테스팅을 수행할 때 소프트웨어 제품에 대해 잘 알지도 못한 상태에서 랜덤하게 테스팅하는 것을 말한다. 테스팅을 수행하기 위해서는 최소한 어떠한 제품인지, 어떻게 동작하는지, 어떠한 기능이 중요한지와 제품의 도메인 지식 정도는 기본적으로 갖추어야 할텐데 그렇지 못한 테스터들을 소위 "원숭이"로 평가 절하하여 표현한 것 같다. 참으로 적절한 표현임이 아닐 수 없다. 이 용어가 우리들에게 주는 교훈은 무엇인가?
- 제품에 대해 충분히 이해한 상태에서 테스팅을 수행하라.
- 랜덤하게 테스팅하지 말고 충분히 고민하여 제품에 맞는 테스트 설계 기법을 적용하라.
마지막으로 한가지 질문을 던지며 글을 마치고자 한다.
"혹시 당신, 원숭이는 아닌가?"
* 이미지 출처 : 네이버 이미지
TAG ISTQB,
monkey testing,
software testing,
testing,
개발자도 알아야할,
몽키,
몽키 테스팅,
소프트웨어 테스팅,
용어,
테스팅,
테스팅 용어

댓글을 달아 주세요
재밋네요...잘 읽었습니다.
시스템을 이해한 원숭이가 되길...!!!
오 좋은 내용이네요. 앞으로 목적없이 테스트 하는 사람은 몽키테스터라고 해야 겠네요.
제 경험으로는... 업무할때 무조건 던져주고 테스트 해보라고 할때.
테스트는 접어두고 인터넷을 찾아 보면서 공부하고 이해하려고 노력했습니다.
이후 테스트를 진행했구요. 시간이 지날수록 관련 전문지식이 늘어가더군요.
무엇보다도 테스터들에게 사명감이 있어야 한다고 생각 합니다...
몽키들은 사명감이 없겠지요?
버터님, 또 들러주셔서 감사합니다. :)
말씀해주신대로 "몽키 테스터"들은 생각없이 테스팅 하는 사람들을 지칭할 수 있겠네요.
해외에선 그렇게 부르는 것 같습니다. 랜덤하게 누르는 것은 원숭이도 할 수 있으니 이보다 적절한 표현이 있을까요? ^^ 자주 쓰이다가 아예 표준용어로 굳혀진것 같네요.
우연히 지나가다 들렸습니다.
제가 알고있는 monkey test와는 다른 의견을(글을) 포스팅 하셔서 댓글을 쓰게 되네요.
제 생각에는 몽키 테스트가 스마트하지 않은 테스터를 지칭 하는 말이 아니라,
무한 원숭이 정리(INFINITE MONKEY THEOREM)에서 파생된, 확률적으로 극히 낮은 상황에 대한 테스트나 무한 입력값 테스트, 쓰레기값 검출 등의 테스트를 지칭하는 것이 아닐까 싶습니다.
몽키 테스트를 수행하는 툴도 있고, 자체적으로 스크립트로 만들어 사용하기도 하는 것으로 알고 있습니다.
지나가다 잘못 이해하신것 같아서 잠깐 씁니다.
Monkey Test는 보통 Automation Tool로 랜덤하게 기능을 수행하는 테스트를 지칭합니다.
일반적으로 품질일을 하다보면 상식적으로 이해하기 어려운 경로로 버그를 발생시키는 사용자를 많이 봅니다. 그래서 소비자를 일반적으로 Monkey에 비교하기도 하죠. 어떠한 입력을 할지 모른다고
이러한 부분을 Monkey Test를 통해 확률적으로 보증하기 위한 시험입니다. 충분한 입력을 줬을경우 상당히 높은 수준의 경로를 Cover하는 테스트입니다.
일예로 MS의 Windows Mobile같은 경우 제조사에 반드시 Monkey Test결과를 리포트하도록 요청합니다. Android역시 Google에서 Monkey Test툴을 제공하고 있습니다. 참고하세요.
즉 Monkey Test는 테스터가 아닌 소비자를 지칭한다고 하는게 더 맞을 것 같습니다. 오히려 Monkey Test는 상당히 Smart한 테스트라고 저는 생각합니다.