- Самое простое решение — эмулятор
- Человек? Незаменим, но он устает
- А сколько устройств достаточно?
- Цена вопроса
- Типичная мобильная ферма
- Какие задачи удобнее на ферме
- Что такое STF
- DeviceHub
- Яндекс.Колхоз
- Ферма Selectel
Эмуляторы и симуляторы удобны для быстрой проверки базовой функциональности и отладки, но они не способны воспроизвести реальные условия работы устройства — аппаратные особенности, производительность, сетевые ограничения. Тестовые фермы, напротив, предоставляют доступ к реальным смартфонам с разными версиями операционных систем и аппаратными характеристиками, что позволяет проводить более точное и масштабируемое тестирование.
Самое простое решение — эмулятор

Если проект не масштабный, то эмулятор – вполне рабочий вариант. Однако, следует иметь в виду, что эмуляторы и симуляторы имеют ряд технических ограничений, которые существенно влияют на качество тестирования. Во-первых, симуляторы не эмулируют аппаратную часть устройства, а лишь имитируют программное поведение, что исключает возможность проверки работы с физическими компонентами — сенсорами, микрофоном, динамиками и прочими. Эмуляторы, хотя и создают более близкую к реальности среду, не способны полностью повторить характеристики процессора, графического ядра, оперативной памяти и других аппаратных ресурсов, что отражается на проверке производительности и стабильности приложения. Кроме того, они не могут достоверно воспроизвести реальные сетевые условия, включая нестабильные соединения и вариации скорости передачи.
Во-вторых, эмуляторы требуют значительных ресурсов хост-машины, что может замедлять тестирование, особенно при работе с графически насыщенными приложениями или играми. Управление аппаратными кнопками, жестами и сенсорным вводом часто реализовано неполноценно, что усложняет проверку пользовательского интерфейса. Наконец, многие баги, связанные с особенностями конкретных моделей устройств, кастомными оболочками и версиями операционных систем, выявляются только на реальных физических устройствах, поскольку эмуляторы используют стандартные образы ОС без учета модификаций.
Человек? Да, незаменим, но он устает
Главное преимущество ручного тестирования — гибкость. Тестировщик может быстро отрабатывать обновления, проверять нестандартные сценарии и находить ошибки, которые сложно предусмотреть заранее.
В целом, только человек способен объективно оценить удобство интерфейса, логику навигации и визуальное оформление.
Однако ручное тестирование поглощает много времени и ресурсов. При большом количестве устройств и версий ОС оно становится все более трудоемким и менее эффективным. Повторять одни и те же проверки вручную утомительно, возрастает вероятность пропустить ошибку из-за усталости.
В связи с этим также важен вопрос количества тестовых устройств.
А сколько устройств достаточно?
Учитывая разнообразие моделей, для полноценного тестирования с охватом порядка 95% пользовательской базы потребуется иметь в тестовой ферме не менее 25-30 устройств. В такой набор войдут устройства с разными диагоналями экранов, разрешениями, версиями Android (включая кастомные оболочки), а также несколько моделей iPhone разных поколений.
Создание и поддержка собственной мобильной тестовой фермы — это серьёзные вложения, оправданные при большом объёме тестирования и необходимости полного контроля над инфраструктурой. Для небольших и средних проектов выгоднее рассматривать аренду облачных ферм или гибридные модели. Стоимость одного современного смартфона среднего и выше среднего класса составляет порядка 70–90 тысяч рублей. Таким образом, только на покупку устройств потребуется около 2–2,5 миллионов рублей. К этому добавляются затраты на серверное оборудование и инфраструктуру для управления устройствами, включая USB-хабы, серверы для запуска автоматизированных тестов и мастер-ноды.
Цена вопроса
Таким образом, минимальная конфигурация собственной тестовой фермы с 12 устройствами и 3 серверами обходится примерно в 300 тысяч рублей, а для 25–30 устройств потребуется пропорционально больше серверов и оборудования. В то же время, на рынке есть гибкие варианты, в первую очередь это арендные решения, по модели pay-as-you-go (1 рубль за минуту, 30 рублей за час и так далее).
Типичная мобильная ферма
С технической точки зрения, типичная тестовая ферма состоит из нескольких компонентов: мастер-ноды, воркеров, USB-хабов и управляющего ПО. Мастер-нода отвечает за координацию работы фермы, распределение тестовых заданий и управление воркерами. Воркеры — это серверы или виртуальные машины, к которым через USB-хабы подключены реальные устройства. Оптимальное количество устройств на одном USB-хабе — около 10 (если больше — проблемы с перегревом и питанием). При увеличении парка устройств свыше 50–100, архитектура фермы становится распределенной: добавляются новые воркеры и мастера, которые формируют кластер с кворумом.
Для управления тестовыми устройствами обычно используется ADB — низкоуровневый интерфейс, позволяющий загружать тестовые скрипты, запускать приложения, собирать логи и мониторить статусы. Скрипты пишутся на языках с поддержкой параллелизма и hot reload, что позволяет быстро менять логику тестов без пересборки приложения. Например, в одной из реализаций фермы используется собственный язык BHL, который компилируется в бинарный код и исполняется на устройствах.
Автоматизация тестирования реализуется через API фермы, которая связывается с устройствами через ADB, синхронизируя запуск тестов и сбор данных. В процессе тестирования устройства отправляют статусы и логи в центральные системы аналитики, обычно это ClickHouse, что позволяет строить отчеты и графики по результатам.
Какие задачи удобнее на ферме
Во первых, регрессные и UI-тесты. Быстро и более-менее надежно проверить отображение интерфейса на 10 самых распространенных моделях, или экспресс-проверка главных фич после регресса. Во вторых, нагрузочное тестирование, часто выполняемое в компаниях собственными силами (что не всегда приводит к надежным результатам, разумеется).
Также часто возникает необходимость создавать критически важный по производительности код на C/C++ или другом компилируемом языке и интегрировать его в JVM-базированное приложение в виде нативной библиотеки. А иногда пересобирать существующий код под конкретную аппаратную платформу смартфона. Без нативного кода в таких случаях не обойтись, особенно в мобильных играх, где он необходим для подключения библиотек на C/C++, обеспечивающих высокопроизводительную обработку 3D-графики и других ресурсоемких задач.
Также для поиска и воспроизведения сложных багов, то есть для исследовательского тестирования. Поскольку такие ошибки зависят от конкретных моделей, важно тестировать именно на тех девайсах, где проблема была замечена. Если у тестировщика нет доступа к нужному устройству, тестовые фермы фактически незаменимы.
Что такое STF
Проект GitHub с открытым кодом – Smartphone Test Farm. Функции включают удалённый доступ к реальным смартфонам и эмуляторам, что позволяет запускать UI-тесты непосредственно на физических девайсах. Для написания и запуска автотестов используют Espresso, Appium или UIAutomator, которые интегрируются с STF через API или командную строку. STF обеспечивает управление устройствами, их резервирование и параллельный запуск тестов. Также поддерживается интеграция с CI/CD, позволяя автоматически запускать тесты при сборке приложения.
Однако, нюанс: в STF нет нормальной поддержки iOS – только Android, что усложняет задачи в премиум-сегменте.
DeviceHub
Опенсорсная платформа для построения и управления частными мобильными тестовыми фермами, разработанная VK. Позволяет создавать собственную инфраструктуру из реальных Android-девайсов, предоставляя удаленный доступ к ним. Это решение интересно для тех, которым требуется адаптация под свои условия.
Яндекс.Колхоз
Высокотехнологичная внутренняя облачная ферма из 800 мобильных и смарт-устройств, разработанная Яндексом для тестирования своих многочисленных сервисов, приложений и их обновлений. Изначально созданный для решения проблем с доступом к дефицитным iOS-устройствам для удаленных тестировщиков, Колхоз вырос в мультиплатформенное решение, критически важное для департаментов разработки и тестирования.
Парки девайсов расположены в дата-центрах Яндекса. Пользователи (разработчики и тестировщики) бронируют нужный девайс через веб-интерфейс и получают к нему удаленный доступ. Ферма управляется централизованно, обеспечивая умную зарядку девайсов для продления срока службы аккумуляторов, автоматизацию обновлений софта, и мониторинг статусов.
Колхоз интересен как явление, однако он является внутренним продуктом, не предоставляющим устройства для тестирования сторонним компаниям.
Ферма Selectel

Ферма предоставляет доступ к мобильным устройствам Apple, Huawei, Samsung, Realme, TECNO, Infinix, Google. В основе серверной части лежат 128-ядерные Ampere Altra. Физически телефоны подключены через USB-хабы HARPER, которые обеспечивают стабильную зарядку и коннект, а также позволяют управлять подключением каждого устройства. Для группирования устройств и управления через браузер используется ПО на основе Raspberry Pi.
Плюс этой фермы еще в том, что устройства подключаются без хабов (в отличие от стандартных тестовых ферм), что дает повышение надежности – при выходе одного девайса из строя на другие это не влияет, и техники могут точечно обслуживать нужные девайсы, без заметности для подключившегося пользователя.
По типам тестов: возможны дымовые, функциональные и автоматические, через Espresso и Appium, а также интеграция с GitLab. Есть API для управления устройствами, подключения через ADB и выполнения тестовых сценариев.
Ферма Selectel охватывает 80% популярных моделей смартфонов, используемых в России, включая iOS 16, 17 и 18. 200 устройств, включая редкие и устаревшие.
Итак
В целом:
- Эмуляторы – это быстро, дешево, но в большинстве случаев не очень эффективно,
- Ручные тесты – уже лучше, но все-таки это долго, да и дорого (если смотреть с точки зрения не джуна-тестировщика, а менеджера проекта),
- Фермы – быстрое и довольно-таки эффективное решение, если нужно тестировать как минимум на десятках устройств, избегая сложностей с покупкой, контролем и обслуживанием.