---
# System prepended metadata

title: 사용자 시나리오 기반 안드로이드 애플리케이션 축소 도구 테스트 케이스 수집 가이드라인

---

# 사용자 시나리오 기반 안드로이드 애플리케이션 축소 도구 테스트 케이스 수집 가이드라인

<div style="float:right;text-align:right;width:100%;">
    Written By Jay Lee<br>
    2020-11-11
</div>

## ACVTool

- https://github.com/pilgun/acvtool
- 안드로이드 스튜디오나 안드로이드 SDK이 환경에 사전 설치되어 있어야 함
- Fork 한 후 설치
- 설치는 ACVTool의 README를 따를 것

## APKTool
- https://ibotpeaches.github.io/Apktool/install/
- 설치 방법은 상기 페이지를 따를 것

## 안드로이드 애플리케이션 수집
- (필수) 10MB 이상의 APK / (권장) 15MB 이상의 APK
- Flutter나 React를 쓰는 애플리케이션
- 순수 Java 애플리케이션
- 라이브러리를 적게 쓰고 용량이 큰 애플리케이션일 수록 좋음
- Kotlin을 사용하는 경우는 안됨. (APKTool로 풀어보면 Kotlin 폴더 생성됨)
- Play Store에 스크린샷이 존재하는 애플리케이션 (권장)

## 테스트 데이터 생성
- **실행하는 과정에서 sudo 권한이 필요할 수 있음**
- a.apk에 대한 테스트 데이터를 수집한다고 가정
- `acv instrument a.apk` 을 하면 ~/acvtool/acvtool_working_dir/instr_a.apk가 생성됨
- **안드로이드 에뮬레이터의 API 레벨은 28 이하여야만 함**
    - 기왕이면 Nexus One API Level 28로 맞춰주세요..
- 안드로이드 에뮬레이터를 킨 상태에서 `acv install instr_a.apk`를 하여 instrumentation된 a.apk를 설치
- `acv start com.a.a` (이때 com.a.a는 a.apk의 패키지명)을 하면 안드로이드 에뮬레이터에서 com.a.a 앱에 대해 가한 조작에 대한 코드 커버리지를 기록함
- 스크린샷이랑 최대한 비슷한 화면들을 모두 포함하는 행위를 한 후 ^C를 하여 ACVTool의 기록 종료
- `acv report com.a.a -p  ~/acvtool/acvtool_working_dir/metadata/com.a.a.pickle`을 하여 리포트 정보 생성

## 테스트 데이터 전달
- `~/acvtool/acvtool_working_dir/metadata/com.a.a.pickle` : 메타데이터 폴더 내에 있는 피클 파일
- `~/acvtool/acvtool_working_dir/report/com.a.a/ec_files/` : 리포트에 저장된 안드로이드 ec 데이터
- `com.a.a` : 애플리케이션 패키지명
- `https://..../com.a.a` : 플레이스토어 링크와 apk를 다운받은 곳의 링크
- **상기 항목들을 정리하여 전달해 주시면 됩니다.**

## 기타 사항

- 질문이나 에러 있으시면 언제든지 Slack DM 주세요 :)