Как я тестировал Android-приложения с помощью Samsung Remote Test Lab
Меня зовут Игорь. В прошлом году, параллельно с учебой в 11 классе, я проходил обучение в «IT-Школе Samsung» на базе томского IT-Куба. В конце курса обучения я одержал победу во Всероссийском конкурсе компании Samsung по разработке мобильных приложений «IT Школа выбирает сильнейших!» и стал финалистом «Samsung Android Bootcamp».
В рамках этих мероприятий я разработал пару мобильных приложений и сейчас расскажу об опыте их тестирования с помощью сервиса Samsung Remote Test Lab, с которым я познакомился совсем недавно.
Samsung Remote Test Lab бесплатный сервис, который позволяет разработчикам тестировать приложения удаленно в виртуальном режиме на тысячах реальных устройств сотен моделей семейства Samsung Galaxy без приобретения оборудования.
За последние десять лет Samsung открыла лаборатории Remote Test Labs по всему миру, в том числе в Индии, Польше, Южной Корее и США. В 2021 году компания расширила программу, подключив к ней лаборатории в России, Великобритании, Бразилии, и Вьетнаме.
Сначала о приложениях
Первое — Elementary Launcher. Домашний экран для слабовидящих пользователей. Из-за специфичной функциональности приложения: замена домашнего экрана, взаимодействие с установленными пакетами приложений, работа с виджетами, контактами, их вызов и отправка смс, — приложение требует тестирования на большом количестве устройств, версий и оболочек Android.
Второе — Convеrta. Приложение, помогающее немым и глухим людям путем перевода текста в речь и речи в текст. Оно тоже работает с микрофоном устройства, с Text-To-Speech и Speech-To-Text сервисами, эта функциональность тоже нуждается в тестировании, потому что на устройствах разных производителей могут быть установлены разные синтезаторы речи.
Немного о самом сервисе
Ранее я тестировал приложения так:
Установка на свое устройство
Установка на эмуляторы разных устройств с разными версиями Android
Написание UI-тестов и их прогон через Firebase Test Lab
Рассылка сообщений друзьям и знакомым с просьбой протестировать приложение и последующее просматривание Crashlytics
Узнав про то, что Samsung Remote Test Lab позволяет запускать не просто Instrumented тесты, а дает удаленный доступ к реальному устройству, я сразу приступил к регистрации по ссылке.
Для работы в сервисе требуется Samsung Account, вход в который осуществляется в правом верхнем углу страницы.
После входа дается 20 кредитов для аренды устройств. Ежедневно, через Get Free Credits (появляется при наведении курсора мыши на баланс) можно получить еще 10 кредитов, которые эквивалентны пяти часам аренды любых устройств в выбранном регионе. Список моделей доступных устройств в каждом регионе отличается.
Я выберу Россию для лучшего качества соединения. В этом регионе доступны, в основном, флагманские устройства S и Z серии:
Из бюджетных доступна A серия:
Планшеты Tab S:
Также можно протестировать приложение на Galaxy Watch устройствах:
Удивительно, но в Корее можно арендовать устройства на Tizen OS:
Процесс аренды устройства достаточно прост. Необходимо указать версию Android и время аренды. Ну и, конечно же, нажать кнопку Start.
После начала аренды откроется либо web-клиент, либо будет скачан .jnlp (Java Network Launching Protocol) файл с клиентом.
А теперь о тестировании
Для начала я запустил Elementary Launcher на Galaxy S21 Ultra и заметил, что ярлыки домашнего экрана недостаточно увеличены.
У первой иконки внезапно появились пустые места по бокам
Далее я перешел к тестированию на более простых устройствах, а именно Galaxy A31.
Доступ к нему, кстати, уже осуществлялся через .jnlp клиент.
По ходу тестирования ошибка с размером ярлыков повторилась, никаких других проблем не наблюдалось.
И закончил я тестирование на смартфоне Galaxy S9.
Во время тестирования заметил, что проблема с размером значков на этом устройстве отсутствует, но имеется недочет с отсутствием наблюдателя за изменениями базы данных. Приложение не дает перейти на следующий экран, несмотря на заполненность домашнего экрана хотя бы одним ярлыком.
Дополнительная интересная информация
Samsung Remote Test Lab позволяет разворачивать приложения на устройствах с beta-версией Android 12 даже в России, несмотря на то, что beta-сборки для этого региона не существует.
Продолжаем тестирование
Также я запускал Elementary Launcher на планшетах Galaxy Tab S7, Tab S7+ и foldable-устройствах: Galaxy Z Flip 3, Galaxy Z Fold 3.
Результаты тестирования на Galaxy Z Fold 3 показали, что у приложения наблюдается проблема с жизненным циклом. Экраны первой настройки пропадают при раскладывании/складывании устройства и переходе приложения на другой экран.
А теперь о втором приложении
При запуске приложения на Galaxy Z Flip 3 возникла проблема с позиционированием фона приложения из-за специфического соотношения сторон экрана.
Такая же ошибка наблюдается и на меньшем экране Galaxy Z Flip 3
И вскрылись мелкие недочеты из-за отсутствия атрибута ellipsize у текстовых полей.
На устройствах с привычным соотношением экрана таких проблем не наблюдалось.
Замечу, что было достаточно непривычно слышать синтезатор речи Samsung, когда ранее слышал только голос такового от Google.
О дополнительном функционале
При подключении к устройству клиент сразу предлагает установить предпочитаемый язык системы.
Foldable-устройства можно складывать, складывать наполовину и раскладывать.
А тут и ферму видноТакже можно перебрасывать текст между устройством и клиентом
И файлы тоже.
Возможность записи и сохранения тестов.
Доступ к logcat.
Или полный adb-доступ.
Передача аудио.
Эмуляция S-Pen на поддерживаемых устройствах.
Демонстрация на Galaxy Note 20.
А теперь, результаты
Подводя итог, хочется сказать, что я жалею, что не узнал об этом сервисе ранее, потому что полный удаленный доступ — именно то, чего не хватало при использовании Google Firebase Test Lab с его возможностью запуска только заранее написанных тестов.
Плюсы:
Большой парк физических устройств: смартфоны, планшеты, часы
Широкий спектр разворачиваемых версий Android
Бесплатность и общедоступность
Дополнительный, упрощающий тестирование, функционал
Наличие отдельного дата-центра в России
Может не понравиться:
Отсутствие на данный момент возможности adb доступа через web-клиент
Отсутствие устройств других вендоров
Невозможность запуска instrumented-тестов