익명 사용자
로그인하지 않음
토론
기여
계정 만들기
로그인
IT 위키
검색
몽키 테스트
편집하기
IT 위키
이름공간
문서
토론
더 보기
더 보기
문서 행위
읽기
편집
원본 편집
역사
경고:
로그인하지 않았습니다. 편집을 하면 IP 주소가 공개되게 됩니다.
로그인
하거나
계정을 생성하면
편집자가 사용자 이름으로 기록되고, 다른 장점도 있습니다.
스팸 방지 검사입니다. 이것을 입력하지
마세요
!
'''몽키 테스트(소프트웨어 공학)'''(영어: Monkey Testing)은 테스트 케이스나 시나리오 없이 무작위 입력이나 사용자 이벤트를 애플리케이션에 가하여, 예기치 않은 오류나 충돌이 발생하는지를 탐색하는 소프트웨어 테스트 기법이다. ==개념== 몽키 테스트는 내부 구조나 상세 기능을 미리 고려하지 않고, 마치 원숭이가 무작위로 키를 누르거나 화면을 터치하듯이 시스템에 입력을 가하는 방식이다. 이러한 방식으로 “정해진 흐름”이 아닌 다양한 예기치 않은 사용 방식에서 발생할 수 있는 취약점을 밝혀내려는 것이다. 이 기법은 특히 UI / 사용자 이벤트 중심 애플리케이션, 모바일 앱, 게임, 복잡한 사용자 인터랙션이 있는 시스템 등에 유용하다. ==특성== *테스트 케이스가 정해져 있지 않으며, 입력이나 이벤트가 예측 불가능하다. *오류 재현이 어렵거나 불가능한 경우가 많다. *시스템이 예기치 않은 사용 방식이나 무작위 입력에 대해 얼마나 견고한지를 평가할 수 있다. *일반 기능 테스트나 요구사항 기반 테스트와는 보완적인 역할을 한다. ==활용 맥락== *UI 기반 애플리케이션 테스트: 버튼 클릭, 스와이프, 키 입력 등이 많거나 사용자 행동이 다양할 때. *스트레스 테스트나 견고성 테스트: 사용자가 지나치게 많은 입력을 주거나 비정상적 상호작용이 발생할 가능성이 있는 경우. *개발 초기 단계에서 빠르게 발견 가능한 치명적인 충돌을 찾고자 할 때. *자동화된 도구를 이용하여 무작위 이벤트를 대량으로 실행할 때. ==종류== *Dumb Monkey Testing **애플리케이션의 동작이나 내부 구조에 대한 이해 없이 무작위 입력만 수행하는 방식. *Smart Monkey Testing **애플리케이션의 흐름이나 일부 구조를 알고 난 뒤, 보다 목적성 있는 무작위 입력을 수행하는 방식. *Brilliant Monkey Testing **도메인 지식이나 사용 패턴을 바탕으로 고급 무작위 테스트를 수행하는 방식. ==장점과 단점== ===장점=== *예상치 못한 버그나 크래시를 발견할 수 있다. *테스트 설계가 단순하며, 빠르게 실행할 수 있다. *자동화를 통해 대량의 무작위 입력을 테스트할 수 있다. ===단점=== *어떤 입력이 버그를 유발했는지 추적이 어렵다. *테스트 커버리지나 품질 보장을 위해서는 다른 테스트 기법과 병행해야 한다. *무작위 입력이므로 실제 사용자의 대표성을 가지지 않을 수 있다. *리소스나 환경 설정이 부적절하면 의미 있는 결과를 얻기 어렵다. ==다른 테스트 기법과의 비교== *기능 테스트(Functional Testing) **정해진 요구사항을 바탕으로 설계된 테스트 케이스를 따른다. 반면 몽키 테스트는 무작위 입력 중심이다. *퍼즈 테스트(Fuzz Testing) **무작위 또는 비정상 데이터를 입력하여 오류를 탐색하는 방식이다. 퍼즈 테스트가 주로 보안 취약점이나 데이터 입력 오류에 집중하는 반면, 몽키 테스트는 사용자 이벤트 중심의 무작위를 강조한다. *회귀 테스트(Regression Testing) **코드 변경 이후 기존 기능이 정상 작동하는지를 확인하는 테스트이며, 대비하여 몽키 테스트는 기능 변화 여부와 관계없이 무작위로 시스템을 자극한다. ==수행 절차 및 팁== *테스트의 목표를 정의한다: 예를 들어 “UI 버튼이 많을 경우 충돌이 발생하지 않는가?” *대상 애플리케이션 및 환경을 준비한다(에뮬레이터, 실제 디바이스 등). *무작위 이벤트를 생성할 수 있는 도구나 스크립트를 준비한다(예: 안드로이드의 adb monkey). *실행 횟수, 이벤트 유형, 지연 시간 등을 설정한다. *실행 중 모니터링하여 애플리케이션 충돌, 예외, 비정상 응답 등을 기록한다. *테스트 결과를 분석하여 어떤 입력이 문제를 발생시켰는지 가능하면 추적하고, 개선 활동으로 이끌어낸다. *반복 수행 및 다른 테스트 기법과 병행하여 보완한다. ==요약== 몽키 테스트는 체계적인 테스트 케이스 없이 무작위 입력을 통해 시스템의 견고성과 오류 발생 가능성을 탐색하는 유용한 테스트 기법이다. 다만 이러한 방식만으로는 품질을 보장할 수 없으며, 기능 테스트·회귀 테스트 등과 함께 조합하여 사용하는 것이 바람직하다. ==같이 보기== *[[퍼즈 테스트]] *[[회귀 테스트]] *[[기능 테스트]] *[[소프트웨어 테스트]] *[[스트레스 테스트]] ==참고 문헌== *GeeksforGeeks. “Monkey Software Testing.” *Android Developers. “UI/Application Exerciser Monkey.” *Testomat.io. “What is Monkey Testing in Software Testing?” *IT신비. “몽키테스트/회귀테스트/통합테스트.” ==각주== <references /> [[분류:소프트웨어 공학]]
요약:
IT 위키에서의 모든 기여는 크리에이티브 커먼즈 저작자표시-비영리-동일조건변경허락 라이선스로 배포된다는 점을 유의해 주세요(자세한 내용에 대해서는
IT 위키:저작권
문서를 읽어주세요). 만약 여기에 동의하지 않는다면 문서를 저장하지 말아 주세요.
또한, 직접 작성했거나 퍼블릭 도메인과 같은 자유 문서에서 가져왔다는 것을 보증해야 합니다.
저작권이 있는 내용을 허가 없이 저장하지 마세요!
취소
편집 도움말
(새 창에서 열림)
둘러보기
둘러보기
대문
최근 바뀜
광고
위키 도구
위키 도구
특수 문서 목록
문서 도구
문서 도구
사용자 문서 도구
더 보기
여기를 가리키는 문서
가리키는 글의 최근 바뀜
문서 정보
문서 기록