Dự án nguồn mở Android (AOSP) cung cấp một số công cụ và bộ kiểm thử để kiểm thử nhiều phần trong quá trình triển khai của bạn. Trước khi sử dụng các trang trong phần này, bạn nên làm quen với những thuật ngữ sau:
- Thiết bị tương thích với Android
- Thiết bị có thể chạy mọi ứng dụng bên thứ ba do nhà phát triển bên thứ ba viết bằng Android SDK và NDK. Các thiết bị tương thích với Android phải tuân thủ các yêu cầu của Tài liệu định nghĩa về khả năng tương thích (CDD) và vượt qua Bộ kiểm tra tính tương thích (CTS). Các thiết bị tương thích với Android đủ điều kiện tham gia hệ sinh thái Android, bao gồm cả khả năng được cấp phép Google Play, khả năng được cấp phép bộ ứng dụng và API Dịch vụ di động của Google (GMS), cũng như việc sử dụng thương hiệu Android. Mọi người đều có thể sử dụng mã nguồn Android, nhưng để được coi là một phần của hệ sinh thái Android, thiết bị phải tương thích với Android.
- artifact
- Nhật ký liên quan đến bản dựng giúp khắc phục sự cố cục bộ.
- Tài liệu định nghĩa về khả năng tương thích (CDD)
- Một tài liệu liệt kê các yêu cầu về phần mềm và phần cứng đối với một thiết bị tương thích với Android.
- Bộ kiểm tra tính tương thích (CTS)
Một bộ kiểm thử miễn phí, cấp thương mại, có thể tải xuống dưới dạng tệp nhị phân hoặc dưới dạng nguồn trong AOSP. CTS là một bộ kiểm thử đơn vị được thiết kế để tích hợp vào quy trình làm việc hằng ngày của bạn. Mục đích của CTS là để phát hiện các điểm không tương thích và đảm bảo phần mềm vẫn tương thích trong suốt quá trình phát triển.
CTS và các kiểm thử nền tảng không loại trừ lẫn nhau. Sau đây là một số nguyên tắc chung:
- Nếu một kiểm thử đang khẳng định tính chính xác của các hàm hoặc hành vi API khung và kiểm thử đó phải được thực thi trên các đối tác OEM, thì kiểm thử đó phải nằm trong CTS.
- Nếu một quy trình kiểm thử nhằm phát hiện các lỗi hồi quy trong quá trình phát triển nền tảng, có thể yêu cầu quyền đặc biệt để thực hiện và có thể phụ thuộc vào thông tin chi tiết về việc triển khai (như được phát hành trong AOSP), thì đó phải là một quy trình kiểm thử nền tảng.
- Các dịch vụ của Google dành cho thiết bị di động (GMS)
Một bộ sưu tập các ứng dụng và API của Google có thể được cài đặt sẵn trên thiết bị.
- GoogleTest (GTest)
Một khung kiểm thử và mô phỏng C++. Các tệp nhị phân GTest thường truy cập vào các lớp trừu tượng cấp thấp hơn hoặc thực hiện IPC thô đối với nhiều dịch vụ hệ thống. Phương pháp kiểm thử cho GTest thường được liên kết chặt chẽ với dịch vụ đang được kiểm thử. CTS chứa khung GTest.
- kiểm thử đo lường
Môi trường thực thi kiểm thử đặc biệt do lệnh
am instrument
khởi chạy, trong đó quy trình ứng dụng mục tiêu được khởi động lại và khởi tạo bằng ngữ cảnh ứng dụng cơ bản, đồng thời một luồng đo lường được khởi động bên trong máy ảo quy trình ứng dụng. CTS chứa các bài kiểm thử đo lường.- Logcat
Một công cụ dòng lệnh tạo nhật ký thông báo của hệ thống, bao gồm dấu vết ngăn xếp khi thiết bị tạo ra lỗi và thông báo mà bạn đã viết từ ứng dụng của mình bằng lớp
Log
.- ghi nhật ký
Sử dụng nhật ký để theo dõi các sự kiện của hệ thống máy tính, chẳng hạn như lỗi. Việc ghi nhật ký trong Android rất phức tạp do sự kết hợp của các tiêu chuẩn được dùng và kết hợp trong công cụ Logcat.
- postsubmit test
Một quy trình kiểm thử Android được thực hiện khi một bản vá mới được cam kết cho một nhánh kernel chung. Bằng cách nhập
aosp_kernel
làm tên nhánh một phần, bạn có thể xem danh sách các nhánh hạt nhân có kết quả. Ví dụ: bạn có thể xem kết quả choandroid-mainline
tại https://ci.android.com/builds/branches/aosp_kernel-common-android-mainline/grid.- kiểm thử trước khi gửi
Một thử nghiệm dùng để ngăn các lỗi xuất hiện trong các hạt nhân chung.
- Liên minh Thương mại
Còn được gọi là Tradefed, một khung kiểm thử liên tục được thiết kế để chạy các kiểm thử trên thiết bị Android. Ví dụ: Tradefed được dùng để chạy các kiểm thử Bộ kiểm tra tính tương thích và Bộ kiểm thử của nhà cung cấp.
- Bộ kiểm thử của nhà cung cấp (VTS)
Một bộ tính năng mở rộng để kiểm thử Android, thúc đẩy quy trình phát triển dựa trên kiểm thử và tự động hoá lớp trừu tượng phần cứng (HAL) và kiểm thử hạt nhân hệ điều hành.
Các loại kiểm thử nền tảng
Bài kiểm thử nền tảng thường tương tác với một hoặc nhiều dịch vụ hệ thống Android hoặc các lớp HAL, thực hiện các chức năng của đối tượng đang được kiểm thử và khẳng định tính chính xác của kết quả kiểm thử. Một kiểm thử nền tảng có thể:
- (Loại 1) API khung bài tập sử dụng khung Android. Các API cụ thể đang được thực thi có thể bao gồm:
- API công khai dành cho các ứng dụng bên thứ ba
- Các API ẩn dành cho các ứng dụng có đặc quyền, cụ thể là API hệ thống hoặc API riêng tư (
@hide
hoặcprotected
,package private
)
- (Loại 2) Gọi trực tiếp các dịch vụ hệ thống Android bằng cách sử dụng binder thô hoặc proxy IPC.
- (Loại 3) Tương tác trực tiếp với HAL bằng cách sử dụng các API cấp thấp hoặc giao diện IPC.
Kiểm thử loại 1 và 2 thường là kiểm thử đo lường, trong khi kiểm thử loại 3 thường là GTest.
Tiếp theo là gì?
Sau đây là danh sách các tài liệu mà bạn có thể đọc để biết thêm thông tin chi tiết:
Nếu bạn chưa nghiên cứu kiến trúc Android, hãy xem phần Tổng quan về kiến trúc.
Nếu bạn đang tạo một thiết bị tương thích với Android, hãy xem Tổng quan về chương trình tương thích của Android.
Để tích hợp các kiểm thử đo lường, kiểm thử chức năng, kiểm thử chỉ số và kiểm thử máy chủ lưu trữ JAR vào một dịch vụ kiểm thử liên tục trên nền tảng, hãy xem Quy trình phát triển kiểm thử.
Để phát hiện và tăng cường bảo mật cho thiết bị của bạn trước các lỗ hổng bảo mật, hãy xem phần Kiểm thử bảo mật.
Để tìm hiểu về cách kiểm thử việc triển khai HAL và nhân, hãy xem Bộ kiểm thử của nhà cung cấp (VTS) và cơ sở hạ tầng.
Để kiểm thử ứng dụng, hãy đọc bài viết Kiến thức cơ bản về kiểm thử ứng dụng Android và thực hiện bài tập Kotlin nâng cao cho Android 05.1:Kiến thức cơ bản về kiểm thử bằng cách sử dụng các mẫu được cung cấp.
Tìm hiểu về quy trình kiểm thử cơ bản trước khi gửi mà bạn có thể sử dụng thông qua các lệnh gọi repo. Bạn có thể dùng các hook này để chạy trình kiểm tra lỗi, kiểm tra định dạng và kích hoạt các kiểm thử đơn vị trước khi tiếp tục, chẳng hạn như tải một cam kết lên. Theo mặc định, các lệnh gọi này sẽ bị tắt. Để biết thêm thông tin, hãy xem phần Các lệnh gọi trước khi tải lên AOSP.
Để đọc thêm về tính năng ghi nhật ký, hãy xem phần Tìm hiểu về tính năng ghi nhật ký.
Để tìm hiểu cách gỡ lỗi mã Android, hãy xem bài viết Gỡ lỗi mã gốc trong nền tảng Android.