핵심 앱 품질

Android 사용자는 고품질 앱을 기대합니다. 앱 품질은 설치, 사용자 평점 및 리뷰, 사용자 확보 및 유지 측면에서 앱의 장기적 성공에 직접적인 영향을 미칩니다.

이 문서는 핵심 앱 품질 기준 및 연관된 테스트의 간결한 집합을 통해 기본적인 앱 품질을 평가하는 데 도움이 됩니다. 모든 Android 앱은 이 기준을 충족해야 합니다.

앱을 게시하기 전에 이 기준에 대한 테스트를 거쳐 다양한 기기에서 잘 작동하는지, Android 탐색 및 디자인 표준을 충족하는지 확인하고, Google Play 스토어에서 홍보 기회를 잡으세요. 여기에서 설명하는 범위 이상으로 테스트를 수행할 수 있습니다. 이 문서의 목적은 테스트 계획에 모든 앱이 표시해야 하는 필수 품질 특성을 포함할 수 있도록 이러한 품질 특성을 명시하는 것입니다.

태블릿 앱 및/또는 교육용 Google Play 앱을 만드는 경우 고려해야 하는 추가 품질 기준이 있는데, 해당 기준은 태블릿 앱 품질 가이드라인 및 교육 가이드라인에 정의되어 있습니다.

시각적 디자인 및 사용자 상호작용

이 기준은 앱이 일관되고 직관적인 사용자 환경을 위해 필요한 경우 표준 Android 시각적 디자인 및 상호작용 패턴을 제공하도록 보장합니다.

영역 ID 설명 테스트
표준 디자인 UX-B1

앱이 Android 디자인 가이드라인을 따르고 공통 UI 패턴 및 아이콘을 사용합니다.

  1. 앱이 시스템 아이콘의 예상되는 기능(예: Back 버튼)을 재정의하지 않습니다.
  2. 앱이 표준 UI 동작을 트리거하는 경우 시스템 아이콘을 완전히 다른 아이콘으로 대체하지 않습니다.
  3. 앱이 표준 시스템 아이콘의 사용자 지정 버전을 제공하는 경우 해당 아이콘은 시스템 아이콘과 매우 유사하고 표준 시스템 동작을 트리거합니다.
  4. 앱이 아이콘이나 동작이 사용자를 잘못 안내하거나 혼란스럽게 하지 않도록 Android UI 패턴을 재정의하거나 오용하지 않습니다.
CR-all
탐색 UX-N1

앱이 표준 시스템의 Back 버튼 탐색을 지원하고 화면에 표시되는 사용자 지정 "Back 버튼" 프롬프트를 사용하지 않습니다.

CR-3
UX-N2

Back 버튼을 사용하여 모든 대화상자를 취소할 수 있습니다.

CR-3
UX-N3 어디서든지 Home 버튼을 누르면 기기의 메인 스크린으로 이동합니다. CR-1
알림 UX-S1

알림이 Android 디자인 가이드라인을 따릅니다. 특히 다음과 같습니다.

  1. 다중 알림은 단일 알림 개체로 누적됩니다(가능한 경우).
  2. 알림이 진행 중인 이벤트(예: 음악 재생 또는 통화)와 관련된 경우에만 지속됩니다.
  3. 알림이 사용자가 명시적으로 동의한 경우를 제외하고 앱의 핵심 기능과 관련되지 않은 광고나 콘텐츠를 포함하지 않습니다.
CR-11
UX-S2

앱이 다음과 같은 경우에만 알림을 사용합니다.

  1. 개인적으로 사용자와 관련된 컨텍스트 변경(예: 수신 메시지)을 나타냅니다.
  2. 진행 중인 이벤트(예: 음악 재생 또는 통화)와 관련된 정보/컨트롤을 표시합니다.
CR-11

관련 자료

기능

이 기준은 앱이 적절한 권한 수준과 함께 예상되는 기능 동작을 제공하도록 보장합니다.

영역 ID 설명 테스트
권한 FN-P1 앱이 핵심 기능을 지원하는 데 필요한 절대 최소 권한만 요청합니다. CR-11
FN-P2

앱이 핵심 기능과 관련되지 않은 경우 사용자가 비용을 지불할 수 있는 서비스(예: 다이얼러 또는 SMS) 또는 민감한 데이터(예: 연락처 또는 시스템 로그)에 대한 액세스 권한을 요청하지 않습니다.

설치 위치 FN-L1

앱이 SD 카드에 설치된 경우 정상적으로 작동합니다(앱에서 지원하는 경우).

SD 카드에 설치 지원은 대부분의 대형 앱(10MB 이상)에서 권장됩니다. SD 카드에 설치를 지원해야 하는 앱 유형에 대한 자세한 내용은 앱 설치 위치 개발자 가이드를 참조하세요.

SD-1
오디오 FN-A1 핵심 기능이 아닌 경우 화면이 꺼지면 오디오가 재생되지 않습니다(예: 앱이 뮤직 플레이어인 경우). CR-7
FN-A2 핵심 기능이 아닌 경우 오디오가 화면 잠금 상태에서 재생되지 않습니다. CR-8
FN-A3 핵심 기능이 아닌 경우 오디오가 메인 스크린이나 다른 앱에서 재생되지 않습니다. CR-1,
CR-2
FN-A4 앱이 포그라운드로 돌아오면 오디오가 다시 시작되거나 사용자에게 재생이 일시 중지된 상태임을 알립니다. CR-1, CR-8
UI 및 그래픽 FN-U1

앱이 가로 방향과 세로 방향을 모두 지원합니다(가능한 경우).

방향은 동일한 기능과 동작을 대부분 표시하고 기능 패리티를 보존합니다. 콘텐츠 또는 보기의 사소한 변경은 허용됩니다.

CR-5
FN-U2

앱이 양쪽 방향에서 전체 화면을 사용하고, 방향 변경을 설명하기 위해 레터박스는 허용하지 않습니다.

화면상의 기하학적 형태의 미세한 변화를 보정하기 위한 사소한 레터박스는 허용됩니다.

CR-5
FN-U3

앱이 렌더링 문제 없이 표시 방향 전환을 신속하고 정확하게 처리합니다.

CR-5
사용자/앱 상태 FN-S1

앱의 핵심 기능과 관련되지 않은 경우 앱이 백그라운드 상태에서 서비스를 실행해서는 안 됩니다.

예를 들어, 앱이 알림을 위해 네트워크 연결을 유지하거나 블루투스 연결을 유지하거나 GPS를 켜진 상태로 유지하는 서비스를 실행해서는 안 됩니다.

CR-6
FN-S2

앱이 사용자 또는 앱 상태를 정확히 보존하고 복원합니다.

앱이 포그라운드를 떠날 때 사용자 또는 앱 상태를 보존하고 뒤로 탐색 및 기타 상태 변경으로 인해 실수로 데이터를 잃는 것을 방지합니다. 앱이 포그라운드로 돌아올 때 앱 또는 게임의 편집 가능한 필드, 게임 진행률, 메뉴, 동영상, 기타 섹션의 변경 내용 등 보류 중인 중요한 상태 저장 트랜잭션과 보존된 상태를 복원해야 합니다.

  1. 앱이 Recents 앱 전환기에서 다시 시작한 경우 마지막으로 사용된 정확한 상태로 돌아갑니다.
  2. 기기가 절전(잠금) 모드에서 해제된 후에 앱이 다시 시작하는 경우 앱이 마지막으로 사용된 정확한 상태로 돌아갑니다.
  3. 앱이 Home 또는 All Apps에서 다시 시작하는 경우 이전 상태에 최대한 가깝게 앱 상태를 복원합니다.
  4. 뒤로 키를 누를 때 앱이 뒤로 탐색에서 잃을 수도 있는 앱 또는 사용자 상태를 저장하는 옵션을 제공합니다.
CR-1, CR-3, CR-5

관련 자료

성능 및 안정성

이 기준은 앱이 사용자가 기대하는 성능, 안정성 및 응답성을 제공하도록 보장합니다.

영역 ID 설명 테스트
안정성 PS-S1 앱이 대상 기기에서 작동 중단되거나 강제로 닫히거나 멈추거나 비정상적으로 작동합니다. CR-all, SD-1, HA-1
성능 PS-P1 앱이 빨리 로드되거나, 로드하는 데 3초 이상 걸리는 경우 화면에 피드백을 표시합니다(진행률 표시기 또는 유사 기능). CR-all, SD-1
PS-P2 StrictMode가 활성화된 상태에서(아래 StrictMode 테스트 참조) 앱의 게임 실행, 애니메이션 및 UI 전환, 기타 부분 실행 등 앱을 실행할 때 빨간색 깜박임(StrictMode의 성능 경고)이 표시되지 않습니다. PM-1
배터리 PS-B1 앱이 Android 6.0+(잠자기 및 앱 대기 모드) 이상에서 전원 관리를 적절히 지원합니다. 전원 관리가 핵심 기능을 방해하는 경우 자격이 있는 앱만 면제를 요청할 수 있습니다. BA-1
미디어 PS-M1 정상적인 앱 사용 및 로드 시 음악 및 동영상 재생이 매끄럽고 잔금, 버벅거림 또는 기타 아티팩트가 없습니다. CR-all, SD-1, HA-1
시각적 품질 PS-V1

앱이 현저한 왜곡, 흐림 또는 모자이크 현상 없이 그래픽, 텍스트, 이미지 및 기타 UI 요소를 표시합니다.

  1. 앱이 태블릿과 같은 대형 화면 기기를 포함한 다양한 기기의 모든 대상 화면 크기 및 폼 팩터에 고품질 그래픽을 제공합니다.
  2. 메뉴, 버튼 및 기타 UI 요소의 가장자리에 앨리어싱이 표시되지 않습니다.
CR-all
PS-V2

앱이 허용되는 방식으로 텍스트 및 텍스트 블록을 표시합니다.

  1. 태블릿과 같은 대형 화면 기기를 포함한 다양한 기기의 모든 지원되는 폼 팩터에서 컴퍼지션이 허용됩니다.
  2. 잘린 문자나 단어가 표시되지 않습니다.
  3. 버튼 또는 아이콘 내에서 부적합한 자동 줄바꿈이 표시되지 않습니다.
  4. 텍스트와 주변 요소 사이에 충분한 간격이 있습니다.

관련 자료

Google Play

이 기준은 앱을 Google Play에 게시할 수 있도록 보장합니다.

영역 ID 설명 테스트
정책 GP-P1 앱이 Google Play 개발자 콘텐츠 정책의 약관을 철저히 준수하고, 부적절한 콘텐츠를 제공하지 않고 다른 사람의 지적 재산권이나 브랜드 등을 사용하지 않습니다. GP-all
GP-P2

앱 콘텐츠 수위가 콘텐츠 등급 가이드라인에 따라 적절히 설정되었습니다.

GP-1
GP-P3

앱이 Android 6.0+(잠자기 및 앱 대기 모드) 이상에서 전원 관리를 적절히 지원합니다. 전원 관리가 핵심 기능을 방해하는 경우 자격이 있는 앱만 면제를 요청할 수 있습니다. 잠자기 및 앱 대기 모드에서 다른 사용 사례 지원을 참조하세요.

GP-4
앱 세부정보 페이지 GP-D1

앱 피처 그래픽이 이 블로그 게시물에 나오는 가이드라인을 따릅니다. 다음 사항을 확인하세요.

  1. 앱 등록정보에 고품질 피처 그래픽을 포함합니다.
  2. 앱이 대상으로 하는 가장 작은 화면에서 배율을 축소하여 표시할 때 피처 그래픽에 식별할 수 없는 기기 이미지, 스크린샷 또는 작은 텍스트를 포함하지 않습니다.
  3. 피처 그래픽이 광고와 비슷하지 않습니다.
GP-1, GP-2
GP-D2 앱 스크린샷 및 동영상이 비 Android 기기를 표시하거나 참조하지 않습니다. GP-1
GP-D3 앱 스크린샷 또는 동영상이 앱의 콘텐츠와 환경을 잘못된 방식으로 나타내지 않습니다.
사용자 지원 GP-X1 Google Play 페이지의 Reviews 탭에서 일반 사용자가 보고하는 버그가 재현될 수 있고 많은 다른 기기에서 발생하는 경우 처리됩니다. 몇몇 기기에서만 버그가 발생하는 경우라도 해당 기기가 매우 인기 있거나 신기종인 경우 처리해야 합니다. GP-1

관련 자료

테스트 환경 설정

앱의 품질을 평가하려면 테스트용으로 적합한 하드웨어 또는 에뮬레이터 환경을 설정해야 합니다.

이상적인 테스트 환경은 현재 소비자에게 제공되는 핵심 폼 팩터와 하드웨어/소프트웨어 조합을 나타내는 소수의 실제 하드웨어 기기를 포함합니다. 시장에 출시된 모든 기기에서 테스트할 필요는 없습니다. 오히려 폼 팩터당 한두 대의 기기를 사용하더라도 소수의 대표 기기에 초점을 맞춰야 합니다.

테스트용 실제 하드웨어 기기를 구할 수 없는 경우 가장 일반적인 폼 팩터와 하드웨어/소프트웨어 조합을 나타내는 에뮬레이트된 기기(AVD)를 설치해야 합니다.

기본 테스트 이상을 수행하려면 기기, 폼 팩터 또는 새 하드웨어/소프트웨어 조합을 테스트 환경에 추가하면 됩니다. 테스트 수량이나 복잡성 및 품질 기준을 높일 수도 있습니다.

테스트 절차

이 테스트 절차를 통해 앱에서 다양한 유형의 품질 문제를 찾아낼 수 있습니다. 테스트를 조합하거나 테스트 그룹을 본인의 테스트 계획에 통합할 수 있습니다. 특정 기준과 특정 테스트의 연관성은 위의 섹션을 참조하세요.

유형 테스트 설명
핵심 테스트 도구 모음 CR-0

앱의 모든 부분(모든 화면, 대화상자, 설정 및 모든 사용자 흐름)을 탐색합니다.

  1. 애플리케이션이 편집, 콘텐츠 만들기, 게임 실행 또는 미디어 재생을 허용하면 해당 흐름으로 진입하여 콘텐츠를 만들거나 수정합니다.
  2. 앱을 실행하는 동안 네트워크 연결, 배터리 기능, GPS 또는 위치 사용 가능성, 시스템 로드 등의 일시적인 변경 내용을 소개합니다.
CR-1 각 앱 화면에서 기기의 홈 키를 누른 다음 All Apps 화면에서 앱을 다시 시작합니다.
CR-2 각 앱 화면에서 실행 중인 다른 앱으로 전환한 다음 Recents 앱 전환기를 사용하여 테스트 중인 앱으로 돌아갑니다.
CR-3 각 앱 화면(및 대화상자)에서 Back 버튼을 누릅니다.
CR-5 각 앱 화면에서 가로 방향과 세로 방향이 바뀌도록 기기를 세 번 이상 회전합니다.
CR-6 다른 앱으로 전환하여 테스트 앱을 백그라운드로 보냅니다. 설정으로 이동하여 테스트 앱에 백그라운드로 실행 중인 서비스가 있는지 확인합니다. Android 4.0 이상에서는 앱 화면으로 이동하여 "Running" 탭에서 앱을 찾습니다.
CR-7 전원 버튼을 눌러 기기를 절전 모드로 전환한 다음, 전원 버튼을 다시 눌러 화면을 활성화합니다.
CR-8 전원 버튼을 누르면 기기를 잠금 설정합니다. 전원 버튼을 눌러 기기를 절전 모드로 전환한 다음, 전원 버튼을 다시 눌러 화면을 활성화하고 기기의 잠금을 해제합니다.
CR-9 기기에 슬라이드아웃 키보드가 있는 경우 키보드를 한 번 이상 슬라이드인 또는 슬라이드아웃합니다. 기기에 키보드 도크가 있는 경우 기기를 키보드 도크에 장착합니다.
CR-10 기기에 외부 디스플레이 포트가 있는 경우 외부 디스플레이를 연결합니다.
CR-11 알림 창에서 앱이 표시할 수 있는 모든 유형의 알림을 트리거하고 관찰합니다. 적용 가능한 경우(Android 4.1 이상) 알림을 확장하고 제공된 모든 작업을 탭합니다.
CR-12 Settings > App Info로 이동하여 앱이 요청한 권한을 검사합니다.
SD 카드에 설치 SD-1

기기 SD 카드에 앱이 설치된 상태에서 핵심 테스트 도구 모음을 반복합니다(앱에서 지원하는 경우).

앱을 SD 카드로 이동하려면 Settings > App Info > Move to SD Card를 사용하면 됩니다.

하드웨어 가속 HA-1

하드웨어 가속이 활성화된 상태에서 핵심 테스트 도구 모음을 반복합니다.

하드웨어 가속을 강제로 활성화하려면(기기에서 지원하는 경우) hardware-accelerated="true"를 앱 매니페스트의 <application>에 추가하고 다시 컴파일합니다.

성능 모니터링 PM-1

아래 설명처럼 StrictMode 프로파일링이 활성화된 상태에서 핵심 테스트 도구 모음을 반복합니다.

가비지 수집 및 사용자 환경에 미치는 영향에 세심한 주의를 기울이세요.

배터리 BA-1

잠자기 및 앱 대기 모드에서 핵심 테스트 도구 모음을 반복합니다.

알람, 타이머, 알림, 동기화 등에 세심한 주의를 기울이세요. 요구사항 및 가이드라인에 대해서는 잠자기 및 앱 대기 모드로 테스트를 참조하세요.

Google Play GP-1 Developer Console에 로그인하여 개발자 프로필, 앱 설명, 스크린샷, 피처 그래픽, 콘텐츠 수위 설정 및 사용자 피드백을 검토합니다.
GP-2 피처 그래픽과 스크린샷을 다운로드하고 대상으로 하는 기기 및 폼 팩터의 디스플레이 크기에 맞게 배율을 축소합니다.
GP-3 앱 또는 확장 파일 다운로드에 패키지로 포함된 모든 그래픽 자산, 미디어, 텍스트, 코드 라이브러리 및 기타 콘텐츠를 검토합니다.
GP-4 잠자기 및 앱 대기 모드에서 다른 사용 사례 지원을 검토하세요.
결제 GP-4 앱의 모든 화면을 탐색하고 모든 인앱 구매 흐름으로 진입합니다.

StrictMode로 테스트

성능을 테스트하려면 앱에서 StrictMode 를 활성화하고 이를 사용하여 성능, 네트워크 액세스, 파일 읽기/쓰기 등에 영향을 줄 수 있는 기본 스레드 및 기타 스레드에서 작업을 캐치하는 것이 좋습니다.

StrictMode.ThreadPolicy.Builder를 사용하여 스레드별 모니터링 정책을 수립하고 detectAll()을 사용하여 ThreadPolicy에서 지원되는 모든 모니터링을 활성화할 수 있습니다.

penaltyFlashScreen()을 사용하여 ThreadPolicy 정책 위반의 시각적 알림을 활성화합니다.