Эмуляторы и симуляторы: в чем разница?
И эмуляторы, и симуляторы относятся к виртуальным устройствам, но между ними есть существенная разница. И поскольку это различие влияет на то, как строится процесс тестирования, давайте углубимся в эту тему.
Зачем нужны виртуальные устройства
Успешному релизу всегда предшествуют эффективное тестирование и отладка. А чтобы тестирование было эффективным, команде QA необходимо выбирать и использовать самые подходящие решения. Сейчас на рынке доступно много операционных систем и браузеров, не говоря уже о разнообразии «железа». Поэтому важно иметь солидный набор устройств для тестирования.
Дело в том, что тестирование приложения на одном смартфоне не гарантирует, что оно будет работать так же на другом устройстве. Чтобы охватить широкий спектр существующих смартфонов и планшетов, тестировщики могут использовать два типа устройств — реальные и виртуальные.
Преимущество реального устройства очевидно: вы используете точно такой же смартфон, как и ваши клиенты. Как это работает? Компания предоставляет своим сотрудникам различные физические устройства. Как правило, это самые распространенные смартфоны и планшеты iOS и Android. Список устройств должен постоянно обновляться, чтобы не отставать от рынка.
Обзор симуляторов, скачивай под видео
Однако было бы слишком сложно и дорого покупать все устройства, выпущенные в мире. Альтернативой стали виртуальные инструменты. Они экономически эффективны и очень полезны на ранних этапах тестирования.
Реальные устройства лучше работают на заключительных этапах тестирования программ, непосредственно перед выпуском. А виртуальные инструменты позволяют тестировать основные функции в самом начале, чтобы дефекты не накапливались. И в большинстве случаев этого достаточно для выпуска приложений без критических ошибок.
Эмуляция или симуляция
Итак, виртуальные инструменты тестирования, такие как симуляторы и эмуляторы, позволяют воспроизвести функциональность реальных мобильных устройств на ПК, имитируя возможные действия конечных пользователей. И эмуляторы, и симуляторы дают возможность запускать тесты ПО и получать быстрый ответ. То есть, благодаря им тестирование становится проще и быстрее по сравнению с запуском тестов на реальных устройствах.
Вопрос в том, взаимозаменяемы ли эти инструменты? А если нет, то в чем разница между эмулятором и симулятором в мобильном тестировании?
Короткий ответ — нет, эти инструменты не взаимозаменяемы, они работают по-разному и предлагают разный функционал.
Что собой представляют эмуляторы
Эмулятор — это дублирующая система, воспроизводящая функциональность исходной системы с использованием других методов и ресурсов — протоколов передачи данных, алгоритмов выполнения процедур и аппаратных ресурсов. Под исходной системой понимается сочетание программного обеспечения, операционной системы и аппаратного обеспечения.
Эмулятор может функционировать как виртуальная машина мобильной операционной системы на ПК. Эта машина воспроизводит почти все функции приложений и игр, работающих на базе iOS, Android и т. д. Окно эмулятора — это настоящий смартфон на ПК.
Урок №25. EveryCircuit — Лучшая программа для эмуляции схем.
Что собой представляют симуляторы
Симулятор — это воспроизводящая система. Он может имитировать только программные характеристики и конфигурации, то есть внутреннюю работу устройства. Симуляторы часто используются для анализа, изучения и исследования целей. При этом симулятор может имитировать некоторые действия конечного пользователя, например, нажатие кнопок, запуск приложений, смахивание экрана.
Эмуляторы и симуляторы — сравнение
Давайте сравним эти инструменты по нескольким важным критериям.
Использование:
- эмуляторы предназначены для программного и аппаратного обеспечения
- симуляторы — для внутренних конфигураций.
Доступность:
- производители мобильных устройств предоставляют и эмуляторы, и симуляторы
- симуляторы бывают и сторонними.
Код:
- эмуляторы написаны на языках машинного уровня
- симуляторы написаны на высокоуровневых языках.
Автоматизация тестирования: применяются как эмуляторы, так и симуляторы.
Отладка: это задача для эмуляторов, а не для симуляторов.
На практике смартфоны Android легче эмулировать, поэтому симуляторы в основном предназначены для айфонов. Если вы раньше не использовали виртуальные устройства, начните с официальных инструментов — Android SDK и iOS Simulator (входит в состав Xcode).
Советы
Эмуляторы очень точно имитируют реальные устройства, но все же никогда полностью не заменят работу с ними. В частности, эмуляторы не могут воспроизвести некоторые важные функции и поведение, такие как время автономной работы, камера, прерывания и т. д.
Симуляторы вообще не учитывают технические характеристики оборудования, поэтому команда тестировщиков не получает сведений о реальной производительности.
С учетом всего этого компании, специализирующейся на тестировании, нужно иметь коллекцию реальных устройств.
Тем не менее, не стоит думать, что к виртуальным инструментам следует прибегать только в крайнем случае. Лучше всего сочетать реальные и виртуальные устройства.
Если вам нужно протестировать взаимодействие с внешними приложениями и средами, используйте симулятор. А если хотите проверить, как приложение взаимодействует с базовым оборудованием или оборудованием в сочетании с ПО, используйте эмулятор. После этого протестируйте программный продукт на нескольких реальных устройствах из числа наиболее широко используемых.
Источник: testengineer.ru
Симуляторы компьютерных систем – похожи ли на реальность
Простым и доступным языком про основные термины из области симуляторов, а также типы и уровни детализации моделей. Материал для легкого и быстрого знакомства с данным направлением.
Если бы меня спросили про симуляцию некоторое время назад, то первое, что пришло бы в голову – это мой сын, рассказывающий о своем больном животе накануне контрольной в школе. Однако последние десять лет я работаю с симуляторами различных компьютерных систем, от телефонов до серверов, основанных на микропроцессорах, SOC-ах (System-On-Chip) и чипсетах одного из крупнейших производителей (к сожалению, название под NDA), и мое представление о симуляции поменялось. Но обо всем по порядку.
Я уверен, что многие из вас сталкивались с симуляторами, которые часто называют виртуальными машинами, гипервизорами. Кто-то устанавливает Parallels Studio себе на Mac, чтобы запускать Windows из MacOS, кто-то пользуется продуктом от VmWare – Workstation, чтобы иметь еще одну операционную систему (ОС), запущенную внутри уже установленной. Те, кто знаком с Linux, предпочитают KVM и QEMU.
Также популярен в народе VirtualBox. Люди, профессионально занимающиеся разработкой аппаратуры на базе ПЛИС (Программируемая Логическая Интегральная Схема), знают про VCS от Synopsys и Mentor Graphics Questa. И все же это лишь небольшая часть того, что можно называть симуляторами.
Что такое симулятор?
Симулятором называют модель, как правило, программную, реального устройства. Соответственно, симуляция – это процесс работы такой модели, повторяющий работу устройства.
В принципе, можно сделать модель любого устройства, но наиболее распространенными являются симуляторы микропроцессорных устройств, то есть устройств, центральным компонентом которых является микропроцессор, и вокруг него уже строится остальная логика. Один из основных вариантов использования симулятора – это запуск программ, предназначенных для этого самого микропроцессора. При этом использование реального устройства по тем или иным причинам затруднительно, например, его может просто еще не существовать, если речь идет о моделировании будущего поколения микропроцессоров.
Airbnb в симуляции – гость и хост
Код, запускаемый внутри симулятора, называют «гостевым кодом», это может быть «гостевая программа» или целая «гостевая операционная система». Сама симулируемая система называется просто «гость». В свою очередь, система, компьютер, где запускается симулятор, называется «хостом» (англ. host), а операционная система, работающая на хосте, в которой запускается симулятор, называется «хостовой ОС».
Таким образом, можно сказать, что симулятор, реализующий определенный набор инструкций гостевой системы, моделирует их, используя имеющиеся в наличии средства хостовой системы.
Симуляция и эмуляция – какое название правильное?
Модель может повторять устройство с разной степенью точности и детализации. Часто это симуляция только внешнего поведения системы, доступного программному коду. Коду ведь «все равно», как именно внутри реализована та или иная инструкция процессора, – главное, чтобы работало. Такой вариант симуляции распространен, не сложен в разработке и довольно быстрый, не тормозит даже на обычных пользовательских компьютерах.
Однако этого недостаточно, если мы хотим узнать, например, сколько времени будет выполняться программа на реальной аппаратуре. Для этого необходимо моделирование не только внешнего поведения, но и повторение внутренней структуры и логики работы. Это тоже может быть выполнено с разной степенью детализации и точности. Такие модели правильнее называть эмуляторами, которые действительно эмулируют устройство, а не «симулируют» результаты.
Создание эмуляторов гораздо сложнее из-за большего объема функциональности, которую необходимо реализовывать в модели. Также они функционируют намного медленнее по сравнению с симуляторами внешнего поведения устройства. С эмуляторами речь вообще не идет о запуске Windows – это может занять годы.
Никто не занимается созданием программного эмулятора целиком всей платформы – это очень долго и дорого. Вместо этого эмулируются отдельные компоненты системы, такие как тот же центральный процессор, и на нем запускается лишь часть симуляционного процесса. Возможны различные гибридные схемы, когда часть симулятора является верхнеуровневой моделью, часть низкоуровневой, часть в ПЛИС, а часть вообще реальная железка.
4 уровня детализации симуляции
Как я написал выше, наиболее распространенным является вариант симуляции на уровне инструкций процессора, так называемый ISA (Instruction Set Architecture), или, точнее, результата их выполнения, т.е. без эмуляции всей внутренней логики того, как это происходит в реальном процессоре, и без учета времени выполнения различных инструкций. Именно такие симуляторы называют еще функциональными.
Так работают VirtualBox, Vmware Workstation, Wind River Simics, KVM и QEMU. Это позволяет удобно, без лишних дополнительных действий запускать программы, предназначенные для симулируемого устройства. Другими словами, не требуется ни перекомпиляция, ни какие-либо другие манипуляции с запускаемыми программами. В таких случаях говорят, что возможен запуск немодифицированного бинарного кода.
Если говорить про более высокий уровень абстракции, то это будет реализация определенного ABI (Application Binary Interface). В двух словах, ABI описывает бинарный интерфейс взаимодействия двух программ – как правило, пользовательской программы и библиотеки или ОС.
ABI покрывает соглашения о вызовах (как передавать параметры и возвращать значения), размеры типов данных, выполнение системных вызовов. Как это работает? Например, если программе, написанной для Linux, необходимо создать дополнительный тред (от англ. thread – нить) выполнения, то вызывается функция pthread_create().
А что, если сделать библиотеку с такой функцией в Windows и реализовать необходимые механизмы связывания приложения и библиотеки (динамической линковки)? В таком случае можно будет запускать Linux приложения из Windows. Windows будет «симулировать» Linux. Именно это и было сделано в Windows subsystem for Linux в Windows 10, что позволяет запускать немодифицированные бинарные Linux приложения в Windows.
Теперь посмотрим, как выглядят более низкоуровневые и детальные уровни симуляции. Это будет уровень микроархитектуры, при котором симулируются реальные внутренние алгоритмы и блоки процессора, такие как декодер инструкций, очереди, блок внеочередной обработки, предсказатель переходов, кэш, планировщик и сами счетные устройства. Такое моделирование позволяет анализировать реальную скорость выполнения программ и, например, оптимизировать их под уже имеющиеся архитектуры. А в случае симуляции прототипов будущих микропроцессоров возможны предсказание и оценка производительности этих устройств.
Ниже уровня микроархитектурной симуляции идет уровень эмуляции логических элементов, из которых и состоят современные чипы. Такие эмуляторы бывают и программными, и аппаратными с использованием ПЛИС. Логика ПЛИС описывается с помощью RTL (Register Transfer Level) на языках Verilog, VHDL и др. После компиляции получается образ (bitstream), который потом прошивается в ПЛИС.
Причем для этого необязательно пользоваться паяльником и разбираться в электротехнике. Плата подсоединяется к компьютеру, например, по USB или JTAG интерфейсу, а специальный софт от производителя ПЛИС платы выполняет запись. Стоимость таких плат начинается от десяти долларов за простейшие варианты до миллионов долларов для больших ПЛИС стендов размером со шкаф, используемых в крупных компаниях-производителях чипов. В таких компаниях симуляция с использованием ПЛИС является финальной стадией перед отдачей RTL в производство.
Если речь идет о несложных устройствах, то, имея на руках образ ПЛИС, можно обратиться в специализированные компании, которые сделают настоящее (не ПЛИС) устройство с запрограммированной логикой.
На рисунке ниже показаны описанные уровни симуляции.
Кроме этих уровней моделирования, мне также приходилось сталкиваться с гибридными симуляторами. По сути, они представляют собой соединенные друг с другом симуляторы, моделирующие на разных уровнях разные части системы. Например, необходим анализ пропускной способности новой сетевой карты, работающей вместе с разрабатываемым драйвером для определенной ОС.
Такое сетевое устройство, а также ряд смежных устройств, могут быть реализованы сначала на микроархитектурном уровне для предварительного анализа, а потом и в ПЛИС, на уровне логических элементов, для финальных проверок. При этом остальная часть системы, задействованная лишь частично, реализуется на уровне инструкций. Обойтись без нее нельзя, так как она необходима, например, для загрузки ОС, а реализовывать ее на более низком и сложном уровне не имеет смысла.
Так что же на счет сравнения симуляторов и реальности?
Как теперь понятно, нет задачи сделать тот или иной симулятор максимально похожим на реальность. Есть задача, которую ставит бизнес, и симуляция выполняется со той степенью “похожести” на реальность, который является минимально достаточным для решения этой задачи, не тратя при этом лишних денег и времени. В одном случае это может быть простая библиотека, реализующая необходимый бинарный интерфейс (ABI), а в другом не обойтись без детального микроархитектурного симулятора.
Это самая базовая информация о том, что такое симуляторы и какие они бывают. В следующей статье я опишу детали реализации полноплатформенных симуляторов, потактовых моделей и работу с трассами.
- Блог компании Auriga
- Анализ и проектирование систем
- Виртуализация
- Производство и разработка электроники
Источник: habr.com
Симулятор
Симулятор — имитатор (обычно механический или компьютерный), задача которого состоит в имитации управления каким-либо процессом, аппаратом или транспортным средством.
Чаще всего сейчас слово «симулятор» используется применительно к компьютерным программам (обычно играм). Так же распространены веб сайты с симулятором каких либо действий. С помощью компьютерно-механических симуляторов, абсолютно точно воспроизводящих интерьер кабины аппарата, тренируются пилоты, космонавты, машинисты высокоскоростных поездов. [1]
Симуляторы — программные и аппаратные средства, создающие впечатление действительности, отображая часть реальных явлений и свойств в виртуальной среде. ] Часто для изучения имитационных моделей используются компьютерные эксперименты. Симулирование также используется при научном моделировании природных систем или систем человека, чтобы получить представление об их функционировании. Моделирование может быть использовано для демонстрации возможных эффектов альтернативных условий и способов действий. Имитация также используется, когда реальная система не может быть задействована, потому что она может быть недоступна, или она может быть опасной или неприемлемой для участия, или она проектируется, но еще не построена, или она может просто не существовать.
- 1 Классификация и терминология
- 2 Симуляция в сфере развлечений
- 2.1 История визуального моделирования в кино и играх
- 2.1.1 Ранняя история (1940–1950-е годы)
- 2.1.2 1970-е и начало 1980-х годов
- 2.1.3 Эпоха до виртуального кинематографа (начало 1980-х–1990-е годы)
- 2.1.4 Виртуальное кино (начало 2000-х–настоящее время)
- 2.2.1 Игровые симуляторы
- 2.2.2 Аттракционы в тематическом парке
Классификация и терминология [ ]
Исторически симулирование, применяемое в различных областях, развивалось в значительной степени независимо, но исследования теории систем и кибернетики XX века в сочетании с распространением использования компьютеров во всех этих областях привели к некоторой унификации и более систематическому взгляду на эту концепцию.
В случае физического моделирования физические объекты заменяются реальной вещью. Эти физические объекты часто выбираются потому, что они меньше или дешевле, чем реальный объект или система.
Интерактивное моделирование — это особый вид физического моделирования, часто называемый симуляцией человека в цикле, в котором физическое моделирование включает в себя людей-операторов, таких как симулятор полета, симулятор парусного спорта или симулятор вождения.
Непрерывное моделирование — это моделирование, основанное на непрерывном времени, а не на дискретных временных шагах, с использованием численного интегрирования дифференциальных уравнений.
Дискретно-событийное моделирование изучает системы, состояния которых изменяют свои значения только в дискретные моменты времени. Например, моделирование эпидемии может изменить число инфицированных людей в моменты времени, когда восприимчивые люди заражаются, а инфицированные люди выздоравливают.
Гибридное моделирование (иногда комбинированное моделирование) соответствует сочетанию непрерывного и дискретного моделирования событий и приводит к численному интегрированию дифференциальных уравнений между двумя последовательными событиями для уменьшения числа разрывов.
Автономное моделирование — это моделирование, выполняемое на одной рабочей станции само по себе.
Распределенное моделирование использует более одного компьютера одновременно, чтобы гарантировать доступ к различным ресурсам(например, многопользовательские операционные системы или распределенные наборы данных).
Параллельное моделирование ускоряет выполнение моделирования, одновременно распределяя его рабочую нагрузку по нескольким процессорам, как в высокопроизводительных вычислениях.
При оперативно совместимом моделировании несколько моделей, симуляторы, распределенные по сети, взаимодействуют локально; классическим примером является архитектура высокого уровня и серьезные игры, где серьезные игровые подходы (например, игровые движки и методы взаимодействия) интегрированы с интероперабельным моделированием.
Понятие точности моделирования используется для описания того, насколько близко оно имитирует реальный аналог. Можно приблизительно разделить точность на следующие уровни:
Низкий уровень — минимальное моделирование, необходимое для того, чтобы система реагировала на прием входных данных и обеспечивала выходы.
Средний уровень — автоматически реагирует на раздражители, с ограниченной точностью.
Высокий уровень — почти неразличимая или максимально приближенная к реальной системе.
- Авиационный тренажёр
- Горнолыжный тренажёр
- Логический симулятор цифровой логики и цифровых схем
- Симулятор электронных схем
- Бизнес-симулятор
- Тренажёр пехоты
Симуляция в сфере развлечений [ ]
Симуляция в сфере развлечений охватывает многие крупные и популярные отрасли, такие как кино, телевидение, видеоигры и аттракционы в тематических парках. Хотя считается, что современная симуляция имеет свои корни в обучении и армии, в 20-м веке она также стала широко использоваться компаниями, предоставляющими развлекательные услуги.
История визуального моделирования в кино и играх [ ]
Ранняя история (1940–1950-е годы) [ ]
Первая игра-симулятор, возможно, была создана еще в 1947 году Томасом т. Голдсмитом-младшим и Эстлом Рэем Манном. Это была простая игра, которая имитировала ракету, выпущенную по цели. Кривизну ракеты и ее скорость можно было регулировать с помощью нескольких ручек. В 1958 году Вилли Хиггинботем создал игру под названием «теннис для двоих», которая имитировала игру в теннис между двумя игроками, используя ручное управление, и отображалась на осциллографе. Это была одна из первых электронных видеоигр, использующих графический дисплей.
1970-е и начало 1980-х годов [ ]
Компьютерные изображения были использованы в фильме для имитации объектов еще в 1972 году в анимированной руке, части которой были показаны на большом экране в фильме 1976 года Мир будущего. Многие помнят «компьютер наведения» из «Звездных войн» 1977 года. Фильм «Трон»(1982) был первым фильмом, в котором компьютерные изображения использовались более двух минут.
Развитие технологий в 1980-х годах привело к тому, что 3D-моделирование стало более широко использоваться в фильмах и компьютерных играх, таких как Battlezone(1980) и Elite(1984) компании Acornsoft, одной из первых использующих каркасную модель в персональных компьютерах.
Эпоха до виртуального кинематографа (начало 1980-х–1990-е годы) [ ]
Достижения в области технологий в 1980-х годах сделали компьютер более доступным и более способным, чем в предыдущие десятилетия, что способствовало появлению таких компьютеров, как Xbox gaming. Первые игровые приставки, выпущенные в 1970-х и начале 1980-х годов, стали жертвой краха индустрии в 1983 году, но в 1985 году Nintendo выпустила Nintendo Entertainment System (NES), которая стала одной из самых продаваемых консолей в истории видеоигр. В 1990-х годах стали широко популярны такие компьютерные игры, как The Sims и Command Парк Юрского периода», вышедший на экраны в 1993 году, стал первым популярным фильмом, в котором широко использовалась компьютерная графика, почти полностью интегрировавшая смоделированных динозавров в сцены действия. Это событие преобразило киноиндустрию; в 1995 году фильм «История игрушек» стал первым фильмом, в котором использовались только компьютерные изображения, а к новому тысячелетию компьютерная графика стала основным способом создания спецэффектов в кино.
Виртуальное кино (начало 2000-х–настоящее время) [ ]
Появление виртуального кинематографа в начале 2000-х годов привело к резкому росту числа фильмов, снятых на основе виртуальных изображений. Классическими примерами являются цифровые двойники Нео, Смита и других персонажей в трилогии «Матрица» и множество фантастических персонажей, создание которых невозможно без компьютерной графики, в трилогии «Властелин колец».
В сериале Pan Am терминал, который уже не существовал во время съемок в 2011-2012 годах, был создан средствами виртуального кинематографа, такими как автоматизированный поиск точки съёмки и сочетание реальных и имитированных кадров в одной сцене, которые прочно закрепились в киноиндустрии с начала 2000-х годов. CGI-графика используется для визуальных эффектов, потому что она является высококачественной, хорошо управляемой и способной создавать эффекты, которые были бы невозможны при использовании любой другой технологии из-за высокой стоимости или недостаточной безопасности. Компьютерную графику сегодня можно увидеть во многих фильмах, особенно в жанре экшн. Кроме того, компьютерные изображения почти полностью вытеснили рисованную анимацию в детских фильмах, большинство из которых сейчас создается только на компьютере. Примерами фильмов, использующих компьютерные образы, являются «В поисках Немо», «300 спартанцев» и «Железный Человек».
Другие виды развлечений на основе симуляции [ ]
Игровые симуляторы [ ]
Игровые симуляторы [en] , в отличие от других жанров видео-и компьютерных игр, точно представляют или имитируют окружающую среду. Более того, они реалистично отображают взаимодействие между игровыми персонажами и окружающей средой. Эти виды игр обычно более сложны с точки зрения геймплея. Многие симуляторы, такие как SimCity и Tiger Woods PGA Tour, стали невероятно популярны среди людей всех возрастов.
Аттракционы в тематическом парке [ ]
Симуляторы использовались для развлечения со времен Link Trainer в 1930-х годах. Первым современным симуляционным аттракционом, открывшимся в тематическом парке, стал Disney’s Star Tours в 1987 году, а вскоре за ним последовал The Funtastic World of Hanna-Barbera в 1990 году, который стал первым аттракционом, сконструированным только с помощью компьютерной графики.
Симуляционные аттракционы произошли от военных и коммерческих тренажеров, но между первыми и последними есть принципиальная разница. В то время как военные тренажеры реагируют на ввод обучаемого в режиме реального времени, аттракционы только создают иллюзию реагирования, на самом деле соответствуя заранее записанным сценариям движения. Один из первых симуляторов Star Tours стоимостью $32 млн, имел кабину на гидравлическом приводе. Движение было запрограммировано джойстиком. Современные симуляционные аттракционы, такие как The Amazing Adventures of Spider-Man, включают в себя элементы для усиления погружения, испытываемого пользователями, такие как 3D-изображения, физические эффекты (распыление воды или ароматов) и движение через окружающую среду.
Примечания [ ]
Источник: igrowiki.fandom.com
Тестирование мобильных приложений: альтернативы реальным девайсам
Выбрав подходящие решения и интегрировав их в процесс разработки и тестирования, вы получите ощутимый прирост в качестве продукта и сможете избавить больший процент ваших пользователей от проблем с приложением.
Мобильных приложений с каждым днем становится все больше и больше, мы пользуемся ими постоянно. Разные по сложности и набору возможностей, все они требуют внимательного взора тестировщика, прежде чем попасть в руки пользователей. Тестировщики проверяют приложение на разных устройствах и конфигурациях, ищут проблемы и узкие места, а помогают им в этом, конечно же, мобильные устройства разных моделей и производителей. Существует несколько вариантов обеспечения тестировщиков необходимыми устройствами.
Симуляторы и эмуляторы
Для начала поймем, что такое симуляторы и эмуляторы. • Эмулятор – это виртуальное устройство, которое имитирует программную и «железную» части физического устройства. Ресурсы ограничены характеристиками имитирующего девайса. • Симуляторы – имитируют оболочку, ограничиваются только ресурсами самой машины.
Обычно данные инструменты поставляются вместе со средами разработки, такими как XCode и Android Studio. Эти инструменты позволяют имитировать поведение устройства, чаще всего ими пользуются разработчики для отладки создаваемых приложений. Преимущества: ● Позволяют запускать ваше приложение на виртуальном аналоге устройства. ● Могут использоваться в работе с автотестами. Недостатки: ● Имеется ряд ограничений, таких как работа с камерой, звонки, или бесконтактная оплата. Для таких кейсов придется возвращаться к реальным устройствам и проверять на них. ● Запуск симуляторов/эмуляторов и подготовка к работе обычно занимают две-три минуты, это не так критично, но если вам необходимо запустить сразу несколько симуляторов/эмуляторов, это может стать проблемой на слабых ПК.
Облачные фермы
Облачные фермы представляют собой некий сервис с доступом к различным физическим устройствам, с которыми вы можете взаимодействовать как в ручном режиме, так и с использованием ваших автоматических тестов. Сегодня на рынке огромное множество таких сервисов на любой вкус и кошелек. Вот только некоторые из них.
Samsung Test Lab Решение от одноименной компании позволяет протестировать ваше приложение на линейке устройств Samsung. Имеется возможность бронировать устройства на 30 минут и на 1 час. Из основных плюсов: можно пользоваться бесплатно, достаточно оперативно добавляют новые флагманы.
Из основных минусов: девайсы общие, после тестирования устройство не сбрасывается, постоянно захламлено. В линейке только устройства компании Samsung. FireBase Test Lab Решение от компании Google. Позволяет протестировать ваше приложение более чем на 450 устройствах, чего должно хватить практически любому. Работать можно как с iOS-, так и с Android-устройствами.
Есть возможность смотреть логи, настроить автоматизацию как обычные манки-тесты и как более осмысленные. AWS Devices Решение от Amazon предлагает на выбор несколько тарифов – от бесплатных до корпоративных. Огромный список устройств, проверить их можно как на флагманах, так и на достаточно старых моделях. Возможность подключения автоматизации и прочие интеграции.
Visual Studio App Center (ранее Xamarin Test Cloud) Широкий выбор устройств, возможность подключения автоматизации, теперь интегрирован в продукты Microsoft. И это только малая часть списка, облачных ферм много.
Как и у любого решения, облачные фермы имеют как плюсы, так и минусы. Преимущества: ● Нет необходимости покупать большое количество реальных девайсов. ● Можно найти устройство практически для любой ситуации. ● Нет затрат на поддержку и ремонт тестовых устройств. Недостатки: ● Сетевая задержка, не позволяющая корректно отображать анимации. ● Работать как с полноценной заменой физических устройств тоже проблематично из-за отсутствия тачскрина. ● Тестировщики обычно работают сразу с несколькими устройствами, перепрыгивая с одного на другое и возвращаясь обратно. С фермами такое сложно. ● Безопасность данных под вопросом. В случае облачных ферм вы тестируете приложение на ресурсах другой компании, нет гарантии, что ваши данные не попадут куда-то еще. ● Цена иногда может быть достаточно высокой.
Локальные фермы
Если вариант с облачным решением вам не подходит, можно собрать собственную ферму. Для этого вам понадобятся железные или виртуальные машины для Android и физические MacMini или аналоги для iOS. В локальных фермах можно использовать как виртуальные девайсы, так и реальные устройства.
Независимо от варианта настройка и поддержка локальных ферм отнимают достаточно много времени и сил, а также требуют высокого уровня компетенций ваших тестировщиков: они должны уметь работать с CI, средами разработки, отлично знать один из языков программирования. В случае с локальными фермами необходимо самим реализовывать все возможные обвязки и схемы взаимодействия устройств с кодом автотестов. Преимущества: ● Возможность глубокой кастомизации. ● Отсутствие внешней зависимости от вендора. ● Повышенный уровень безопасности: все данные находятся не где-то на чужих серверах, а у вас. Недостатки: ● Высокая стоимость поддержки. ● Необходимость высокого уровня компетенций специалистов. ● Не стоит забывать, что первичное развертывание, настройка и отладка – совсем не быстрые процессы, и от момента постановки задачи до возможности пользоваться своей собственной фермой может пройти от одного до нескольких месяцев, что выливается в существенную стоимость как людских, так и технических ресурсов без видимой отдачи.
Старые добрые устройства
Ну а если на вашем проекте нет необходимости в столь сложных в развертывании и поддержке решениях, всегда можно остановиться на старом проверенном способе – живых устройствах. Преимущества: ● Максимально приближенная среда, что позволяет проверять ваше приложение именно на тех моделях устройств и версиях прошивок, которыми пользуются ваши пользователи. ● Возможность нормально работать с анимациями, бесконтактной оплатой, камерой и прочими специфическими кейсами.
Удобнее в сравнении с фермами взаимодействовать с устройствами посредством тачскрина. ● Самые честные тесты по сравнению со всеми способами тестирования. Недостатки: ● Высокая цена формирования: постоянно требуется обновлять модельный ряд. Еще желательно иметь устройства не в одном экземпляре, чтобы несколько тестировщиков могли работать параллельно, или на случай ремонта не остаться без самой ходовой конфигурации. ● Высокая стоимость поддержки: вздувшиеся батареи, порванные провода, разбитые экраны, брак и прочие неисправности – это то, с чем придется сталкиваться рано или поздно. А значит, необходимо закладывать бюджет и на это. ● Малое покрытие в сравнении с облачными фермами.
Какой бы у вас ни был бюджет на закупки устройств для тестирования, вам не удастся купить все девайсы, на которые ставят ваше приложение пользователи. Это и нерентабельно, и не имеет особого смысла. Для формирования списка физических устройств необходимо опираться на метрики вашего приложения, какие устройства покрывают большинство ваших пользователей, купить эти устройства, а какие-то специфичные ситуации, например баг у пользователя на уникальном устройстве, стараться воспроизводить на симуляторах или облачных фермах. Такие ситуации возникают нечасто, и покупать девайс для проверки конкретного кейса или исправленного бага – сомнительная затея.
Итого
Выбрав подходящие решения и интегрировав их в процесс разработки и тестирования, вы получите ощутимый прирост в качестве продукта и сможете избавить больший процент ваших пользователей от проблем с приложением. Выбор какого-то варианта не исключает возможности пользоваться остальными – наоборот, все они дополняют друг друга, позволяя обеспечить максимальное покрытие. В каких ситуациях применять тот или иной инструмент – решать только вам.
Источник: www.it-world.ru