Test Automation/AWS Devicefarm

Fuzz Test ? Monkey Test ? | Android Random Test

summer.west 2020. 12. 7. 21:06

소프트웨어 테스트를 할 때 작성된 테스트 케이스에 맞춰 기능을 테스트하는 경우도 있지만,
정해진 패턴없이 무작위로 랜덤 데이터 입력으로 진행되는 테스트도 필요하다.

이러한 테스트를 일컫는 용어인 Fuzz Test

 

구글링을 해보면 주로 보안과 관련된 글이 많은 걸로 보아,
주로 보안 취약점을 발견하는 데 사용하는 테스트 기법인 것 같다.

 


 

Fuzz Test : AWS Devicefarm Built-in Fuzz Test

AWS Devicefarm에서 기본적으로 제공하는 Fuzz Test
랜덤 데이터 입력으로 소프트웨어/하드웨어의 취약점을 확인하는 테스트를 의미한다.

실제로 AWS Devicefarm에서 Built in Fuzz-Test 스크린 레코드를 보면 정신없이 화면이 움직이는 모습을 볼 수 있다.

 

 

AWS Devicefarm 이용 방법은 공식 홈페이지에 친절하게 나와있어서 생략한다.

 

Device Farm용 기본 제공 퍼지 테스트를 이용한 작업 - AWS Device Farm

이 페이지에 작업이 필요하다는 점을 알려 주셔서 감사합니다. 실망시켜 드려 죄송합니다. 잠깐 시간을 내어 설명서를 향상시킬 수 있는 방법에 대해 말씀해 주십시오.

docs.aws.amazon.com

 

이 테스트를 오프라인 단말에서 할 수 있는 방법이 없을까 찾던 중 알게 된

 

Monkey Test

Android adb에서 제공하는 Monkey Test tool

역시 친절한 안드로이드 문서에 설명이 너무 잘 되어 있다.

 

UI/Application Exerciser Monkey  |  Android 개발자  |  Android Developers

Monkey는 에뮬레이터나 기기에서 실행되는 프로그램으로 여러 시스템 레벨 이벤트뿐만 아니라 클릭, 터치, 동작과 같은 사용자 이벤트의 의사 랜덤 스트림을 생성합니다.

developer.android.com

아무것도 모르는 원숭이가 이것저것 막 눌러보듯이 테스트를 한다고 해서 Monkey Test다.

에뮬레이터와 실제 기기 모두 사용 가능하며, adb 기본 사용 설정이 되어 있어야 한다. ※ 아래 글 참고 ※

 

Android adb 환경변수 설정 (Feat. 연결된 기기 확인)

테스트 자동화 프로그램을 구축하면서 많이 쓰는 adb 명령어 ! adb 명령어를 사용하려면 환경변수 설정을 해줘야 한다. 사전준비 1. Android Studio SDK 설치 Download Android Studio and SDK tools  | Android..

summer-west.tistory.com

Monkey 를 사용하는 기본 구문은 다음과 같고, option을 설정해 나름 세세하게 랜덤 동작을 조절할 수 있다.

 

adb shell monkey [options] <event-count>

옵션에 대한 설명도 공식 홈페이지에 아주 잘 나와있지만, 주요 옵션에 대해서 참고사항을 적자면

 

동영상은 옵션이 -v 500 -s 500 이라 굉장히 빠르고 짧은 테스트지만
옵션값을 적절히 조절하면 Devicefarm 의 Fuzz Test와 유사한 테스트를 할 수 있다.

(비행기모드 / Wifi 설정 등도 드래그, 터치 랜덤 동작 중 나타나는 동작)