Набор тестов совместимости

Compatibility Test Suite (CTS) — это бесплатный набор тестов коммерческого уровня, используемый производителями устройств для обеспечения совместимости их устройств и предоставления результатов испытаний для проверки. CTS предназначен для интеграции в ежедневный рабочий процесс (например, посредством системы непрерывной сборки) инженеров, создающих устройство. Целью CTS является выявление несовместимостей на раннем этапе и обеспечение совместимости программного обеспечения на протяжении всего процесса разработки.

CTS доступен для загрузки в виде двоичного файла или исходного кода в Android Open Source Project (AOSP) . CTS работает на настольном компьютере и выполняет тестовые сценарии непосредственно на подключенных устройствах или в эмуляторе.

CTS содержит два основных программных компонента:

  • Тестовый пакет Trade Federation запускается на вашем настольном компьютере и управляет выполнением тестов. Trade Federation предлагает возможность сегментировать тесты на нескольких тестируемых устройствах (DUT). Вы также можете использовать функцию повтора пакета, чтобы повторять только сбои, а не полные пакеты, что значительно сокращает время повторного запуска.
  • Отдельные тестовые примеры выполняются на тестируемом устройстве. Тестовые примеры написаны на Java в виде тестов JUnit и упакованы в файлы Android .apk для запуска на реальном целевом устройстве.

Средство проверки комплекта тестов совместимости (CTS Verifier)

Средство проверки комплекта тестов совместимости (CTS Verifier) ​​— это дополнение к CTS, доступное для загрузки . CTS Verifier обеспечивает тесты API и функций, которые невозможно протестировать на стационарном устройстве без ручного ввода (например, качество звука и акселерометр) или ручного позиционирования.

CTS Verifier — это инструмент для ручного тестирования, который включает в себя следующие программные компоненты:

  • Приложение CTS Verifier, которое запускается на тестируемом устройстве (и на втором устройстве для измерения расстояния) и собирает результаты.

  • Исполняемые файлы или сценарии, которые выполняются на настольном компьютере для предоставления данных или дополнительного контроля для некоторых тестовых случаев в приложении CTS Verifier.

Рабочий процесс

поток CTS

Рисунок 1. Как использовать CTS

На этой диаграмме обобщается рабочий процесс CTS. Подробные инструкции см. на подстраницах этого раздела, начиная с раздела «Настройка» .

Типы тестовых случаев

CTS включает следующие типы тестовых случаев:

  • Модульные тесты проверяют атомарные единицы кода на платформе Android; например, один класс, такой как java.util.HashMap.
  • Функциональные тесты проверяют комбинацию API в сценарии использования более высокого уровня.

Покрытие модульными тестами

Случаи модульного тестирования охватывают следующие области для обеспечения совместимости:

Область Описание
Сигнатурные тесты Для каждой версии Android существуют XML-файлы, описывающие подписи всех общедоступных API, содержащихся в версии. CTS содержит утилиту для проверки этих подписей API на соответствие API, доступным на устройстве. Результаты проверки подписи записываются в XML-файл результатов теста.
Тесты API платформы Протестируйте API платформы (основные библиотеки и платформу приложений Android), как описано в Индексе классов SDK, чтобы убедиться в правильности API, включая правильные сигнатуры классов, атрибутов и методов, правильное поведение метода и отрицательные тесты, чтобы убедиться в ожидаемом поведении при неправильной обработке параметров.
Далвик-тесты Тесты сосредоточены на тестировании исполняемого формата Dalvik.
Модель данных платформы CTS тестирует базовую модель данных платформы, предоставляемую разработчикам приложений через поставщиков контента, как описано в пакете SDK android.provider : контакты, браузер, настройки и т. д.
Намерения платформы CTS тестирует основные намерения платформы, как описано в SDK Available Intents .
Разрешения платформы CTS тестирует разрешения основной платформы, как описано в Доступные разрешения SDK.
Ресурсы платформы CTS проверяет правильность обработки типов ресурсов базовой платформы, как описано в Доступные типы ресурсов SDK. Сюда входят тесты на: простые значения, возможности рисования, девять патчей, анимацию, макеты, стили и темы, а также загрузку альтернативных ресурсов.