Chương trình tương thích của Android là động lực chính để 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 khả nă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 bổ sung các trường hợp kiểm thử giúp 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 loại nội dung nào?
Các kiểm thử CTS mà tất cả các API được hỗ trợ có kiểu dữ liệu mạnh của Android đều có mặt và hoạt động chính xác. 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.
CTS có xác minh các bộ mã hoá và giải mã không?
Có. CTS xác minh tất cả các bộ mã hoá và giải mã bắt buộc.
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 các kiểm thử CTS hiệu quả hơn.
Sự khác biệt giữa CTS Sharding và TF Sharding là gì?
CTS Sharding và TF Sharding là các kế hoạch kiểm thử hoàn toàn khác nhau, được hỗ trợ bởi cơ sở mã cơ sở hạ tầng kiểm thử khác nhau. Mặc dù lệnh chạy giống nhau ở các phiên bản khác nhau, nhưng kết quả phân đoạn sẽ có hành vi khác. Tính năng phân đoạn CTS sẽ chỉ định 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 cho Android 8.1 trở xuống: /tools/cts-tradefed/res/config/cts.xml
TF Sharding sẽ tự động chỉ định các trường hợp kiểm thử cho các DUT hiện có như sau:
- Lệnh: run 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ần đáp ứng những yêu cầu nào?
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ị đó tuyên bố 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 cấu trúc. Mỗi chế độ có thể hỗ trợ chế độ 32 bit 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 cho các yêu cầu của CDD về ABI.
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 thời gian chạy 32 bit hoặc 64 bit riêng. Mã máy thực tế, đường dẫn mã và trạng thái khác nhau giữa 32 và 64. Nếu bỏ qua một chế độ, bạn chỉ bao gồm 50% ABI của thiết bị.
Tại sao có quá nhiều trường hợp kiểm thử được báo cáo là Chưa thực hiện?
Bạn nên kiểm tra số Module Done (Đã hoàn thành mô-đun) 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 (Đã hoàn tất mô-đun) quá sớm trước khi hoàn thành. Do đó, số Modules Done (Đã hoàn thành các mô-đun) được báo cáo mà không hoàn thành tất cả các trường hợp kiểm thử, ngay cả khi một số thiết bị gặp vấn đề. Bộ kiểm thử mới có tính bảo thủ hơn và báo cáo số lượng bài kiểm thử Không thực thi cao hơn khi xảy ra vấn đề.
Một mô-đun chạy đến khi hoàn tất sẽ báo cáo Module Not Done (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:
- Một lần chạy thử cho mô-đun đã bị gián đoạn do vấn đề về 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 (bằng cách sử dụng lựa chọn
-r/--retry
) với các lựa chọn lọc bổ sung, chẳng hạn như:- --include-filter
- --exclude-filter
- -t/--test (Lựa 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 (done="true") cho các mô-đun này, hãy thử lại những thao tác 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ột mô-đun được thực thi mà không gặp bất kỳ vấn đề nào đã đề cập trước đó (ngay cả khi còn 0 kiểm thử) sẽ được đánh dấu là Module Done (Đã hoàn tất mô-đun) trong báo cáo mới.
Ngoại lệ
- CtsNNAPITestCases có một vấn đề đã biết do giới hạn linux/OS của các đối số.
Bạn có thể chạy lại mô-đun riêng biệt thông qua
run cts -m CtsNNAPITestCases
.
Làm cách nào để tránh trường hợp chuẩn bị cho bài kiểm tra không thành công do 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 xuống tệp nội dung nghe nhìn CTS hoặc tệp logic nghiệp vụ trong thời gian chạy. Trong nhiều môi trường doanh nghiệp, tường lửa và proxy là điều thường thấy, 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 này vào .profile (trên Ubuntu).
export JAVA_TOOL_OPTIONS='-Djava.net.useSystemProxies=true'
Tôi có cần thẻ SIM cho CTS cho Secure Element không?
Việc có cần thẻ SIM cho quá trình 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 thiết bị kiểm thử hỗ trợ 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 nhà mạng di động (nhà mạ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() sẽ 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 kết quả vượt qua cho CTS. - Nếu thiết bị của bạn 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 nhà mạ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ử nội bộ. Bài 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 bài kiểm thử CTS để đảm bảo gói API android.se.omapi được thêm vào Android 9 hoạt động. Bạn cũng nên tự thực hiện các kiểm thử bổ sung vì phạm vi kiểm thử CTS là tối thiểu.
Tôi có thể lấy thẻ SIM cho CTS cho Phần tử bảo mật ở đâu?
Bạn có thể liên hệ với nhà cung cấp SIM mà mình muố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 khi phân chia mã thông báo?
Trường hợp kiểm thử không bắt đầu vì quá trình kiểm thử thẻ SIM bị khoá. Tắt chế độ Khoá thẻ SIM trong **chế độ cài đặt Khoá thẻ SIM trước khi thực thi CTS bằng tính năng phân chia mã thông báo.