실행일: 2026-03-26 | 에뮬레이터: emulator-5554 (Medium_Phone_API_36.1) | 결과: 85/85 ALL PASS
| 테스트 스위트 | 유형 | 테스트 수 | PASS | FAIL | Skip |
|-------------|------|---------|------|------|------|
| ExampleUnitTest | Unit (JVM) | 1 | 1 | 0 | 0 |
| ExampleInstrumentedTest | Instrumented | 1 | 1 | 0 | 0 |
| MainActivityTest | UIAutomator | 3 | 3 | 0 | 0 |
| TouchGestureTest | UIAutomator | 9 | 9 | 0 | 0 |
| HardwareInputTest | UIAutomator | 8 | 8 | 0 | 0 |
| SensorSimulationTest | SensorManager | 14 | 14 | 0 | 0 |
| LocationSimulationTest | LocationManager | 6 | 6 | 0 | 0 |
| PhoneStateSimulationTest | TelephonyManager | 4 | 4 | 0 | 0 |
| NetworkStateTest | ConnectivityManager | 5 | 5 | 0 | 0 |
| TimeContextTest | Calendar | 4 | 4 | 0 | 0 |
| BatteryStateTest | BatteryManager | 5 | 5 | 0 | 0 |
| AudioStateTest | AudioManager | 4 | 4 | 0 | 0 |
| MultiTouchSimulationTest | UIAutomator | 5 | 5 | 0 | 0 |
| PerformanceBaselineTest | ActivityManager | 4 | 4 | 0 | 0 |
| ContextScenarioTest | 복합 시나리오 | 6 | 6 | 0 | 0 |
| 합계 | | 84 (instrumented) + 1 (unit) | 85 | 0 | 0 |
| 테스트 | 검증 내용 | 결과 |
|--------|----------|------|
| mainActivity_launches_withoutCrash | 앱 크래시 없이 실행 | PASS |
| greeting_text_isDisplayed | "Hello Android!" 텍스트 렌더링 | PASS |
| greeting_composable_rendersCorrectName | Composable 이름 파라미터 렌더링 | PASS |
| 테스트 | 검증 내용 | 결과 |
|--------|----------|------|
| tap_centerOfScreen_succeeds | 단일 탭 (Dash 활성화) | PASS |
| tap_topLeft_succeeds | 좌상단 탭 | PASS |
| swipeLeft_spaceNavigation_succeeds | 좌 스와이프 (Space 앞으로) | PASS |
| swipeRight_spaceNavigation_succeeds | 우 스와이프 (Space 뒤로) | PASS |
| swipeUp_fromBottom_dashRoomOpen_succeeds | 하단에서 상향 스와이프 (Dash Room 오픈) | PASS |
| swipeDown_fromTop_notificationShade_succeeds | 상단에서 하향 스와이프 | PASS |
| drag_dashRearrangement_leftToRight_succeeds | 드래그 좌→우 (Dash 재배치) | PASS |
| drag_dashRearrangement_topToBottom_succeeds | 드래그 상→하 | PASS |
| drag_fusionApproach_twoPoints_succeeds | 드래그 중앙으로 (Fusion 접근) | PASS |
| longPress_dashContextMenu_simulation_succeeds | 롱프레스 (Dash 컨텍스트 메뉴) | PASS |
| displayMetrics_forMultiTouchCalculation_areValid | 멀티터치 좌표 계산용 해상도 | PASS |
| 테스트 | 검증 내용 | 결과 |
|--------|----------|------|
| homeButton_press_laungesHomeScreen | 홈 버튼 (런처 재진입) | PASS |
| backButton_press_doesNotCrash | 뒤로가기 버튼 | PASS |
| recentApps_button_press_succeeds | 최근 앱 버튼 | PASS |
| volumeUp_keyPress_succeeds | 볼륨 올리기 | PASS |
| volumeDown_keyPress_succeeds | 볼륨 내리기 | PASS |
| volumeMute_keyPress_succeeds | 볼륨 음소거 | PASS |
| rotateToLandscape_andBack_succeeds | 화면 회전 (Landscape→Portrait) | PASS |
| rotateToPortraitLeft_succeeds | 화면 회전 (Left-Portrait) | PASS |
| screenIsOn_duringTest_verified | 화면 켜짐 상태 | PASS |
| enterKey_press_succeeds | 엔터 키 | PASS |
| menuKey_press_succeeds | 메뉴 키 | PASS |
| 테스트 | 검증 내용 | 결과 |
|--------|----------|------|
| accelerometer_isAvailable_onApiEmulator | 가속도계 존재 확인 | PASS |
| gyroscope_isAvailable_onApiEmulator | 자이로스코프 존재 확인 | PASS |
| magnetometer_isAvailable_onApiEmulator | 자력계 존재 확인 | PASS |
| lightSensor_availability_isReported | 조도 센서 (정보성) | PASS |
| proximitySensor_availability_isReported | 근접 센서 (정보성) | PASS |
| allAvailableSensors_areEnumerated | 전체 센서 목록 (5개 이상) | PASS |
| accelerometer_receivesEvents_withinTimeout | 가속도계 이벤트 스트리밍 (3회/5s) | PASS |
| gyroscope_receivesEvents_withinTimeout | 자이로스코프 이벤트 스트리밍 | PASS |
| magnetometer_receivesEvents_withinTimeout | 자력계 이벤트 스트리밍 | PASS |
| sensorListener_repeatRegistration_doesNotLeak | 센서 등록/해제 10회 누수 없음 | PASS |
| sensorListener_unregisterAll_clearsAll | 전체 센서 해제 | PASS |
| locationManager_gpsProvider_isAvailable | GPS 프로바이더 존재 확인 | PASS |
| locationManager_networkProvider_isAvailable | Network 프로바이더 확인 | PASS |
| accelerometer_injectedValues_areReflectedInEvents | ADB 센서 주입 베이스라인 | PASS |
기울기 시뮬레이션 (Dash Morphing 트리거)
adb emu sensor set acceleration 1.5:8.5:2.0
회전 시뮬레이션 (Space 컨텍스트 전환)
adb emu sensor set gyroscope 0.3:0.1:0.5
나침반 방향 시뮬레이션 (위치 컨텍스트)
adb emu sensor set magnetic-field 20.0:5.0:45.0
수직 정립 (초기화)
adb emu sensor set acceleration 0:0:9.81
| 이슈 | 원인 | 해결 |
|------|------|------|
| Espresso InputManager.getInstance() NoSuchMethodException | Android API 36에서 해당 메서드 제거 | MainActivityTest를 UIAutomator로 교체 |
| SENSOR_DELAY_FASTEST SecurityException | API 31+에서 HIGH_SAMPLING_RATE_SENSORS 권한 필요 | SENSOR_DELAY_NORMAL로 변경 |
app/build/reports/tests/testDebugUnitTest/index.htmlapp/build/reports/androidTests/connected/debug/index.htmlscreenshots/pre-test-*.pngscreenshots/post-test-final.png