Как анализировать результаты тестирования в Firebase Test Lab

Вы можете использовать Firebase Test Lab для тестирования приложения Android разными способами, в том числе с помощью интерфейса командной строки, Android Studio, интерфейса Test Lab в консоли Firebase и Testing API. Независимо от того, как вы запускаете тесты, их результаты сохраняются в указанном вами проекте Firebase. Вы можете изучить результаты с помощью ToolResults API, а также любого из перечисленных выше инструментов. На этой странице рассказывается, как просматривать и анализировать результаты тестирования.

Основные понятия

В Firebase Console можно посмотреть результаты всех предыдущих запусков тестирования. Для этого выберите DevOps & Engagement (DevOps и взаимодействие) > Test Lab (Лаборатория тестирования). На этой странице показаны подробные результаты тестирования приложений, которые вы тестировали в своем проекте с помощью Test Lab.

Чтобы понять результаты тестирования, сначала нужно разобраться в трех концепциях:

Когда вы запускаете тест или набор тестов на выбранных устройствах и конфигурациях, Test Lab выполняет тестирование приложения в пакетном режиме, а затем показывает результаты в виде матрицы тестирования.

Устройства × выполнение тестов = матрица тестирования

Устройство
Физическое или виртуальное устройство (только Android), на котором вы проводите тестирование, например телефон, планшет или носимое устройство. Устройства в матрице тестирования определяются по модели, версии ОС, ориентации экрана и языковым настройкам.
Тестирование, выполнение тестов
Тест или набор тестов, которые нужно выполнить на устройстве. Вы можете запустить один тест на устройстве или разбить тест на части и запустить его тестовые случаи на разных устройствах.
Матрица тестов
Содержит статусы и результаты выполнения тестов. Если хотя бы одно выполнение теста в матрице завершится неудачно, вся матрица будет считаться неудачной.

В разделах ниже рассказывается, как работать с результатами тестирования.

Как интерпретировать результаты тестирования

Чтобы посмотреть результаты тестирования, нажмите Test Lab.

История тестирования группируется по приложениям. Для каждого приложения показываются только пять последних матриц тестирования. Если их больше, нажмите на ссылку Все матрицы внизу списка тестирования приложения, чтобы увидеть полный список.

Как интерпретировать результаты тестирования на матрице

При запуске тестирования через интерфейс Test Lab вы будете перенаправлены на страницу, где можно посмотреть матрицу тестирования и нажать на определенное выполнение теста, чтобы увидеть его результаты. Android Studio и команда gcloud также предоставляют URL страницы результатов тестирования.

В типичной матрице тестирования можно проводить тесты на десятке или около того разных устройств. Каждое выполнение теста может иметь разный результат. Возможные результаты выполнения любого теста в матрице тестирования:

  • Пройдено Проверка пройдена: ошибок не обнаружено.
  • Не удалось выполнить Проверка не пройдена: произошла хотя бы одна ошибка.
  • Неоднозначный результат Проверка пройдена: результаты тестирования неоднозначны, возможно, из-за Test Lab.
  • Пропущено Проверка пройдена. Выбранные значения параметра для некоторых тестовых запусков в матрице были несовместимы. Это происходит, когда выбранные вами устройства несовместимы с одним или несколькими выбранными уровнями API Android.

Чтобы посмотреть агрегированные результаты тестирования для всех матриц тестирования определенного приложения в проекте Firebase, нажмите на название приложения, как показано на следующем примере:

Пример страницы результатов матрицы тестирования с четырьмя выполненными тестами Результаты тестирования матрицы

Вы перейдете к списку матриц тестирования для вашего приложения. Нажмите на название любой матрицы, чтобы посмотреть результаты тестирования, или на название приложения (показано в красном прямоугольнике ниже), чтобы посмотреть список матриц тестирования для других приложений, связанных с вашим проектом Firebase.

Пример страницы со списком тестовых матриц Список матриц тестирования

Матрица тестирования может быть пройдена, не пройдена или быть неопределенной. Матрица тестирования считается неудачной или неопределенной, если хотя бы один из тестов в ней не пройден или не дает однозначного результата.

Как интерпретировать результаты автоматизированного тестирования

Если вы проводили тестирование с помощью Robo, то в результатах будут не только обычные показатели, но и видео с скриншотами, на которых видно, как Robo сканирует интерфейс. На этих видео и скриншотах показаны визуальные индикаторы действий, которые автоматизированное тестирование выполняло во время сканирования, аналогично функции "Показывать касания" в Android. Эти индикаторы помогут вам следить за действиями Robo и воспроизводить обнаруженные им ошибки.

Пример видео с результатами автоматизированного тестирования

Результаты автоматизированного тестирования

Как интерпретировать результаты одного выполнения теста

На странице результатов матрицы тестирования нажмите на один из вариантов выполнения теста, чтобы посмотреть его результат.

Пример страницы результатов выполнения теста Результаты выполнения тестов

На этой странице можно посмотреть время выполнения каждого теста. Вы также можете посмотреть результаты для определенных тестовых случаев, соответствующих методам в вашем тестовом APK (для инструментальных тестов), и подробные результаты тестирования, включая журналы тестирования, скриншоты и видео. В автоматизированном тестировании подробные результаты также включают карту действий, на которой графически показаны пути в интерфейсе, пройденные в ходе автоматизированного тестирования.

Результаты инструментального теста с разделением

Чтобы вам было проще анализировать результаты тестирования, Test Lab разделяет каждый тест на отдельную страницу с подробным отчетом, в котором есть трассировка стека, журналы и видео. Эта функция работает независимо от того, используете вы Android Orchestrator или нет.

Пример страницы результатов тестового случая Результаты тестирования

Как интерпретировать результаты проверки доступности

При тестировании робот использует сканер доступности Android, чтобы выявлять проблемы с доступностью в приложении. Вы также можете запустить сканирование на своем устройстве. Инструкции о том, как просматривать и интерпретировать результаты проверки доступности, полученные с помощью автоматизированного тестирования, можно найти в статье Как начать работу со Сканером доступности.

Общую информацию о том, как улучшить специальные возможности приложения, можно найти в документации для разработчиков Android.

Показатели эффективности

При тестировании на физических устройствах также возвращаются показатели производительности:

ПоказательОбязательная конфигурация устройства
Время запуска приложенияAPI 19+
Загрузка ЦПAPI 21+
Использование памяти
Сетевая активность
Количество кадров в секундуAPI 21+ и включает SurfaceView

Подробные результаты тестирования

Подробные результаты тестирования хранятся в течение 90 дней после его проведения в корзине Google Cloud Storage, но также доступны в Firebaseконсоли. Подробные результаты тестирования можно посмотреть в сегменте Cloud Storage, нажав Результаты тестирования на странице результатов выполнения теста. Когда подробные результаты тестирования становятся недоступны, вы по-прежнему можете видеть, какие тесты пройдены, а какие – нет.

Если вы хотите хранить подробные результаты тестирования дольше 90 дней, вы можете отправлять их в принадлежащий вам сегмент Cloud Storage с помощью параметра командной строки gcloud --results-bucket. Затем вы можете задать параметр Возраст, чтобы определить, как долго результаты будут храниться в корзине Cloud Storage. Подробнее о том, как изменить настройку Возраст, можно узнать в разделе Условия жизненного цикла.

Если при выполнении теста появляется ошибка does not have storage.objects.create access to the Google Cloud Storage object. Permission 'storage.objects.create' denied on resource (or it may not exist).., у субъекта, выполняющего тест, может не быть нужных разрешений для проекта. По умолчанию Firebase создает для вас сегмент в Google Cloud Storage, однако для этого принципалу, выполняющему тест, требуется роль "roles/editor", которая предоставляет широкие возможности. Если вы не можете предоставить эту роль субъекту, используйте параметр командной строки gcloud --results-bucket.