Chất lượng cốt lõi của ứng dụng

Sử dụng bộ sưu tập để sắp xếp ngăn nắp các trang Lưu và phân loại nội dung dựa trên lựa chọn ưu tiên của bạn.
Lần cập nhật gần nhất: Ngày 17 tháng 5 năm 2021

Một phương pháp hữu ích để đánh giá mức độ xuất sắc của ứng dụng là xem xét quy trình hoạt động trong ứng dụng đồng thời đánh giá độ mượt mà và an toàn của trải nghiệm trong ứng dụng.

Danh sách kiểm tra này đưa ra một bộ tiêu chí cốt lõi về chất lượng và các bài kiểm thử liên quan để giúp bạn đánh giá chất lượng của ứng dụng. Một vài tiêu chí trong số này rất dễ bị bỏ sót, nên những bài kiểm thử này giúp bạn nhớ đưa những tiêu chí này vào kế hoạch kiểm thử.

Danh sách kiểm tra nhấn mạnh những tiêu chí chất lượng tối thiểu mà tất cả ứng dụng phải đáp ứng. Nội dung kiểm thử của bạn có thể cao hơn nhiều những gì được mô tả ở đây.

Mỗi mục trong danh sách kiểm tra chất lượng có một mã nhận dạng riêng mà bạn có thể sử dụng khi trao đổi với nhóm của mình. Bạn cũng có thể xem phiên bản trước đây của những nguyên tắc này.

Trải nghiệm về hình ảnh

Ứng dụng của bạn phải cung cấp mẫu tương tác và thiết kế hình ảnh tiêu chuẩn trên Android sao cho phù hợp, nhằm mang lại trải nghiệm nhất quán và trực quan cho người dùng.

Khía cạnh Mã nhận dạng Kiểm thử Mô tả
Điều hướng VX-N1 CR-3 Ứng dụng hỗ trợ tính năng Thao tác bằng nút quay lại tiêu chuẩn và không nhắc "Nút quay lại" tuỳ chỉnh trên màn hình.
VX-N2 CR-3 Ứng dụng hỗ trợ thao tác bằng cử chỉ để quay lại/chuyển đến màn hình chính.
VX-N3 CR-1
CR-3
CR-5

Ứng dụng lưu giữ và khôi phục chính xác trạng thái của người dùng hoặc ứng dụng.

Ứng dụng giữ nguyên trạng thái của ứng dụng hoặc người dùng khi người dùng rời khỏi chế độ nền trước và ngăn việc vô tình mất dữ liệu do thao tác quay lại và các thay đổi khác về trạng thái.

Khi quay lại nền trước, ứng dụng sẽ khôi phục trạng thái được bảo lưu cũng như mọi trao đổi dữ liệu quan trọng đang chờ xử lý. Ví dụ: thay đổi đối với các trường có thể chỉnh sửa, tiến trình chơi, trình đơn, video và các phần khác của ứng dụng hoặc trò chơi.

  1. Khi ứng dụng được tiếp tục qua trình chuyển đổi ứng dụng Gần đây (Recents), ứng dụng sẽ đưa người dùng trở về đúng trạng thái sử dụng gần nhất.
  2. Khi được tiếp tục sau khi thiết bị thoát khỏi trạng thái ngủ (khoá), ứng dụng sẽ đưa người dùng trở về đúng trạng thái sử dụng gần nhất.
  3. Khi được chạy lại qua Màn hình chính (Home) hoặc màn hình Tất cả ứng dụng (All Apps), ứng dụng sẽ thực hiện một trong những thao tác sau, tuỳ thuộc vào khoảng thời gian kể từ lần sử dụng gần nhất:
    • Nếu ứng dụng chỉ mới vừa được sử dụng một thời gian ngắn trước đó (vài phút), hãy khôi phục trạng thái ứng dụng về càng gần trạng thái trước đó càng tốt.
    • Nếu đã qua một thời gian dài kể từ lần gần nhất dụng được ứng dụng, hãy cố gắng khôi phục ứng dụng về càng gần trạng thái trước đó càng tốt; hoặc khởi động lại ứng dụng qua màn hình chính hoặc trạng thái mặc định khác.
Thông báo VX-S1 CR-9

Thông báo tuân theo nguyên tắc của Material Design. Cụ thể:

  1. Bạn không được dùng thông báo để quảng cáo chéo hoặc quảng cáo một sản phẩm khác, vì Cửa hàng Play nghiêm cấm việc này.
  2. Thay vì phân phát tất cả thông báo qua một kênh, hãy xác định kênh thông báo theo các phương pháp hay nhất.
  3. Chọn đúng mức độ ưu tiên của thông báo.
  4. Nhiều thông báo sẽ được xếp chồng vào một nhóm thông báo (khi có thể).
  5. Thiết lập thời gian chờ cho thông báo khi thích hợp.
  6. Thông báo chỉ xuất hiện liên tục nếu có liên quan đến các sự kiện đang tiếp diễn, chẳng hạn như phát nhạc hoặc cuộc gọi điện thoại. Để biết thêm thông tin, hãy xem mục Chức năng.
VX-S2 CR-9

Đối với ứng dụng nhắn tin, ứng dụng mạng xã hội và trò chuyện:

  1. Sử dụng thông báo MessagingStyle đối với các cuộc trò chuyện.
  2. Hỗ trợ thao tác trả lời trực tiếp.
  3. Hỗ trợ lối tắt cuộc trò chuyện và triển khai các phương pháp hay nhất để có được thứ hạng chia sẻ trực tiếp cao nhất.
  4. Hỗ trợ bong bóng trò chuyện.
Giao diện người dùng và đồ hoạ VX-U1 CR-5 Ứng dụng hỗ trợ cả hướng ngang và dọc (nếu có thể) và gập/mở.

Phần lớn các tính năng và thao tác sẽ giống nhau ở các hướng và duy trì sự đồng nhất về chức năng. Có thể chấp nhận những thay đổi nhỏ về nội dung hoặc chế độ xem.

VX-U2 CR-5 Ứng dụng sử dụng toàn bộ màn hình ở cả hai hướng và không có khung viền hòm thư do có thay đổi về hướng, bao gồm cả thao tác gập/mở thiết bị.

Chấp nhận được khung viền hòm thư nhỏ để lấp vào những chỗ còn trống tuỳ theo hình dạng hình học của màn hình.

VX-U3 CR-5 Ứng dụng xử lý đúng quá trình chuyển đổi nhanh giữa hướng hiển thị và thao tác gập/mở thiết bị mà không gặp sự cố hoặc mất trạng thái.
Chất lượng hình ảnh VX-V1 CR-all

Ứng dụng hiển thị đồ hoạ, văn bản, hình ảnh và các thành phần khác trên giao diện người dùng mà không bị méo, mờ hay vỡ hình.

  1. Nếu có thể thì ứng dụng nên sử dụng vectơ vẽ được.
  2. Ứng dụng cung cấp đồ hoạ chất lượng cao cho tất cả kích thước màn hình và kiểu dáng thiết bị mục tiêu.
  3. Không bị răng cưa ở các cạnh của trình đơn, nút, đồng thời cho thấy rõ các thành phần giao diện người dùng khác.
VX-V2 CR-all

Ứng dụng hiện các khối văn bản và văn bản theo cách phù hợp với từng ngôn ngữ được hỗ trợ trong ứng dụng.

  1. Có thể kết hợp được các thành phần ở mọi kiểu dáng thiết bị được hỗ trợ.
  2. Không thấy chữ cái hoặc từ ngữ nào bị cắt bỏ.
  3. Không thấy từ nào bị bao bọc không hợp lệ trong các nút hoặc biểu tượng.
  4. Có đủ khoảng cách giữa văn bản và các thành phần xung quanh.
VX-V3 CR-all Nội dung của ứng dụng và tất cả nội dung web mà ứng dụng tham chiếu đến đều hỗ trợ giao diện tối.
Hỗ trợ tiếp cận VX-A1 CR-all

Đích chạm phải có kích thước ít nhất 48dp. Tìm hiểu thêm.

VX-A2 CR-all

Văn bản và nội dung trên nền trước của ứng dụng phải duy trì tỷ lệ tương phản màu đủ cao so với nền:

  • 3:1 đối với văn bản/đồ hoạ lớn
  • 4,5:1 đối với văn bản nhỏ (văn bản có kích thước nhỏ hơn 18pt, hoặc nếu văn bản đó được in đậm và nhỏ hơn 14pt)

Tìm hiểu thêm về màu sắc và độ tương phản.

VX-A3 CR-all Sử dụng contentDescription để mô tả từng thành phần trên giao diện người dùng, ngoại trừ TextView.

Chức năng

Ứng dụng của bạn phải triển khai hành vi của chức năng đúng như dự tính.

Khía cạnh Mã nhận dạng Kiểm thử Mô tả
Âm thanh FN-A1 CR-1
CR-8
Khi trở về nền trước, ứng dụng sẽ sẽ tiếp tục phát âm thanh, hoặc cho người dùng biết rằng nội dung phát đang ở trạng thái tạm dừng.
FN-A2 CR-1
CR-2
CR-8
Nếu phát âm thanh là một tính năng cốt lõi, ứng dụng phải hỗ trợ phát ở chế độ nền.
FN-A3 CR-0

Khi người dùng bắt đầu phát âm thanh, thì trong vòng một giây, ứng dụng phải thực hiện một trong những thao tác sau:

  1. Bắt đầu phát âm thanh.
  2. Cung cấp chỉ báo trực quan rằng dữ liệu âm thanh đang được chuẩn bị.
FN-A4 CR-0 Ứng dụng phải yêu cầu cấp quyền phát âm thanh khi bắt đầu phát âm thanh và từ bỏ quyền phát âm thanh khi dừng phát.
FN-A5 CR-0 Ứng dụng phải xử lý yêu cầu của các ứng dụng khác đối với quyền phát âm thanh. Ví dụ: một ứng dụng có thể giảm âm lượng phát nội dung khi một ứng dụng khác phát giọng nói.
Nội dung nghe nhìn FN-M1 CR-0
CR-6
CR-8
Nếu phát âm thanh ở chế độ nền thì ứng dụng phải tạo một Thông báo được định kiểu bằng MediaStyle.
FN-M2 CR-0 Nếu phát video, ứng dụng của bạn phải hỗ trợ chế độ phát hình trong hình.
FN-M3 CR-0 Nếu mã hoá video thì ứng dụng phải mã hoá bằng tiêu chuẩn nén video HEVC.
Chia sẻ FN-S1 CR-0 Khi chia sẻ nội dung, ứng dụng phải sử dụng Trang chia sẻ nội dung trong Android. Trang này có thể đề xuất cả những mục tiêu không sẵn có cho các giải pháp tuỳ chỉnh.
Dịch vụ nền FN-B1 CR-6 Ứng dụng tránh chạy các dịch vụ dài ở chế độ nền một cách không cần thiết. Để đảm bảo thiết bị của người dùng hoạt động trơn tru, hệ thống áp dụng nhiều quy định hạn chế đối với các dịch vụ nền. Những trường hợp dưới đây không được xem là trường hợp sử dụng dịch vụ nền đúng cách:
  • Duy trì kết nối mạng để nhận thông báo
  • Duy trì kết nối Bluetooth
  • Luôn bật GPS

Tìm hiểu cách chọn giải pháp phù hợp cho công việc của bạn.

Hiệu suất và độ ổn định

Ứng dụng của bạn phải mang đến hiệu suất, độ ổn định, khả năng tương thích và khả năng thích ứng mà người dùng mong đợi.

Khía cạnh Mã nhận dạng Kiểm thử Mô tả
Độ ổn định PS-S1 CR-all
SD-1
Ứng dụng không gặp sự cố hoặc chặn luồng giao diện người dùng gây ra lỗi ANR (Android không phản hồi). Hãy sử dụng báo cáo trước khi ra mắt của Google Play để xác định các vấn đề tiềm ẩn về độ ổn định. Sau khi triển khai, hãy chú ý đến trang Android Vitals trong Google Play Developer Console.
Hiệu suất PS-P1 CR-all
SD-1
Ứng dụng tải nhanh hoặc đưa ra phản hồi trên màn hình cho người dùng (chỉ báo tiến trình hoặc biểu tượng có chức năng tương tự) nếu quá trình tải ứng dụng mất hơn 2 giây.
PS-P2 CR-all
SD-1
Ứng dụng phải kết xuất khung hình sau mỗi 16 mili giây để đạt được tốc độ 60 khung hình/giây. Nhà phát triển có thể sử dụng tuỳ chọn Lập hồ sơ kết xuất HWUI (Profile HWUI rendering) trong quá trình kiểm thử. Nếu gặp vấn đề, bạn có thể sử dụng các công cụ chẩn đoán kết xuất chậm.
PS-P3 PM-1 Khi StrictMode đang bật (xem Kiểm thử StrictMode bên dưới), cảnh báo nhấp nháy màu đỏ (cảnh báo hiệu suất của StrictMode) sẽ không xuất hiện trong quá trình kiểm thử ứng dụng. Mọi cảnh báo nhấp nháy màu đỏ đều thể hiện hành vi xấu liên quan đến bộ nhớ, quyền truy cập mạng hoặc sự cố rò rỉ bộ nhớ.
SDK PS-T1 CR-0 Ứng dụng chạy trên phiên bản công khai mới nhất của nền tảng Android mà không gặp sự cố hoặc không ảnh hưởng nghiêm trọng đến chức năng cốt lõi.
PS-T2 SP-1 Ứng dụng nhắm đến SDK Android mới nhất để phù hợp với yêu cầu của Google Play bằng cách thiết lập giá trị targetSdk.
PS-T3 SP-1 Ứng dụng được xây dựng bằng SDK Android mới nhất bằng cách thiết lập giá trị compileSdk.
PS-T4 SP-2
SP-3
Mọi SDK của Google hoặc bên thứ ba mà bạn sử dụng đều được cập nhật. Mọi cải tiến đối với những SDK này, chẳng hạn như tính ổn định, khả năng tương thích hoặc tính bảo mật, đều phải được cung cấp cho người dùng kịp thời.

Đối với các SDK của Google, hãy cân nhắc sử dụng SDK do Dịch vụ Google Play cung cấp (nếu có). Các SDK này có khả năng tương thích ngược, nhận bản cập nhật tự động, giảm kích thước gói ứng dụng và sử dụng hiệu quả tài nguyên trên thiết bị.

Nhà phát triển chịu trách nhiệm về toàn bộ cơ sở mã của ứng dụng, bao gồm cả mọi SDK của bên thứ ba được sử dụng.

PS-T5 SP-3 Ứng dụng không sử dụng giao diện không phải SDK.
PS-T6 SP-2 Ứng dụng phát hành chính thức không có thư viện gỡ lỗi. Điều này có thể gây ra các vấn đề về hiệu suất cũng bảo mật.
Pin PS-B1 BA-1 Ứng dụng hỗ trợ đúng cách các tính năng quản lý nguồn pin ra mắt trong Android 6.0 (Chế độ nghỉ và Chế độ chờ ứng dụng). Trong trường hợp chức năng cốt lõi bị gián đoạn do việc quản lý nguồn pin, thì chỉ những ứng dụng đủ điều kiện mới có thể yêu cầu miễn trừ. Xem phần Hỗ trợ các trường hợp sử dụng khác liên quan đến Chế độ nghỉ và Chế độ chờ ứng dụng.

Trong quá trình phát triển, nhà phát triển có thể kiểm tra hành vi ở chế độ chờ và chế độ nghỉ của ứng dụng bằng cách sử dụng các lệnh ADB này.

Về mức sử dụng pin, nhà phát triển có thể dùng Trình phân tích năng lượng của Android Studio hoặc công cụ Battery Historian (kết hợp với công việc theo kế hoạch ở chế độ nền) để chẩn đoán mức sử dụng pin ngoài dự kiến.

Quyền riêng tư và bảo mật

Ứng dụng của bạn phải xử lý dữ liệu người dùng và thông tin cá nhân sao cho an toàn với cấp độ quyền thích hợp.

Ngoài danh sách kiểm tra này, các ứng dụng phát hành trên Cửa hàng Google Play còn phải tuân thủ Chính sách dữ liệu người dùng để bảo vệ quyền riêng tư của người dùng.

Khía cạnh Mã nhận dạng Kiểm thử Mô tả
Quyền SC-P1 SC-4 Ứng dụng chỉ yêu cầu số lượng quyền tối thiểu tuyệt đối cần thiết để hỗ trợ trường hợp sử dụng. Đối với một số quyền như vị trí, nếu có thể thì hãy sử dụng thông tin vị trí tương đối thay cho vị trí chính xác.
SC-P2

Ứng dụng chỉ được yêu cầu cấp quyền truy cập vào dữ liệu nhạy cảm (chẳng hạn như Tin nhắn SMS, Nhật ký cuộc gọi hoặc Vị trí) hoặc các dịch vụ có tính phí (chẳng hạn như Tin nhắn SMS hoặc Trình quay số) khi có liên quan trực tiếp đến các trường hợp sử dụng chính của ứng dụng đó. Bạn phải thông báo rõ ràng cho người dùng về hệ quả liên quan đến những quyền này.

Tuỳ thuộc vào cách bạn sử dụng quyền, có thể có một cách thay thế để đáp ứng trường hợp sử dụng ứng dụng của ứng dụng mà không cần đến quyền truy cập vào thông tin nhạy cảm. Ví dụ: thay vì yêu cầu các quyền liên quan đến danh bạ của người dùng, bạn nên yêu cầu quyền truy cập bằng cách sử dụng ý định ngầm ẩn.

SC-P3 CR-0 Thay vì yêu cầu trước trong quá trình khởi động, ứng dụng sẽ yêu cầu quyền khi bắt đầu chạy theo bối cảnh, chẳng hạn như khi người dùng yêu cầu một chức năng nào đó.
SC-P4 CR-0

Ứng dụng truyền tải rõ ràng lý do cần được cấp một số quyền, hoặc làm theo quy trình được đề xuất để giải thích lý do ứng dụng cần quyền đó.

SC-P5 CR-0 Ứng dụng nên xuống cấp nhẹ khi người dùng từ chối hoặc thu hồi quyền. Ứng dụng ngăn chặn triệt để người dùng truy cập chính ứng dụng đó.
Dữ liệu và tệp SC-DF1 SC-1 Tất cả dữ liệu nhạy cảm đều được lưu trữ tại bộ nhớ trong của ứng dụng.
SC-DF2 SC-10 Không có dữ liệu cá nhân hoặc nhạy cảm nào của người dùng được ghi vào nhật ký hệ thống hoặc nhật ký dành riêng cho ứng dụng.
SC-DF3 Ứng dụng không sử dụng mã phần cứng không đặt lại được, chẳng hạn như mã IMEI, cho mục đích xác định danh tính.
Danh tính SC-ID1 CR-0 Ứng dụng đưa ra các gợi ý để tự động điền thông tin xác thực tài khoản và thông tin nhạy cảm khác, chẳng hạn như thông tin thẻ tín dụng, địa chỉ thực và số điện thoại.
SC-ID2 CR-0 Tích hợp cơ chế Một lần chạm cho Android để có trải nghiệm đăng nhập liền mạch.
SC-ID3 CR-0 Ứng dụng hỗ trợ xác thực bằng hệ thống nhận dạng sinh trắc học để bảo vệ các giao dịch tài chính hoặc thông tin nhạy cảm (ví dụ: tài liệu quan trọng của người dùng).
Thành phần ứng dụng SC-AC1 SC-5

Ứng dụng thiết lập rõ ràng thuộc tính android:exported cho tất cả hoạt động, dịch vụ, broadcast receiver và đặc biệt là các nhà cung cấp nội dung.

Chỉ những thành phần ứng dụng có chia sẻ dữ liệu với ứng dụng khác hoặc các thành phần có thể được các ứng dụng khác gọi, mới được xuất.

SC-AC2 CR-0
SC-4

Mọi ý định và thông báo đều tuân theo các phương pháp hay nhất:

  1. Sử dụng ý định tường minh nếu ứng dụng đích được xác định rõ.
  2. Dùng Ý định để hoãn cấp quyền cho một ứng dụng khác đã có quyền đó.
  3. Chia sẻ dữ liệu theo cách an toàn giữa các ứng dụng.
  4. Những ý định chứa tải trọng dữ liệu được xác minh trước khi sử dụng.
  5. Nếu bạn cần truyền một Ý định đến một ứng dụng khác để ứng dụng nhận có thể gọi và chờ một lệnh gọi lại trong ứng dụng gọi, thì đừng thêm ý định được lồng vào phần bổ sung. Sử dụng PendingIntent.
  6. Khi thiết lập PendingIntent, hãy thiết lập cờ không thể thay đổi một cách rõ ràng (nếu được).
SC-AC3 SC-3 Mọi thành phần có chia sẻ nội dung giữa các ứng dụng đều sử dụng android:protectionLevel="signature" cho các quyền tuỳ chỉnh. Trong đó có hoạt động, dịch vụ, broadcast receiver và đặc biệt là nhà cung cấp nội dung.

Ứng dụng không được dựa vào quyền truy cập danh sách gói đã cài đặt. Quyền truy cập này đã bị hạn chế kể từ Android 11.

Mạng SC-N1 SC-9 Tất cả lưu lượng truy cập mạng đều được gửi qua SSL.
SC-N2 SC-6 Ứng dụng khai báo một cấu hình bảo mật mạng.
SC-N3 Nếu ứng dụng sử dụng Dịch vụ Google Play, thì trình cung cấp dịch vụ bảo mật sẽ được khởi động khi khởi động ứng dụng.
WebView SC-W1 SC-6 Đừng sử dụng setAllowUniversalAccessFromFileURLs() để truy cập nội dung cục bộ trên thiết bị. Thay vào đó, hãy sử dụng WebViewAssetLoader.
SC-W2 SC-7 WebView không được sử dụng addJavaScriptInterface() với nội dung không đáng tin cậy.

Trên Android 6.0 trở lên, hãy chuyển sang sử dụng kênh thông báo HTML.

Thực thi SC-E1 Ứng dụng không tải động mã từ bên ngoài tệp APK của ứng dụng. Nhà phát triển phải sử dụng Android App Bundle, bao gồm cả Play Feature DeliveryPlay Asset Delivery.

Kể từ tháng 8 năm 2021, tất cả ứng dụng mới trong Cửa hàng Google Play đều bắt buộc phải sử dụng Android App Bundle.

Mật mã học SC-C1 Ứng dụng sử dụng thuật toán mật mã học mạnh và do nền tảng cung cấp cùng với một trình tạo số ngẫu nhiên. Ngoài ra, ứng dụng không triển khai thuật toán tuỳ chỉnh.

Google Play

Đảm bảo rằng ứng dụng của bạn có thể được phát hành trên Google Play.

Khía cạnh Mã nhận dạng Kiểm thử Mô tả
Chính sách GP-P1 GP-all Ứng dụng tuân thủ nghiêm ngặt các điều khoản trong Chính sách nội dung dành cho nhà phát triển trên Google Play và không cung cấp nội dung không phù hợp, không sử dụng tài sản trí tuệ hoặc thương hiệu của người khác, v.v.
GP-P2 GP-1 Mức độ trưởng thành của đối tượng mà ứng dụng nhắm đến được thiết lập thích hợp, dựa trên Nguyên tắc phân loại nội dung.
Trang thông tin chi tiết về ứng dụng GP-D1 GP-1
GP-2

Ảnh đầu trang của ứng dụng tuân theo các nguyên tắc nêu trong bài viết hỗ trợ này. Hãy chắc chắn rằng:

  1. Trang thông tin ứng dụng có ảnh đầu trang chất lượng cao.
  2. Ảnh đầu trang không chứa hình ảnh thiết bị, ảnh chụp màn hình hoặc văn bản cỡ nhỏ (không đọc được khi được thu nhỏ và trình bày trên kích thước màn hình nhỏ nhất mà ứng dụng nhắm đến).
  3. Ảnh đầu trang không được giống quảng cáo.
GP-D2 GP-1 Ảnh chụp màn hình và video của ứng dụng không cho thấy hoặc tham chiếu đến thiết bị không phải Android.
GP-D3 GP-1 Ảnh chụp màn hình hoặc video của ứng dụng không được thể hiện nội dung và trải nghiệm trong ứng dụng theo cách gây hiểu lầm.
Hỗ trợ người dùng GP-X1 GP-1 Các lỗi thường gặp do người dùng báo cáo trong thẻ Bài đánh giá trên trang Google Play sẽ được giải quyết nếu các lỗi này có thể lặp lại và xảy ra trên nhiều thiết bị. Nếu lỗi chỉ xảy ra trên một vài thiết bị, bạn vẫn nên xử lý lỗi đó nếu đó là các thiết bị đặc biệt phổ biến hoặc mới.

Thiết lập môi trường kiểm thử

Nhằm mục đích thiết lập môi trường kiểm thử cho danh sách kiểm tra này, bạn nên:

  • Tập trung vào việc kiểm thử trên trình mô phỏng – Trình mô phỏng Android là một cách tuyệt vời để kiểm thử ứng dụng của bạn theo nhiều phiên bản Android và độ phân giải màn hình. Bạn nên thiết lập thiết bị được mô phỏng (AVD) để thể hiện các kiểu dáng và tổ hợp phần cứng/phần mềm phổ biến nhất đại diện cho cơ sở người dùng mà mình nhắm đến. Ngoài việc kiểm thử cho điện thoại, bạn cũng nên kiểm thử theo các kiểu dáng thiết bị khác, ít nhất là các trình mô phỏng sau:
    • Thiết bị gập – Thiết bị có thể gập lại với màn hình ngoài 7,6” (liệt kê trong phần điện thoại trong Trình quản lý thiết bị ảo Android).
    • Máy tính bảng – Pixel C 9,94 inch (2.560px x 1.800px).
    • Để kiểm thử thông báo trên ứng dụng dành cho thiết bị di động, hãy ghép nối thiết bị di động/trình mô phỏng với trình mô phỏng Wear OS – Wear OS Round 1.84”.
  • Thiết bị phần cứng – Môi trường kiểm thử của bạn nên bao gồm một số ít thiết bị phần cứng thực tế đại diện cho các kiểu dáng thiết bị chính và các tổ hợp phần cứng/phần mềm mà người dùng hiện có thể sử dụng. Bạn không cần phải thử nghiệm trên mọi thiết bị có mặt trên thị trường. Thay vào đó, bạn nên tập trung vào một số ít thiết bị tiêu biểu, thậm chí sử dụng một hoặc hai thiết bị cho mỗi kiểu dáng.
  • Phòng thử nghiệm thiết bị – Bạn cũng có thể sử dụng các dịch vụ của bên thứ ba, chẳng hạn như Phòng thử nghiệm Firebase, để kiểm thử ứng dụng của mình trên thêm nhiều thiết bị.
  • Kiểm thử với phiên bản Android mới nhất – Ngoài việc kiểm thử các phiên bản Android đại diện cho cơ sở người dùng mà bạn nhắm đến, điều nên làm là luôn thử nghiệm trên phiên bản Android mới nhất (hiện là Android 11). Việc này giúp đảm bảo rằng những thay đổi mới nhất về hành vi không ảnh hưởng tiêu cực đến trải nghiệm người dùng.

Để xem hướng dẫn đầy đủ hơn về quy trình kiểm thử, bao gồm cả kiểm thử đơn vị, kiểm thử tích hợp và kiểm thử giao diện người dùng, hãy tham khảo Kiến thức cơ bản về kiểm thử trên Android.

Quy trình kiểm thử

Các quy trình kiểm thử này giúp bạn phát hiện nhiều loại vấn đề về chất lượng trong ứng dụng của mình. Bạn có thể kết hợp các bài kiểm thử hoặc tích hợp nhóm bài kiểm thử vào cùng một kế hoạch kiểm thử. Hãy xem các phần ở trên để tham khảo những tiêu chí gắn liền với các quy trình kiểm thử này.

Loại Kiểm thử Mô tả
Core Suite CR-0

Di chuyển đến mọi phần của ứng dụng — tất cả màn hình, hộp thoại, chế độ cài đặt và toàn bộ luồng người dùng.

  1. Nếu ứng dụng cho phép chỉnh sửa hoặc tạo nội dung, chơi trò chơi hoặc phát nội dung đa phương tiện, hãy nhớ kiểm thử các luồng đó.
  2. Trong khi kiểm thử ứng dụng, hãy đưa vào các yếu tố gián đoạn từ ứng dụng khác, chẳng hạn như nhận thông báo hoặc cuộc gọi điện thoại; đồng thời áp dụng các thay đổi tạm thời cho các thuộc tính của thiết bị, chẳng hạn như kết nối mạng, chức năng pin, khả năng sử dụng GPS và tải hệ thống.
  3. Nhập và kiểm thử tất cả các quy trình mua hàng trong ứng dụng
CR-1 Trên mỗi màn hình ứng dụng, hãy nhấn phím Màn hình chính của thiết bị hoặc vuốt lên khi thao tác bằng cử chỉ, sau đó chạy lại ứng dụng qua màn hình Tất cả ứng dụng.
CR-2 Trên mỗi màn hình ứng dụng, hãy chuyển sang một ứng dụng khác đang chạy, sau đó quay lại ứng dụng đang được kiểm thử bằng trình chuyển đổi ứng dụng Gần đây (Recents).
CR-3 Trên mỗi màn hình ứng dụng (và hộp thoại), hãy nhấn nút Quay lại hoặc sử dụng cử chỉ vuốt ngược.
CR-5 Trên mỗi màn hình ứng dụng, hãy xoay thiết bị giữa hướng ngang và dọc và gập/mở ít nhất 3 lần.
CR-6 Chuyển sang một ứng dụng khác để đưa ứng dụng được kiểm thử đó vào chế độ nền. Chuyển đến phần Cài đặt rồi kiểm tra xem ứng dụng đang được kiểm thử có chạy dịch vụ nào ở chế độ nền hay không. Trên Android 4.0 trở lên, hãy chuyển đến màn hình Ứng dụng rồi tìm ứng dụng đó trong thẻ "Đang chạy" ("Running").
CR-7 Nhấn nút nguồn để chuyển thiết bị sang chế độ ngủ, sau đó nhấn lại nút nguồn để đánh thức màn hình.
CR-8 Thiết lập khoá màn hình trên thiết bị. Nhấn nút nguồn để chuyển thiết bị sang chế độ ngủ (khoá thiết bị). Sau đó, nhấn lại nút nguồn để đánh thức màn hình và mở khoá thiết bị.
CR-9 Kích hoạt và quan sát trong ngăn thông báo tất cả các loại thông báo mà ứng dụng có thể hiển thị. Nếu có, hãy mở rộng thông báo (Android 4.1 trở lên) rồi nhấn vào tất cả thao tác hiện có.
CR-10 Tham khảo phần Hỗ trợ cho các trường hợp sử dụng khác liên quan đến Chế độ nghỉ và Chế độ chờ ứng dụng.
Cài đặt trên thẻ SD SD-1 Lặp lại Core Suite với ứng dụng đã cài đặt trên thẻ SD của thiết bị (nếu ứng dụng hỗ trợ phương thức cài đặt này).

Để chuyển ứng dụng sang thẻ SD, bạn có thể vào phần sau: Cài đặt > Thông tin ứng dụng > Di chuyển sang thẻ SD.

Hiệu suất và độ ổn định SP-1 Xem lại tệp kê khai Android và cấu hình bản dựng để đảm bảo ứng dụng được xây dựng dựa trên SDK mới nhất hiện có (targetSdkcompileSdk).
SP-2 Xem lại tệp build.gradle để tìm mọi phần phụ thuộc đã lỗi thời.
SP-3 Sử dụng công cụ tìm lỗi mã nguồn của Android Studio để phát hiện việc sử dụng giao diện không phải SDK. Ngoài ra, còn có các phương pháp thay thế khác để kiểm thử.
Giám sát hiệu suất PM-1 Lặp lại Core Suite với tính năng phân tích tài nguyên StrictMode.

Hãy chú ý kỹ đến việc thu gom rác và tác động của việc này đến trải nghiệm người dùng.

Pin BA-1 Lặp lại Core Suite trên các chu kỳ Nghỉ và Chế độ chờ ứng dụng.

Hãy đặc biệt chú ý đến chuông báo, đồng hồ hẹn giờ, thông báo, chế độ đồng bộ hoá, v.v. Hãy xem bài viết Kiểm thử với Chế độ nghỉ và Chế độ chờ ứng dụng để nắm được các yêu cầu và nguyên tắc.

Bảo mật SC-1 Xem xét tất cả dữ liệu được lưu trữ trong bộ nhớ ngoài.
SC-2 Xem xét cách xử lý dữ liệu được tải từ bộ nhớ ngoài.
SC-3 Xem lại tất cả nhà cung cấp nội dung được xác định trong tệp kê khai Android. Hãy đảm bảo mỗi nhà cung cấp có một protectionLevel thích hợp.
SC-4 Xem lại mọi quyền mà ứng dụng của bạn yêu cầu, trong tệp kê khai, trong thời gian chạy và trong màn hình cài đặt ứng dụng (Cài đặt > Thông tin ứng dụng) trên thiết bị.
SC-5 Xem lại tất cả thành phần ứng dụng được xác định trong tệp kê khai Android để kiểm tra trạng thái xuất thích hợp. Bạn phải đặt thuộc tính xuất cho tất cả thành phần một cách rõ ràng.
SC-6 Xem lại cấu hình Bảo mật mạng của ứng dụng để đảm bảo mọi yêu cầu kiểm tra tìm lỗi mã nguồn trên cấu hình đều đạt.
SC-7 Đối với mỗi WebView, hãy chuyển đến một trang yêu cầu JavaScript.
SC-8 Trong mỗi WebView, hãy cố gắng chuyển đến những trang web và nội dung mà ứng dụng của bạn không trực tiếp tải.
SC-9 Khai báo một Cấu hình bảo mật mạng vô hiệu hoá lưu lượng truy cập qua văn bản thô, sau đó kiểm thử ứng dụng.
SC-10 Chạy ứng dụng và triển khai tất cả chức năng cốt lõi, đồng thời quan sát nhật ký thiết bị. Không được ghi nhật ký thông tin riêng tư của người dùng.
Google Play GP-1 Đăng nhập vào Google Play Console để xem lại hồ sơ nhà phát triển, nội dung mô tả ứng dụng, ảnh chụp màn hình, ảnh đầu trang, mức phân loại nội dung và ý kiến phản hồi của người dùng.
GP-2 Tải ảnh đầu trang và ảnh chụp màn hình xuống, sau đó giảm kích thước cho phù hợp với kích thước màn hình trên những thiết bị và kiểu dáng mà bạn nhắm đến.
GP-3 Xem lại tất cả nội dung đồ hoạ, nội dung đa phương tiện, văn bản, thư viện mã và nội dung khác được đóng gói trong ứng dụng hoặc tệp tải xuống mở rộng.

Kiểm thử bằng StrictMode

Để kiểm thử hiệu suất, bạn nên bật StrictMode trong ứng dụng nhằm phát hiện những thao tác có thể ảnh hưởng đến hiệu suất, quyền truy cập mạng, lượt đọc/ghi tệp, v.v. Hãy tìm các thao tác có thể có vấn đề trên cả luồng chính và các luồng khác.

Có thể thiết lập chính sách giám sát theo từng luồng bằng cách sử dụng StrictMode.ThreadPolicy.Builder và bật tất cả chức năng giám sát được hỗ trợ trong ThreadPolicy bằng detectAll().

Đừng quên bật tính năng thông báo bằng hình ảnh trực quan về lỗi vi phạm chính sách đối với ThreadPolicy bằng penaltyFlashScreen().