Как протестировать реальное поведение мобильных устройств на реальных устройствах

Как протестировать реальное поведение мобильных устройств на реальных устройствах

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

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

Виртуальные инструменты по-прежнему полезны; они хороши для ранних проверок макета и быстрой итерации. Но они не могут сказать вам, как на самом деле ведет себя ваше приложение на реальном оборудовании в реальных сетевых условиях. Для этого вам необходимо протестировать на реальных устройствах.

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

Почему эмуляция — это не то же самое, что реальное устройство

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

Несколько конкретных пробелов помогают объяснить, почему:

  • Щелчки мыши — это не то же самое, что события касания: Сенсорное взаимодействие — один из самых простых способов увидеть разницу. Браузер настольного компьютера может преобразовать щелчок мыши в касание, но он не может воспроизвести то, как кто-то на самом деле использует сенсорный экран. Смахивания, длинные нажатия, жесты с несколькими касаниями и случайные прикосновения ведут себя по-разному, когда происходит фактическое касание экрана, а не курсор мыши.
  • Виртуальные клавиатуры смещают область просмотра: На физическом телефоне открытие клавиатуры мгновенно сжимает видимую область экрана, часто поля формы или кнопки действий полностью выводятся за пределы экрана. Браузеры для настольных компьютеров обрабатывают изменение размера окна по-разному, а это означает, что форма, которая выглядит идеально во время локальной разработки, может поставляться с кнопкой отправки, до которой мобильные пользователи фактически не могут добраться.
  • Производительность выглядит лучше, чем есть на самом деле: Большая часть разработки происходит на машинах значительно быстрее, чем на телефонах, которые имеют многие пользователи. Анимация или прокрутка, которые кажутся плавными на ноутбуке, могут заметно заикаться на более старом устройстве, и симулятор, работающий на том же ноутбуке, не может обнаружить разницу.
  • Аппаратные датчики не могут быть точно смоделированы: Такие функции, как доступ к камере, GPS-отслеживание в реальном времени и биометрический вход в систему (Face ID или сканеры отпечатков пальцев), зависят от физических аппаратных датчиков. Хотя симулятор может имитировать общее состояние успеха для этих API, он не может подтвердить, действительно ли базовое оборудование выполняет их правильно.
  • Расхождения в движке мобильного браузера: Мобильные браузеры реализуют веб-стандарты и отображают графику иначе, чем их настольные аналоги. Один движок браузера для настольных компьютеров, работающий в режиме устройства, не выявит ошибок кросс-браузерного рендеринга, которые проявляются только в мобильном Safari, Android WebViews или Samsung Internet.

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

Что отображается только на реальном оборудовании

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

Сетевые изменения являются одним из наиболее распространенных примеров. Разработка почти всегда происходит при быстром и стабильном соединении. На самом деле пользователи постоянно перемещаются между сильным Wi-Fi, слабым мобильным сигналом и временными мертвыми зонами. Если приложение не было протестировано на предмет разрыва соединений, оно может легко зависнуть или зависнуть на экране загрузки, не сообщая пользователю, что пошло не так.

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

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

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

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

Как протестировать реальное поведение мобильных устройств на реальных устройствах

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

Начните с устройств, которые на самом деле есть у ваших пользователей.

Большинство аналитических инструментов, таких как Firebase, Mixpanel или что-то еще, что вы уже используете, разбивают модели устройств и версии ОС на основе фактического использования. Прежде чем выбирать тестовые устройства, извлеките этот отчет. Приложение, ориентированное на широкий потребительский рынок, вероятно, должно поддерживать как старые телефоны Android, устройства среднего класса, так и устройства с меньшим экраном. Несколько правильных устройств решают больше проблем, чем большое количество похожих устройств.

Сначала протестируйте основные пути пользователя

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

Намеренно поместите приложение в реальные сетевые условия.

Отключите Wi-Fi и протестируйте приложение на мобильных данных. Специально попробуйте слабый сигнал. Прервите соединение во время выполнения задачи и посмотрите, что на самом деле делает приложение. Эта единственная проверка выявляет огромную долю сбоев, которые никогда не возникают в стабильной среде.

Проверьте, как приложение восстанавливается после закрытия в фоновом режиме.

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

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

Проверьте вещи, которые существуют только на физическом оборудовании

Такие функции, как камера, GPS, биометрическая аутентификация и push-уведомления, напрямую зависят от физического оборудования. Хотя вы можете издеваться над ними на ранних стадиях разработки, они все равно требуют физической проверки перед выпуском.

Обязательно протестируйте:

  • Поведение камеры в разных ориентациях устройства.
  • Push-уведомления в переднем, фоновом и завершенном состояниях.
  • Точность GPS в условиях слабого сигнала или в помещении.
  • Биометрические входы в систему, включая пути отказа и резервного копирования.

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

Охватить более одного производителя

Android — это не единая среда. Производители телефонов настраивают его по-разному, особенно в отношении оптимизации заряда батареи, фоновых процессов и уведомлений. В результате одно и то же приложение может вести себя на телефоне Samsung иначе, чем на устройстве Pixel или Xiaomi, даже если они используют одну и ту же версию Android.

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

Масштабируйте с помощью реального облака устройств

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

Настоящее облако устройств решает эту проблему, не требуя от вас создания и обслуживания собственной лаборатории устройств. С помощью TestMu AI (ранее LambdaTest), полнофункциональной агентской платформы для разработки качества искусственного интеллекта, вы можете запускать ручные сеансы и автоматические пакеты Appium, Espresso или XCUITest на более чем 10 000 реальных устройствах Android и iOS непосредственно из браузера или конвейера CI/CD. Каждый сеанс в реальном времени в облаке реальных устройств TestMu AI включает журналы устройств, а автоматические запуски записываются на видео, поэтому сбои сопровождаются доказательствами, необходимыми для их отладки.

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

Симуляторы, эмуляторы и реальные устройства: краткий обзор

ФакторСимуляторЭмуляторРеальное устройство
РаботаетАппаратное обеспечение вашего компьютераВиртуализированное оборудование на вашем компьютереФактическое оборудование телефона
Архитектура процессораНе реплицируетсяРеплицированныйПодлинный
Условия сетиПодключение к вашему офисуПодключение к офису, иногда ограничиваетсяНастоящая сотовая связь, реальная мощность сигнала
Аккумулятор и температурное поведениеНе моделируетсяНе моделируетсяПодлинный
Камера, GPS, биометрияПоддельный или недоступныйЧастично смоделированоПодлинный
Различия в OEM-программном обеспеченииНетНетПодарок
Скорость установкиБыстрыйБыстрыйМедленнее, если не использовать облако устройств
Лучшее дляРанние проверки макета iOSРанние проверки логики и макета AndroidПредварительная проверка и реальное воспроизведение ошибок

Лучшие практики для тестирования реальных устройств

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

  • Расставьте приоритеты устройств на основе реального использования: Используйте свою собственную аналитику, чтобы определить комбинации устройств и ОС, которые составляют большую часть вашей реальной пользовательской базы, и сосредоточьте тестирование на них, а не стремитесь к полному охвату конфигураций, которые почти никто не использует.
  • Сохраняйте подробную диагностику каждого запуска: Неудачный тест говорит о том, что что-то пошло не так. Журналы, отчеты о сбоях, трассировка сети и записи экрана расскажут вам, почему. Сбор этой информации при каждом запуске теста значительно упрощает воспроизведение периодически возникающих проблем и значительно сокращает время, затрачиваемое на их отладку.
  • Распространение тестирования по производителям, версиям ОС и ценовым категориям: Не создавайте свой набор тестов только вокруг флагманских устройств. Включите различных производителей, версии операционных систем, а также телефоны бюджетного, среднего и высокого класса. Ошибки, характерные для конкретного устройства, часто возникают на оборудовании с разными характеристиками производительности или настройками производителя.
  • Интегрируйте тесты реальных устройств в свой конвейер развертывания: Автоматизируйте их как часть вашего конвейера. Настройте шлюзы, требующие прохождения реальных тестов устройства перед выпуском производственных версий. Это позволяет систематически выявлять регрессии, а не полагаться на ручное тестирование.
  • Воспроизведите обнаруженные ошибки на том устройстве и версии ОС, которые были у пользователя: Одна и та же проблема не всегда возникает на другом устройстве, даже если версия приложения идентична. Воспроизведение проблем в той же среде, где о них было сообщено, значительно упрощает выявление основной причины и подтверждение исправления.
  • Протестируйте предстоящие выпуски ОС: В новых версиях Android и iOS могут возникнуть небольшие проблемы совместимости, прежде чем большинство пользователей обновят свои устройства. Тестирование бета-версий дает вам время выявить и исправить эти проблемы до публичного развертывания.

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

Заключение

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

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

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



Source link

Leave a Reply

Your email address will not be published. Required fields are marked *