Хабрахабр

8 интересных багов беты iOS 12 и как мы их искали

Всем привет!

Сегодня я расскажу о том, почему тестировать бета-версии так важно, как мы проводим мануальное тестирование таких версий и что интересного мы обнаружили в ходе проверки iOS 12 Beta.
Я Катя, тестирую мобильные приложения в Badoo.

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

Причина этого не только в том, что iOS крута сама по себе, но и в том, что в Apple знают, как заставить юзеров обновиться:

  • меняя положения кнопки «Напомнить позже», чтобы некоторые невнимательные пользователи случайно нажали на кнопку обновления;
  • не разрешая понизить версию;
  • показывая красный маркер на иконке настроек;
  • наконец, мой любимый ход — ежедневный показ сообщений об обновлении.

Уведомление об обновлении всплывало всякий раз при разблокировке экрана или закрытии центра уведомлений; доступных апдейтов при этом не было. Кстати, в бета-версии был раздражающий баг.  

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

Как видно из графика, в августе прошлого года бета-версия iOS 11 была установлена лишь у 1,05% наших пользователей, а к концу октября этот показатель достиг почти 60%.

Пример из личной практики

 Да, вам не померещилось: ПЕРЕСТАЛО. В сентябре 2017 года я обновила версию своего устройства до iOS 11, и приложение электронной почты, которой я активно пользуюсь, перестало присылать push-уведомления. ПУШИ. ПРИСЫЛАТЬ. Это жутко раздражало, так что я написала о проблеме в техподдержку, и её решили. Таким образом, чтобы узнать, пришло ли мне письмо или нет, приходилось открывать приложение и проверять папку «Входящие». После выхода фикса уведомления вернулись, но зато пропал счётчик на иконке. Это заняло три недели! Короче говоря, я начала пользоваться новым приложением (старым тоже пользуюсь, но уже не на постоянной основе). С растущей волной недовольства я сообщила и об этом баге.

Вот почему, когда выходит новая бета-версия iOS, мы должны её тестировать. Мобильное ПО постоянно меняется, и нам нельзя отставать. Почти сразу.

Начиная с какой бета-версии стоит проводить тестирование?

«Почему не с первой?» — Спросите вы. В этом году мы начали с Beta 6. Вам может встретиться множество различных ошибок, которые уже в скором времени исправит Apple. Дело в том, что бета-версии на самом старте очень «сырые», а активно тестировать нестабильную версию довольно бессмысленно. Мы видели это своими глазами: между версиями 5 и 9 было решено множество проблем.

На экране с превью видеозаписей у нас случались краши. Пример. Такая проблема существовала в Beta 5 и исчезла усилиями Apple в Beta 6.

Как выглядит процесс тестирования беты

Шаг 0. Установите на своём устройстве бета-версию ОС.

Самый старый и наименее производительный iPhone — 5s, самый новый и наиболее производительный — XS Max. Ознакомьтесь со списком устройств, поддерживающих iOS 12. Кроме того, советую вам регулярно проверять рейтинг наиболее часто используемых устройств для вашего приложения.
После того как устройство выбрано, можете устанавливать бету. Так что, если вы ещё этого не сделали, обновите свою коллекцию гаджетов. Вот доступная инструкция.

Шаг 1. Начните с новых функций ОС.

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

Мануальная регрессия.
В принципе, мануальная регрессия всего приложения — не моё любимое занятие, но в бета-версиях даже она в радость. Шаг 2. Постоянные зависания и краши — словно глоток свежего воздуха, как погружение в атмосферу стартапа.

Советы

  • Сверяйтесь с последней релизной версией.
  • Ведите учёт всех встречающихся вам багов и надейтесь, что их исправит всемогущая техподдержка Apple. Разумеется, когда выйдет новая бета, вам надо будет их все перепроверить.
  • Будет полезно вновь просмотреть список проблем, возникавших при предыдущем переходе (с iOS 10 к iOS 11), и удостовериться, что всё работает как надо. В рамках этого пункта я советую обратить особенное внимание на осуществление оплаты (через Sandbox и других провайдеров, а также единичные покупки и подписки), разрешения на доступ (к камере, местоположению и т. д.), работу камеры (фото- и видеосъёмка, загрузка из галереи, предпросмотр), определение местоположения (онлайн и офлайн), переписку (все виды сообщений и офлайн-синхронизация) и работу сети (переключение между Wi-Fi и мобильным Интернетом).
  • Прежде чем выпустить новую версию iOS, Apple обычно выпускает новую версию Xcode. Логично предположить, что поддержка iOS 12 последней версией вашего приложения означает, что она была скомпилирована при помощи последнего Xcode. Тем не менее, работая в приложениях, скомпилированных в разных версиях Xcode, вы можете столкнуться с самыми разными багами. Поэтому всё тщательно проверяйте.

Шаг 3. Нефункциональное тестирование.

Тем не менее, если у вас установлена бета-версия iOS 12, для отслеживания расхода энергии (Energy Log) и мониторинга состояния системы (Activity Monitor) вам придётся использовать бета-версию Instruments. Обычно для нефункционального тестирования мы задействуем инструменты Xcode. Скачав Xcode отсюда, вы можете использовать Instruments в обычном режиме.

Процессор:


iOS 12 Beta


iOS 11

Память:


iOS 12 Beta


iOS 11

Батарея:


iOS 12 Beta


iOS 11

Как показало наше исследование, значительных изменений в работе процессора, памяти и батареи с переходом на iOS 12 Beta не произошло.

Подробнее об этом пункте читайте в следующей статье. Шаг 4. Удостоверьтесь, что ваши автотесты проходят на новой бете.
В частности, установите бета-версию Xcode на агенты и обновите Facebook WebDriverAgent.

Мы включали такие проверки в тестирование фича-бранчей, их интеграции, а также в релизное тестирование. Шаг 5. Включите проверку на iOS 12 Beta в ваш процесс тестирования.
Советую включать проверку на iOS 12 Beta сразу, как только бета-версия станет стабильной.

Какие баги мы нашли в Badoo и других приложениях

Вот лишь самые достойные представители:

  1. Краш при запуске приложения — классика жанра. Так крашился, например, мессенджер, который я использую для общения с родителями. Эту проблему исправили сами разработчики приложения, поэтому после обновления воспроизвести баг не удалось.
  2. Прочие краши. Работая над статьёй, я столкнулась с такой проблемой: приложение для сбора рецензий крашилось при попытке ответить на комментарий, когда выскакивало сообщение о низком заряде батареи. В этом случае обновление приложения не помогло.
  3. Приложение Badoo крашилось при попытке открыть собственный профиль в приложении, собранном с SDK 12.0. Это было вызвано ошибкой при использовании enum Objective-C, инициализированного некорректным значением rawValue. Вылет происходил, когда во время исполнения программы не находилось соответствующего значения в операторе switch. Данный баг (см. гифку ниже) исправили наши разработчики (нам ещё нужны, кстати).

  4. Зависания при подключении к сторонним приложениям (например, при загрузке фотографий или при верификации аккаунтов в соцсетях). Эту проблему мы тоже решили своими силами.
  5. Сообщение «Галерея пуста» при попытке загрузить фото. Этот баг коснулся приложения, которое я использую для отправки фотографий друзьям и другим людям из списка контактов. Я жду, что его разработчики исправят эту проблему, а пока пользуюсь стандартным диалогом «Поделиться», что кажется мне очень неудобным.
  6. Неправильный порядок уведомлений. Эта проблема наблюдается в приложении, в котором я читаю блоги. Всё ещё жду фикса.
  7. Дублирование диалога о запросе доступа в симуляторе. Этот баг был в нашем приложении, и наша команда автоматизации была очень недовольна. Исправив его, мы вновь можем полагаться на результаты тестов.
  8. Баги с анимацией и клавиатурой. Приложение-навигатор, которым я пользуюсь, начинало мигать, как сумасшедшее, оставшись без доступа к Интернету. Кроме того, в одном банковском приложении ломалась вёрстка страницы при открытии сообщения от техподдержки через push-уведомление. Жду от разработчиков фикса обеих проблем.

Отмечу, что мы тестировали Badoo на приложениях, скомпилированных при помощи:

  • старой версии Xcode 9 на последней iOS Beta (6—12) и GM (iOS 12);
  • свежей бета-версии Xcode 10 на последней iOS Beta (6—12) и GM (iOS 12);
  • свежей бета-версии Xcode 10 на старых версиях iOS (11).

Другие приложения тестировались из любопытства с приложением, скомпилированным при помощи старой версии Xcode 9 на последней iOS 12 Beta (6—12).

Удивительные выводы

Тестирование бета-версий невероятно полезно — оно помогает оградить пользователей от очень неприятных багов. Некоторые баги встречались в самой iOS и уже исправлены Apple, но большая их часть исправлялась нашими доблестными разработчиками. И теперь, после ретеста фиксов, мы можем быть уверены в том, что пользователи iOS 12 смогут насладиться приложением Badoo в полной мере.

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

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

Теги
Показать больше

Похожие статьи

Добавить комментарий

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

Кнопка «Наверх»
Закрыть