위치 테스트: QA와 개발자를 위한 좌표 변경

위치 기반 로직은 테스트하기 가장 까다로운 것 중 하나입니다. 버그는 도시의 특정 지점에서 재현되는데 팀은 다른 도시에 있습니다. 위치 변경을 쓰면 이런 확인이 책상에서 필요한 만큼 반복할 수 있는 시나리오가 됩니다. 실제 기기에서 어떻게 작동하고 한계는 어디인지 살펴보겠습니다.

  1. 기기 준비하기

    개발자 모드를 켜고, 모의 위치 앱을 선택하고, 위치 접근을 허용하세요. 테스트 기기에서는 백그라운드 제한도 바로 해제하는 것이 좋습니다. 그렇지 않으면 긴 테스트 도중에 펌웨어가 서비스를 종료합니다.

    테스트 기기 준비 체크리스트: 개발자 모드, 앱 선택, 위치 권한, 백그라운드 제한 해제
  2. 기준 지점 모음 만들기

    자주 필요한 좌표를 즐겨찾기에 저장하세요. 버그 리포트의 주소, 배달 구역 경계의 지점, 다른 시간대의 주소, 물 한가운데의 지점 등입니다. 이름을 붙인 재현 가능한 지점 목록은 반복 테스트의 기본입니다.

    Mock Location의 즐겨찾기 장소 목록: 반복 테스트용 기준 지점 모음
  3. 팀과 지점 모음 동기화하기

    장소 목록은 계정을 통해 웹사이트와 기기 사이에서 동기화됩니다. 웹사이트에서 만든 지점이 좌표를 직접 옮겨 적지 않아도 바로 테스트 휴대전화에 나타납니다. 기기가 여러 대일 때 시간을 크게 아낄 수 있습니다.

    계정을 통한 웹사이트와 테스트 기기 사이의 지점 목록 동기화
  4. 시나리오를 실행하고 결과 기록하기

    필요한 지점에서 위치 변경을 켜고 테스트 대상 앱에서 시나리오를 실행하세요. 지점은 기록에 남으므로, 수정 후 다시 확인할 때 탭 한 번으로 돌아갈 수 있습니다.

    Mock Location의 실행 기록: 이전 테스트의 지점으로 한 번의 탭으로 돌아갈 수 있습니다

꼭 확인해야 할 것

구역 경계: 배달 구역이나 검색 반경의 정확히 경계에 있는 지점은 경곗값 오류의 전형적인 원인입니다. 앱 실행 중 좌표 변경: 많은 앱이 실행할 때 한 번만 위치를 묻고 변경에 반응하지 않습니다. 좌표 없음: 위치가 꺼져 있거나 권한이 거부된 경우의 동작.

따로 — 일부러 잘못된 데이터: 바다 한가운데의 지점, 반대편 반구의 좌표, 주소가 없는 장소. 어떤 경우에도 앱이 멈춰서는 안 됩니다.

실제 기기와 에뮬레이터

Android Studio 에뮬레이터는 좌표를 지정하고 경로를 재생할 수 있어 초기 개발에는 충분합니다. 하지만 가장 자주 문제가 되는 것은 재현하지 못합니다. 특정 펌웨어가 백그라운드 서비스를 종료할 때의 동작, 약한 신호에서의 작동, 위치를 잡는 데 걸리는 실제 지연, 제조사별 절전 정책의 차이입니다.

그래서 에뮬레이터에서 통과한 시나리오는 실제 기기에서 다시 확인하는 것이 좋습니다. 특히 테스트 대상 앱이 백그라운드에서 위치를 쓴다면 더욱 그렇습니다.

테스트에서의 모의 출처 표시

Android는 테스트 제공자의 좌표에 표시를 붙입니다. QA에게 이것은 장애물이 아니라 별도의 테스트 대상입니다. 테스트 대상 앱이 모의 좌표를 거부해야 한다면, 위치 변경은 그 확인이 코드로만 있는 게 아니라 실제로 작동하는지 확인하는 바로 그 방법입니다.

앱이 시스템의 어떤 좌표든 받아야 한다면, 이 표시 때문에 실수로 좌표를 버리지 않는지 확인하세요.

백그라운드 위치를 쓰는 앱 테스트

백그라운드에서 이동을 추적하는 앱은 긴 테스트가 중요합니다. 위치 변경을 켜고 앱을 최소화한 뒤 기기를 몇 시간 그대로 두세요. 5분짜리 수동 테스트로는 보이지 않는 문제가 드러납니다. 업데이트 구독 손실, 쌓이는 오류, 펌웨어에 의한 서비스 중지 등입니다.

알림 창의 상시 알림이 지표가 됩니다. 알림이 있는 동안 위치 변경은 작동 중입니다.

Mock Location — 루팅 없이 Android 가짜 GPS 위치

무료이며 Google Play 밖에서 배포됩니다. 설치 전에 파일 체크섬을 확인할 수 있습니다.

APK 다운로드