Тестирование push-уведомлений

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

Друзья, поддержите нас вступлением в наш телеграм канал QaRocks. Там много туториалов, задач по автоматизации и книг по QA.

Пользователи доверяют напоминаниям и оповещениям. Поэтому важно тестировать push-уведомления при каждом релизе. Если они не будут работать, ваши пользователи пропустят важную информацию, и вы рискуете отпустить их к конкурентам.

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

Содержание

Зачем тестировать push-уведомления?

В работе push-уведомлений есть множество неочевидных переменных, на которые стоит обратить внимание. Мы должны учитывать следующие вещи:

  • пользователи должны получать ваши сообщения, даже если приложение закрыто
  • push-уведомленя должны работать, если телефон пользователя заблокирован
  • содержащиеся в уведомлении ссылки, на которое можно нажать, должны быть рабочими.

В общем, эти пункты можно смело добавлять в ваш чек-лист проверок push-уведомлений.‍

Что можно протестировать в push-уведомлениях?

Чтобы протестировать мобильные push-уведомления, вам необходимо рассмотреть различные обстоятельства, при которых пользователь может получать данные оповещения:

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

Тестируя уведомления, ответьте себе на вопросы:

  • Отображаются ли они во время работы приложения?
  • Продолжает ли устройство получать и отображать их после того, как пользователь закрыл приложение?
  • Что происходит, когда устройство находится в режиме “не беспокоить”?
  • Видны ли уведомления, когда запущено другое приложение?
  • Помешает ли изменение часового пояса на устройстве доставке оповещений?
  • Кликабельно ли оповещение? Корректно ли отображается контент при нажатии?
  • Правильно ли отображаются параметры в уведомлениях? (Звуки, шрифты, иконки и т.д.).‍

Это не исчерпывающий список функций, но он должен дать вам представление о том, с чего начать тестирование push-уведомлений.

Какие инструменты используются для тестирования push-уведомлений?

Начиная с бета-версии XCode 11.4, вы можете тестировать push-уведомления для iOS с помощью симулятора iOS от Apple. Вы можете зарегистрировать их в своем приложении, перетащить APN-файлы в симулятор и смоделировать их из командной строки. Также можно протестировать push-уведомления в эмуляторе Android. Как и симулятор iOS, он может регистрировать и отображать уведомления.

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

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

Каковы основные проблемы тестирования push-уведомлений?

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

Как уже говорилось в предыдущем вопросе, для полноценного тестирования push-уведомлений требуется тестирование на реальных устройствах. Это справедливо для любого мобильного приложения, а не только для приложения с push-уведомлениями. Собрать парк мобильных девайсов с необходимыми параметрами вполне возможно. При этом следует обдумать следующие вещи:

  • Используете ли вы более одного поставщика услуг обмена сообщениями? Чем отличаются их API и форматы сообщений? Доставляют ли они сообщения на клиентские устройства с одинаковой семантикой?
  • Учитываете ли вы множество различных конфигураций устройств, используемых вашими пользователями? Как влияют на работу приложения такие функции, как доставка по расписанию и режим “не беспокоить”?
  • Как различные размеры экранов, версии операционных систем и конфигурации изменят поведение ваших сообщений?
  • Как на ваши push-уведомления повлияют обновления мобильных операционных систем и аппаратного обеспечения?‍

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

Каковы различия между тестированием push-уведомлений на iOS и Android?

Очевидное различие между тестированием push-уведомлений на iOS и Android заключается в их графических интерфейсах. Для проверки содержимого уведомлений потребуется написать разные тесты. Но на этом различия не заканчиваются.

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

  • Пользователи Apple должны подписаться на уведомления из вашего приложения. Поэтому, когда вы настраиваете интеграционные тесты, охватывающие установку новой версии приложения, они должны позволять включать сообщения.
  • Пользователи iOS имеют возможность контролировать, отключать уведомления с помощью функции “Не беспокоить” и отложить их доставку на более позднее время.
  • Android и iOS также по-разному управляют уведомлениями на экране блокировки устройства. Вам потребуется написать автоматизированные тесты для различных способов просмотра и удаления сообщений пользователями.‍

Каковы распространенные ошибки при тестировании push-уведомлений?

Вы можете повысить стабильность приложения и удовлетворенность клиентов, учитывая следующее:

  • Самая распространенная ошибка при тестировании push-уведомлений – не тестировать их вообще. Несмотря на то, что уведомления в основном тестируются “вне приложения” и на первый взгляд кажутся простыми, они требуют особой тщательности и внимания.
  • Отсутствие тестирования ссылок на содержание контента может привести к ухудшению качества работы и даже к сбоям в работе приложения.
  • Не стоит полагаться на симуляторы и эмуляторы для тестирования. Они могут работать с push-уведомлениями даже на iOS, но тестирования на них недостаточно. Уведомления должны позволять приложениям работать в фоновом режиме и не мешать конкурировать за системные ресурсы.‍

Как интегрировать тестирование push-уведомлений в конвейеры CI/CD?

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

Вот возможный подход к тестированию push-уведомлений в конвейере CI/CD:

  • Разработчики создают тестовые уведомления в симуляторе. Чтобы ускорить процесс, тест генерирует сообщения локально с помощью simctl для iOS или loopback API для Android.
  • При приемочном тестировании (UAT) также используется симулятор. Но в качестве дополнительного шага проверки он отправляет уведомления через ваш сервис обмена сообщениями.
  • Конвейеры доставляют релизные сборки на реальные устройства. Приложения получают уведомления через производственные службы обмена сообщениями.‍

Заключение

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

Перевод статьи «Testing Push Notifications Demystified: An Engineer’s FAQ».

Оставьте комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *