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

Android 6.0 giúp bạn đả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ư mô tả trong phần Tổng quan về APIThay đổi về hành vi. Trong quá trình kiểm thử ứng dụng bằng bản phát hành này, có một số thay đổi cụ thể về hệ thống mà bạn nên tập trung thực hiện để đảm bảo người dùng có được trải nghiệm tốt.

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

Kiểm thử quyền

Mô hình Quyền mới thay đổi cách người dùng phân bổ quyền cho ứng dụng của bạn. Thay vì cấp tất 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 từng quyền trong thời gian chạy. Đối với người dùng, hành vi này giúp họ kiểm soát chi tiết hơn các hoạt động của từng ứng dụng, cũng như hiểu rõ hơn về lý do ứng dụng yêu cầu một quyền cụ thể. Người dùng có thể cấp hoặc thu hồi từng quyền đã cấp cho một ứ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 sẽ tác động đến hành vi của ứng dụng và có thể ngăn một số tính năng của ứng dụng hoạt động hoặc hoạt động ở trạng thái kém.

Thay đổi này ảnh hưởng đến tất cả các ứng dụng chạy trên nền tảng mới, ngay 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 một hành vi tương thích hạn chế cho các ứng dụng cũ, nhưng bạn nên bắt đầu lên kế hoạch di chuyển ứng dụng sang mô hình quyền mới ngay từ bây giờ, với mục tiêu phát hành phiên bản cập nhật của ứng dụng tại thời điểm ra mắt chính thức nền tảng.

Mẹo kiểm thử

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

  • 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ử qua nhiều cách kết hợp về 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ử

Thay đổi về 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à quy trình 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ập kế hoạch cho các luồng 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 có kế hoạch cập nhật ứng dụng của mình 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 thực sự cần và sử dụng, sau đó tìm các đường dẫn mã 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 kiểm thử trên nền tảng mới và 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ử bằng nhiều cách kết hợp quyền được thu hồi và thêm vào để làm nổi bật các luồng người dùng phụ thuộc vào quyền. Trong trường hợp 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 vùng quy trình đó để loại bỏ phần phụ thuộc hoặc làm rõ lý do cần có quyền đó.

Để biết thêm thông tin về hành vi của 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 Làm việc với 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 pin của chế độ Nghỉ và Chế độ chờ ứng dụng giới hạn lượng hoạt động xử lý ở chế độ 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 nằm trong 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 mạng bị hạn chế hoặc không có, các tác vụ ở chế độ nền bị tạm ngưng, 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 pin 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 bằng hình ả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 của bạn.
  3. Chạy ứng dụng và để ứng dụng ở trạng thái đang hoạt động.
  4. Mô phỏng thiết bị đang 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 thiết bị khôi phục nhẹ nhàng 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 bằng ứng dụng của bạn:

  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 của bạn.
  3. Chạy ứng dụng và để ứng dụng ở trạng thái đang 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 việ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 bị đánh thức. Hãy đảm bảo thiết bị khôi phục nhẹ nhàng từ chế độ chờ. Cụ thể, bạn nên kiểm tra xem Thông báo và công việc ở chế độ nền của ứng dụng có tiếp tục hoạt động như mong đợi không.

Tự động sao lưu ứ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 đang lưu trữ bất kỳ giá trị nhận dạng nào dành riêng cho thiết bị, chẳng hạn như mã nhận dạng đăng ký Google Cloud Messaging, trong bộ nhớ trong, 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.