Программа совместимости Android является ключевым фактором поддержания положительных отзывов об экосистеме Android. CTS — ключевой инструмент для обеспечения качества совместимости в масштабе. Команда Android продолжает совершенствовать инструмент CTS и покрытие тестов. Регулярное добавление тестовых примеров значительно улучшает качество совместимых устройств.
Общие вопросы
В этом разделе представлены общие часто задаваемые вопросы по CTS.
Какие вещи проверяет CTS?
CTS проверяет, что все поддерживаемые API строгой типизации Android присутствуют и работают правильно. CTS также тестирует другое поведение системы, не связанное с API, например жизненный цикл и производительность приложения.
Как лицензируется CTS?
CTS лицензируется по той же лицензии Apache Software License 2.0, которую использует большая часть Android.
Кодеки проверены CTS?
Да. Все обязательные кодеки проверены CTS.
Вопросы, относящиеся к тесту
В этом разделе представлены часто задаваемые вопросы, которые помогут более эффективно выполнять тесты CTS.
В чем разница между шардингом CTS и шардингом TF?
CTS Sharding и TF Sharding — это совершенно разные планы тестирования, основанные на разной кодовой базе тестовой инфраструктуры. Хотя команда запуска одинакова в разных версиях, результат сегментирования ведет себя по-разному. CTS Sharding статически назначает тестовые сценарии тестируемым устройствам (DUT) следующим образом:
- Команда: запустить cts
- Конфигурация для Android 8.1 и более ранних версий: /tools/cts-tradefed/res/config/cts.xml
TF Sharding динамически назначает тестовые примеры доступным DUT следующим образом:
- Команда: запустить cts
- Конфигурация для Android 9: /platform/test/suite_harness/+/pie-cts-dev/tools/cts-tradefed/res/config/cts-suite.xml
Что ожидается от устройства, поддерживающего несколько ABI?
Устройство должно пройти все тесты CTS и CTS Verifier для каждого режима ABI, который оно поддерживает. Поэтому необходимо запустить приложение для конкретных ABI. Рекомендации для нескольких ABI следующие:
- Для CTS и CTS Verifier существуют версии ARM и x86 для каждой архитектуры. Каждый из них может поддерживать 32- или 64-битный режим.
- Для тестов CTS, если устройство поддерживает как ARM, так и x86, оно должно запустить и пройти тесты CTS ARM и x86 соответственно.
См. CDD 3.3.1. Двоичные интерфейсы приложений для требований CDD в ABI.
Достаточно ли запускать тест только на основном ABI (например, 64-битном), чтобы сократить время выполнения теста?
Нет. Приложение Android работает в собственной 32- или 64-битной среде выполнения. Фактический машинный код, путь к коду и состояние различаются между 32 и 64. Если вы пропустите один режим, вы покроете только 50% ABI устройства.
Почему так много тестовых случаев сообщается как «Не выполнено»?
Вам следует проверить номер модуля «Выполнено» вместо номера «Не выполнено» .
В предыдущих версиях модули CTS слишком агрессивно отображались как «Модуль выполнен» перед завершением. Таким образом, число модулей выполнено без завершения всего тестового примера, даже если на некоторых устройствах возникли проблемы. Новый набор тестов более консервативен и при возникновении проблемы сообщает о большем количестве невыполненных тестов.
Модуль, запущенный до завершения, сообщает о том, что модуль не выполнен при последнем вызове (done="false") в отчете в следующих случаях:
- Тестовый запуск модуля был прерван из-за проблемы с подключением устройства.
- Не все ожидаемые тестовые запуски модуля были выполнены.
Повторная попытка (с использованием опции
-r/--retry
) с дополнительными параметрами фильтрации, такими как:- --include-фильтр
- --exclude-фильтр
- -t/--test (опция пока не поддерживается при повторной попытке)
- --retry-type не удалось
- --подплан
Чтобы получить статус «Модуль выполнен» (done="true") для этих модулей, повторите следующее для самого последнего вызова:
run retry --retry <session_id> for Android 9 and later versions
run cts --retry <session_id> for Android 8.1 and previous versions
Модуль, выполненный без каких-либо проблем, упомянутых ранее (даже при 0 оставшихся тестах), в новом отчете помечается как «Модуль выполнено» .
Исключения
- CtsNNAPITestCases имеет известную проблему, связанную с ограничением аргументов в Linux/OS. Модуль можно перезапустить изолированно,
run cts -m CtsNNAPITestCases
.
Как избежать сбоя подготовки к тестированию за корпоративным брандмауэром?
Все наборы автоматизированных тестов пытаются загрузить либо медиафайлы CTS, либо файлы бизнес-логики во время выполнения. Во многих корпоративных средах типично использование брандмауэра и прокси-сервера, из-за чего подготовка к тесту не удалась. Выполните следующую строку или добавьте ее в .profile (в Ubuntu).
export JAVA_TOOL_OPTIONS='-Djava.net.useSystemProxies=true'
Нужна ли мне SIM-карта для CTS for Secure Element?
Нужна ли SIM-карта для теста, зависит от понимания того, поддерживается ли эта функция в тестовом устройстве.
- Если вашему устройству НЕ требуется поддержка приложений Android, получающих доступ к защищенным элементам — либо в UICC (например, SIM-карте), распространяемой операторами мобильной сети (операторами), либо встроенной в устройство — вы можете настроить манифест HIDL так, чтобы он не включал элемент HAL
android.hardware.secure_element
. В этом случае API android.se.omapi.SEService.getReaders() сообщает о пустом списке, а тест CTS автоматически проходит и сообщает о прохождении CTS. - Если вашему устройству ДЕЙСТВИТЕЛЬНО необходимо поддерживать приложения Android, получающие доступ к защищенным элементам — либо в UICC (например, SIM-карте), распространяемому операторами мобильной сети (операторами), либо встроенному в устройство — вам необходимо правильно реализовать безопасный элемент и протестировать его. внутридомовой. CTS Test for Secure Element описывает, как подготовиться к запуску тестов CTS, которые проверят работоспособность пакета API android.se.omapi, добавленного в Android 9. Мы также рекомендуем провести дополнительное тестирование самостоятельно, поскольку охват тестами CTS минимален.
Где я могу получить SIM-карты для CTS для Secure Element?
Вы можете обратиться к предпочитаемому вами поставщику SIM-карты.
Почему Orange SIM отображается на экране блокировки во время выполнения CTS с шардингом токена?
Тестовый пример не запускается, поскольку тестирование SIM-карты заблокировано. Отключите блокировку SIM-карты в **настройках блокировки SIM-карты перед выполнением CTS с сегментированием токена.