С развитием мобильных технологий и программного обеспечения стало критически важным обеспечить высокое качество приложений, работающих на различных устройствах. Одним из вопросов, с которым сталкиваются разработчики и тестировщики, является выбор между тестированием на реальном устройстве и использованием эмулятора. Оба подхода имеют свои преимущества и ограничения, и правильный выбор может существенно повлиять на результаты тестирования и пользовательское впечатление. 

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

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

Применение эмуляторов и симуляторов в тестировании приложений

Мобильный эмулятор — программа, которая позволяет симулировать аппаратную и программную работу реального устройства, необходимого для проверки. Например, можно эмулировать не только смартфон или планшет, но даже Apple Watch и телевизионную приставку Apple TV. Чтобы включить и настроить эмулятор, необходимо установить виртуальную среду, например, Xcode или Android Studio. После настройки виртуальной среды разработчик или тестировщик получают возможность проводить всестороннее функциональное тестирование.

Пример запущенного эмулятора с приложением Aliexpress в Android Studio
Пример запущенного эмулятора с приложением Aliexpress в Android Studio
Пример запущенного эмулятора с приложением Aliexpress в Xcode
Пример запущенного эмулятора с приложением Aliexpress в Xcode

С помощью эмулятора возможно проверить следующие программные компоненты:  

  1. Сенсоры экрана. Эмуляторы обычно позволяют эмулировать сенсорный экран, что позволяет проводить тестирование взаимодействия с помощью касаний, свайпов и жестов. Вы можете проверить функциональность элементов управления, таких как кнопки, ползунки и сенсорные жесты.

  2. Геолокация. Могут эмулировать геолокацию, позволяя устанавливать определенное местоположение или перемещаться по маршрутам. Это полезно для тестирования функций, связанных с геолокацией, например карты, навигация, сервисы на основе местоположения и другие.

  3. Акселерометр и гироскоп. Некоторые эмуляторы позволяют эмулировать данные акселерометра и гироскопа. Это позволяет проводить тестирование функций, зависящих от движения и ориентации устройства, таких как игры, приложения виртуальной реальности и другие.

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

  5. Сетевые интерфейсы. Могут эмулировать различные сетевые интерфейсы, такие как Wi-Fi, Bluetooth и NFC. Вы можете проверить функциональность, связанную с обменом данными через эти интерфейсы, и тестировать взаимодействие приложения с внешними устройствами и сетями.

История введения термина «эмуляция» компанией IBM началась в середине XX века, когда она активно разрабатывала новые компьютерные системы и технологии. (Книга Фрэнка Солтиса — “Основы AS/400”)

В 1950-х годах IBM сталкивалась с проблемой совместимости программного обеспечения между различными аппаратными платформами. Каждая новая система требовала переписывания и адаптации программ, разработанных для предыдущих систем, что было трудоемким и затратным процессом.

В свете этих проблем IBM начала искать способы облегчить перенос программного обеспечения на новые платформы без необходимости полного переписывания кода. В результате исследований и разработок IBM была предложена новая концепция — «эмуляция».

Термин «эмуляция» был введен IBM для описания новой комбинации программы, микрокода и оборудования, которая позволяла имитировать работу одной системы на другой. Используя эту технологию, разработчики могли создавать эмуляторы, которые обеспечивали совместимость и исполняли программы, созданные для различных аппаратных платформ, без необходимости переписывания их кода.

Вначале эмуляция была связана с запуском кода программ на различных платформах и термин «симуляция» использовался для программной эмуляции. Однако в дальнейшем термины «эмуляция» и «симуляция» стали использоваться более широко и в различных контекстах, иногда взаимозаменяемо. 

Симулятор мобильного устройства — это программное средство, созданное в виртуальной среде, которое имитирует конфигурационные настройки и поведение физического мобильного устройства. Он позволяет разработчикам и тестировщикам выполнять проверки приложений, предназначенные для мобильных устройств, без необходимости наличия физического устройства.

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

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

Аппаратная часть смартфона

Программная часть смартфона

Процессор (CPU)

Операционная система

Память

Приложения

Дисплей

Драйверы

Батарея, кнопки и порты

API (интерфейс прикладного программирования)

Камеры и датчики

Имитировать аппаратную составляющую устройств симуляторы не могут, то есть проверить работу микрофона, GPS или динамика возможно только с помощью эмулятора. Симуляторы используются только для проверки программной части, которая создается в виртуальной среде.

 С помощью симулятора можно провести следующее тестирование: 

  1. Инсталляция и старт приложения. Позволяют устанавливать и запускать приложения, аналогично тому, как это делается на реальных устройствах.

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

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

  4. Тестирование многозадачности. Можно проверить, как приложение работает в условиях многозадачности. Вы можете эмулировать переключение между приложениями, уведомлениями и другими фоновыми процессами, чтобы убедиться, что ваше приложение сохраняет стабильную работу.

Чем отличается тестирование на эмуляторе и реальном телефоне

Тестирование на реальном устройстве обладает следующими особенностями:

  1. Дает больше уверенности в надежности работы программы.

  2. Возможность проверить совместимость компонентов на реальных смартфонах.

  3. Отражение полной стоимости устройств, что позволяет оценить финансовую сторону проекта и его жизнеспособность.

Теперь рассмотрим особенности тестирования на эмуляторах или симуляторах:

  1. Они особенно хорошо подходят для функционального тестирования определенных случаев.

  2. Не поддерживают определенные типы мобильных приложений.

  3. С помощью эмуляции устройств есть возможность охватить широкий спектр мобильных устройств для компаний с ограниченным бюджетом.

 Рассмотрим минусы эмулятора по сравнению с реальным устройством в таблице ниже:

Эмулятор

Физический смартфон

Невозможно воспроизвести проблемы с разряженной или изношенной батареей.

Способность воспроизводить проблемы с батареей, которую на эмуляторе не получится достоверно воспроизвести.

Нет возможности имитировать входящие звонки или SMS для тестирования прерываний работы приложения.

Довольно легко можно имитировать прерывания, без использования специфических программ или инструментов

Производительность обычно ниже, чем у оригинальных, физических устройств.

Обладают более высокой производительностью по сравнению с эмуляторами/симуляторами.

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

Объем постоянной памяти (ПЗУ) обычно меньше, чем у эмуляторов, поэтому можно проверить ситуации с недостатком памяти.

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

Понятие удаленных ферм устройств и для какой цели они служат

Ферма тестовых мобильных устройств представляет собой инфраструктуру, которая состоит из многочисленных реальных смартфонов. Данные устройства можно использовать для проведения тестов приложений и проверки их совместимости на различных моделях смартфонов, а также различных операционных системах. Очень часто фермы для тестирования состоят из широкого спектра мобильных устройств, разных версий операционных систем, разрешений экрана и других характеристик, чтобы предоставить максимальный охват тестового покрытия.

Фермы устройств могут выглядеть по-разному, но суть у всех одна — это сотни или тысячи устройств, подключенных к питанию и сети интернет. Вот несколько примеров, как могут выглядеть фермы устройств.

Ферма устройств Harman Test cloud. Со стороны пользователя ферма выглядит как Web-интерфейс. Можно выбрать платформу на которой планируется тестирование приложения, а потом модели смартфонов и версию ОС.

Физически ферма представляет из себя стенд с множеством подключенных устройств.
Физически ферма представляет из себя стенд с множеством подключенных устройств.
Еще один пример фермы устройств
Еще один пример фермы устройств

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

Основные преимущества использования ферм устройств при тестировании

  1. Покрытие большинства мобильных устройств. Позволяет обеспечить широкое покрытие тестирования и учесть разнообразие аппаратных конфигураций.

  2. Реалистичное тестирование. Позволяет проверить приложение в реалистичных условиях, учитывая факторы, такие как производительность, разрешение экрана, батарея и другие характеристики, которые могут влиять на работу программы.

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

  4. Экономия времени и ресурсов. Позволяет автоматизировать процесс тестирования, запускать тесты параллельно на нескольких устройствах, что значительно сокращает время, затрачиваемое на тестирование, и уменьшает необходимость в физическом наличии смартфонов.

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

Критерии выбора устройств при тестировании: эмулятор или реальное устройство

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

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

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

Реальные смартфоны могут более точно оценить впечатление пользователей. Взаимодействие с приложением на физическом устройстве может выявить проблемы, связанные с удобством использования, эргономикой и другими аспектами, которые могут существенно повлиять на уровень удовлетворенности и лояльность пользователей.

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

Автор статьи @Luckker


НЛО прилетело и оставило здесь промокод для читателей нашего блога:
-15% на заказ любого VDS (кроме тарифа Прогрев) — HABRFIRSTVDS.

Комментарии (0)