Chương trình tương thích của Android là yếu tố chính giúp duy trì phản hồi tích cực cho hệ sinh thái Android. CTS là công cụ chính để đảm bảo chất lượng tương thích trên quy mô lớn. Nhóm Android tiếp tục cải thiện công cụ CTS và phạm vi kiểm thử. Việc thường xuyên thêm các trường hợp kiểm thử đã cải thiện đáng kể chất lượng của các thiết bị tương thích.
Câu hỏi chung
Phần này cung cấp các Câu hỏi thường gặp chung về CTS.
CTS kiểm thử những gì?
CTS kiểm tra để đảm bảo rằng tất cả các API có kiểu mạnh của Android được hỗ trợ đều có mặt và hoạt động đúng cách. CTS cũng kiểm thử các hành vi khác của hệ thống không phải API, chẳng hạn như vòng đời và hiệu suất của ứng dụng.
CTS được cấp phép như thế nào?
CTS được cấp phép theo cùng một Giấy phép phần mềm Apache 2.0 mà phần lớn Android sử dụng.
Bộ mã hoá và giải mã có được CTS xác minh không?
Có. Tất cả các bộ mã hoá và giải mã bắt buộc đều được CTS xác minh.
Câu hỏi dành riêng cho bài kiểm tra
Phần này cung cấp các câu hỏi thường gặp giúp chạy kiểm thử CTS hiệu quả hơn.
Sự khác biệt giữa Phân đoạn CTS và Phân đoạn TF là gì?
Phân đoạn CTS và phân đoạn TF là hai kế hoạch kiểm thử hoàn toàn khác nhau, được cung cấp bởi các cơ sở mã hạ tầng kiểm thử khác nhau. Mặc dù lệnh chạy giống nhau trên các phiên bản, nhưng kết quả phân đoạn lại hoạt động theo cách khác nhau. Tính năng phân đoạn CTS gán tĩnh các trường hợp kiểm thử cho Thiết bị đang kiểm thử (DUT) như sau:
- Lệnh: run cts
- Cấu hình dành cho Android 8.1 trở xuống: /tools/cts-tradefed/res/config/cts.xml
Tính năng phân đoạn TF sẽ tự động chỉ định các trường hợp kiểm thử cho các DUT có sẵn như sau:
- Lệnh: chạy cts
- Cấu hình cho Android 9: /platform/test/suite_harness/+/pie-cts-dev/tools/cts-tradefed/res/config/cts-suite.xml
Thiết bị hỗ trợ nhiều ABI có những đặc điểm gì?
Thiết bị phải vượt qua tất cả các bài kiểm thử CTS và CTS Verifier cho từng chế độ ABI mà thiết bị đó cho biết là hỗ trợ. Do đó, bạn cần thực thi một ứng dụng cho các ABI cụ thể. Sau đây là các nguyên tắc đối với nhiều ABI:
- Đối với CTS và CTS Verifier, có các bản phát hành ARM và x86 cho từng kiến trúc. Mỗi phiên bản có thể hỗ trợ chế độ 32 hoặc 64 bit.
- Đối với các bài kiểm thử CTS, nếu một thiết bị hỗ trợ cả ARM và x86, thì thiết bị đó phải chạy và vượt qua cả bài kiểm thử CTS ARM và x86 tương ứng.
Xem CDD 3.3.1. Giao diện nhị phân của ứng dụng để biết các yêu cầu của CDD đối với ABI.
Việc chỉ chạy kiểm thử trên ABI chính (ví dụ: 64 bit) có đủ để giảm thời gian thực thi kiểm thử không?
Không. Ứng dụng Android chạy trên môi trường thời gian chạy 32 bit hoặc 64 bit riêng. Mã máy, đường dẫn mã và trạng thái thực tế khác nhau giữa 32 và 64. Nếu bỏ qua một chế độ, bạn chỉ chiếm 50% ABI của thiết bị.
Tại sao có nhiều trường hợp kiểm thử được báo cáo là Chưa thực thi?
Bạn nên kiểm tra số Module Done (Mô-đun đã hoàn tất) thay vì số Not Executed (Chưa thực thi).
Trong các phiên bản trước, các mô-đun CTS được báo cáo là Module Done (Mô-đun đã hoàn tất) quá sớm trước khi hoàn tất. Do đó, số Modules Done (Mô-đun đã hoàn tất) được báo cáo mà không có tất cả các trường hợp kiểm thử hoàn tất ngay cả khi một số thiết bị gặp sự cố. Bộ kiểm thử mới thận trọng hơn và báo cáo số lượng kiểm thử Not Executed (Không thực thi) cao hơn khi xảy ra sự cố.
Một mô-đun chạy đến khi hoàn tất sẽ báo cáo Mô-đun chưa hoàn tất trong lệnh gọi gần đây nhất (done="false") trong báo cáo trong các trường hợp sau:
- Quá trình chạy kiểm thử cho mô-đun bị gián đoạn do sự cố kết nối thiết bị.
- Không phải tất cả các lần chạy kiểm thử dự kiến cho mô-đun đều được thực hiện.
Thử lại (sử dụng tuỳ chọn
-r/--retry
) với các tuỳ chọn lọc bổ sung, chẳng hạn như:- --bao gồm-bộ lọc
- --exclude-filter
- -t/--test (Tuỳ chọn chưa được hỗ trợ khi thử lại)
- --retry-type không thành công
- --subplan
Để nhận trạng thái Module Done (Mô-đun đã hoàn tất) (done="true") cho các mô-đun này, hãy thử lại nội dung sau cho lệnh gọi gần đây nhất:
run retry --retry <session_id> for Android 9 and later versions
run cts --retry <session_id> for Android 8.1 and previous versions
Mô-đun được thực thi mà không gặp phải vấn đề nào được đề cập trước đó (ngay cả khi không còn kiểm thử nào) sẽ được đánh dấu là Module Done (Mô-đun đã hoàn tất) trong báo cáo mới.
Ngoại lệ
- CtsNNAPITestCases có một vấn đề đã biết do giới hạn của linux/OS đối với các đối số.
Bạn có thể trực tiếp chạy lại mô-đun này một cách riêng biệt thông qua
run cts -m CtsNNAPITestCases
.
Làm cách nào để tránh việc chuẩn bị kiểm thử không thành công sau tường lửa của công ty?
Tất cả các bộ kiểm thử tự động đều cố gắng tải các tệp đa phương tiện CTS hoặc tệp logic nghiệp vụ xuống trong thời gian chạy. Trong nhiều môi trường doanh nghiệp, tường lửa và proxy là thông thường, khiến quá trình chuẩn bị kiểm thử không thành công. Thực thi dòng sau hoặc thêm dòng đó vào .profile (trên Ubuntu).
export JAVA_TOOL_OPTIONS='-Djava.net.useSystemProxies=true'
Tôi có cần thẻ SIM cho CTS cho Phần tử bảo mật không?
Việc có cần thẻ SIM cho kiểm thử hay không phụ thuộc vào việc bạn có hiểu rõ tính năng này có được hỗ trợ trong thiết bị kiểm thử hay không.
- Nếu thiết bị của bạn KHÔNG cần hỗ trợ các ứng dụng Android truy cập vào các phần tử bảo mật – trong UICC (ví dụ: thẻ SIM) do các nhà mạng di động phân phối hoặc được nhúng trong thiết bị – bạn có thể định cấu hình tệp kê khai HIDL để không bao gồm phần tử HAL
android.hardware.secure_element
. Trong trường hợp này, API android.se.omapi.SEService.getReaders() báo cáo một danh sách trống và kiểm thử CTS sẽ tự động vượt qua và báo cáo vượt qua cho CTS. - Nếu thiết bị của bạn CẦN hỗ trợ ứng dụng Android truy cập vào phần tử bảo mật – trong UICC (ví dụ: thẻ SIM) do các nhà mạng di động phân phối hoặc được nhúng trong thiết bị – bạn cần triển khai phần tử bảo mật đúng cách và kiểm thử phần tử đó trong nội bộ. Bài viết Kiểm thử CTS cho phần tử bảo mật trình bày cách chuẩn bị chạy các chương trình kiểm thử CTS nhằm đảm bảo gói API android.se.omapi được thêm vào Android 9 hoạt động tốt. Bạn cũng nên tự thực hiện thêm các thử nghiệm khác vì phạm vi kiểm thử CTS rất nhỏ.
Tôi có thể mua thẻ SIM cho CTS cho Secure Element ở đâu?
Bạn có thể liên hệ với nhà cung cấp SIM mà mình ưu tiên.
Tại sao SIM Orange lại xuất hiện trên màn hình khoá trong quá trình thực thi CTS bằng tính năng phân đoạn mã thông báo?
Trường hợp kiểm thử không bắt đầu vì thẻ SIM đang bị khoá. Tắt Khoá thẻ SIM trong phần **cài đặt khoá thẻ SIM trước khi thực thi CTS bằng tính năng phân đoạn mã thông báo.