Hướng dẫn kiểm thử Android 6.0

Android 6.0 mang đến cho bạn cơ hội đảm bảo ứng dụng của mình hoạt động với phiên bản nền tảng tiếp theo. Bản phát hành này bao gồm một số API và thay đổi về hành vi có thể ảnh hưởng đến ứng dụng của bạn, như được mô tả trong phần Tổng quan về APICác thay đổi về hành vi. Trong quá trình kiểm thử ứng dụng thông qua bản phát hành này, bạn nên tập trung vào một số thay đổi cụ thể về hệ thống để đảm bảo người dùng có trải nghiệm tốt.

Hướng dẫn này mô tả nội dung và cách thức kiểm thử các tính năng của Android 6.0 bằng ứng dụng của bạn. Bạn nên ưu tiên kiểm thử các tính năng cụ thể này, do những tính năng này có nhiều khả năng tác động đến hành vi của ứng dụng:

Quyền kiểm thử

Mô hình Quyền mới thay đổi cách người dùng phân bổ các quyền cho ứng dụng của bạn. Thay vì cấp tất cả các quyền trong quy trình cài đặt, ứng dụng của bạn phải yêu cầu người dùng cấp các quyền riêng lẻ trong thời gian chạy. Đối với người dùng, hành vi này mang đến cho người dùng quyền kiểm soát chi tiết hơn đối với các hoạt động của từng ứng dụng, cũng như hiểu rõ hơn về bối cảnh để hiểu lý do ứng dụng yêu cầu một quyền cụ thể nào đó. Người dùng có thể cấp hoặc thu hồi các quyền đã cấp cho từng ứng dụng bất cứ lúc nào. Tính năng này của bản phát hành có nhiều khả năng tác động đến hành vi của ứng dụng nhất và có thể khiến một số tính năng của ứng dụng không hoạt động được hoặc các tính năng đó có thể hoạt động ở trạng thái kém hiệu quả.

Thay đổi này ảnh hưởng đến tất cả ứng dụng chạy trên nền tảng mới, kể cả những ứng dụng không nhắm đến phiên bản nền tảng mới. Nền tảng này cung cấp hành vi tương thích hạn chế cho các ứng dụng cũ. Tuy nhiên, bạn nên bắt đầu lập kế hoạch di chuyển ứng dụng của mình sang mô hình quản lý quyền mới ngay bây giờ, với mục tiêu phát hành một phiên bản cập nhật của ứng dụng ngay khi ra mắt nền tảng chính thức.

Thử nghiệm mẹo

Hãy sử dụng các mẹo kiểm thử sau đây để giúp bạn lên kế hoạch và thực thi việc kiểm thử ứng dụng theo hành vi mới về quyền.

  • Xác định quyền hiện tại của ứng dụng và đường dẫn mã liên quan.
  • Kiểm thử luồng người dùng trên dịch vụ và dữ liệu có quyền được bảo vệ.
  • Kiểm thử nhiều tổ hợp quyền đã cấp/bị thu hồi.
  • Sử dụng công cụ adb để quản lý quyền từ dòng lệnh:
    • Liệt kê quyền và trạng thái theo nhóm:
      adb shell pm list permissions -d -g
    • Cấp hoặc thu hồi một hoặc nhiều quyền bằng cú pháp sau:
      adb shell pm [grant|revoke] <permission.name> ...
  • Phân tích ứng dụng về các dịch vụ sử dụng quyền.

Chiến lược kiểm thử

Việc thay đổi quyền ảnh hưởng đến cấu trúc và thiết kế của ứng dụng, cũng như trải nghiệm người dùng và các luồng mà bạn cung cấp cho người dùng. Bạn nên đánh giá việc sử dụng quyền hiện tại của ứng dụng và bắt đầu lên kế hoạch cho các quy trình mới mà bạn muốn cung cấp. Bản phát hành chính thức của nền tảng cung cấp hành vi tương thích, nhưng bạn nên lập kế hoạch cập nhật ứng dụng và không dựa vào những hành vi này.

Xác định các quyền mà ứng dụng của bạn thực sự cần và sử dụng, sau đó tìm các đường dẫn mã khác nhau sử dụng các dịch vụ được bảo vệ bằng quyền. Bạn có thể thực hiện việc này thông qua việc kết hợp hoạt động kiểm thử trên nền tảng mới và quy trình phân tích mã. Trong quá trình kiểm thử, bạn nên tập trung vào việc chọn sử dụng các quyền khi bắt đầu chạy bằng cách thay đổi targetSdkVersion của ứng dụng thành API cấp 23.

Kiểm thử với nhiều tổ hợp quyền bị thu hồi và thêm vào để làm nổi bật luồng người dùng phụ thuộc vào quyền. Khi có một phần phụ thuộc không rõ ràng hoặc không hợp lý, bạn nên cân nhắc việc tái cấu trúc hoặc phân chia luồng đó để loại bỏ phần phụ thuộc, hoặc làm rõ lý do cần đến quyền này.

Để biết thêm thông tin về hành vi của các quyền khi bắt đầu chạy, hoạt động kiểm thử và các phương pháp hay nhất, hãy xem nội dung dành cho nhà phát triển Xử lý quyền hệ thống.

Kiểm thử Chế độ nghỉ và Chế độ chờ ứng dụng

Các tính năng tiết kiệm điện năng của chế độ Nghỉ và Chế độ chờ ứng dụng giới hạn mức độ xử lý trong nền mà ứng dụng của bạn có thể thực hiện khi thiết bị ở trạng thái rảnh hoặc khi ứng dụng không được đặt tiêu điểm. Các hạn chế mà hệ thống có thể áp dụng cho ứng dụng bao gồm quyền truy cập hạn chế hoặc không có quyền truy cập mạng, tác vụ bị tạm ngưng ở chế độ nền, Thông báo bị tạm ngưng, yêu cầu đánh thức bị bỏ qua và chuông báo. Để đảm bảo ứng dụng hoạt động đúng cách với các tính năng tối ưu hoá tiết kiệm điện năng này, bạn nên kiểm thử ứng dụng bằng cách mô phỏng các trạng thái tiết kiệm pin này.

Kiểm thử ứng dụng bằng chế độ Nghỉ

Cách kiểm thử chế độ Nghỉ bằng ứng dụng:

  1. Định cấu hình thiết bị phần cứng hoặc thiết bị ảo có ảnh hệ thống Android 7.0 (API cấp 24).
  2. Kết nối thiết bị với máy phát triển và cài đặt ứng dụng.
  3. Chạy ứng dụng và để ứng dụng ở trạng thái hoạt động.
  4. Mô phỏng thiết bị chuyển sang chế độ Nghỉ bằng cách chạy các lệnh sau:
    $ adb shell dumpsys battery unplug
    $ adb shell dumpsys deviceidle step
    $ adb shell dumpsys deviceidle -h
    
  5. Quan sát hành vi của ứng dụng khi thiết bị được kích hoạt lại. Hãy đảm bảo mã này khôi phục linh hoạt khi thiết bị thoát khỏi chế độ Nghỉ.

Kiểm thử ứng dụng bằng Chế độ chờ ứng dụng

Cách kiểm thử Chế độ chờ ứng dụng với ứng dụng:

  1. Định cấu hình thiết bị phần cứng hoặc thiết bị ảo có ảnh hệ thống Android 7.0 (API cấp 24).
  2. Kết nối thiết bị với máy phát triển và cài đặt ứng dụng.
  3. Chạy ứng dụng và để ứng dụng ở trạng thái hoạt động.
  4. Mô phỏng ứng dụng chuyển sang chế độ chờ bằng cách chạy các lệnh sau:
    $ adb shell am broadcast -a android.os.action.DISCHARGING
    $ adb shell am set-idle <packageName> true
    
  5. Mô phỏng thao tác đánh thức ứng dụng bằng lệnh sau:
    $ adb shell am set-idle <packageName> false
  6. Quan sát hành vi của ứng dụng khi ứng dụng được đánh thức. Hãy đảm bảo thiết bị khôi phục linh hoạt từ chế độ chờ. Cụ thể, bạn nên kiểm tra xem các công việc trong nền và Thông báo của ứng dụng có tiếp tục hoạt động như dự kiến hay không.

Tự động sao lưu cho các ứng dụng và giá trị nhận dạng dành riêng cho thiết bị

Nếu ứng dụng của bạn vẫn đang lưu trữ mã nhận dạng dành riêng cho thiết bị, chẳng hạn như mã đăng ký Google Cloud Messaging bằng tính năng tự động sao lưu, hãy nhớ làm theo các phương pháp hay nhất để loại trừ vị trí bộ nhớ khỏi tính năng tự động sao lưu, như mô tả trong phần Sao lưu dữ liệu người dùng bằng tính năng tự động sao lưu.