Всем привет!

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



Каждый год в сентябре 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. Установите на своём устройстве бета-версию ОС.

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

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

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



Шаг 2. Мануальная регрессия.

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

Советы

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

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

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

Процессор:


iOS 12 Beta


iOS 11

Память:


iOS 12 Beta


iOS 11

Батарея:


iOS 12 Beta


iOS 11

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

Шаг 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 баги, хотя официальный релиз состоялся в сентябре. Было бы здорово разработчикам поторопиться с фиксами, так как после активной фазы обновления в этом месяце большинство пользователей окажется под ударом.

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

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


  1. prs123
    10.10.2018 22:15

    На iOS пользователи, как мне кажется, просто обновляются быстрее, потому что их к этому вынуждают. В частности, довольно старый андроид 4.3 ещё очень популярен до сих пор. Это потому что он хорошо работает и благодаря app-compat'у не доставляет огромных проблем при разработки основных приложений.
    Что мы видим у Apple? Вы должны чуть-ли не через неделю выкладывать версию приложения в AppStore, собирая под новейшую ОС. Пользователи со старой ОС — по боку.


    1. rbobot
      10.10.2018 23:06
      +2

      Звучит как Стокгольмский Синдром.


    1. valera5505
      11.10.2018 01:05
      +1

      Это потому что он хорошо работает

      Главная причина заключается в отсутствии обновлений.


      1. prs123
        11.10.2018 08:19
        -1

        А на старые iOS устройства тоже прилетают обновления?


        1. valera5505
          11.10.2018 09:10
          +4

          На iPhone 5S, который вышел в 2013 году, доступна iOS 12, вышедшая в прошлом месяце


          1. prs123
            11.10.2018 09:32
            -4

            Не знаю, у меня на работе 5s говорит, что нифига и нету, хотя для xcode апдейт уже прилете


            1. valera5505
              11.10.2018 09:48

              На ipsw.me можно найти ссылки для скачивания полных прошивок. А еще можно просто подключить к iTunes на компьютере — он наверняка предложит обновиться


          1. moooV
            11.10.2018 17:44

            У меня ipad3, там последняя 9.3.5. Многие приложения из стора тупо не ставятся, тк требуют 11+. Помню, что Tumblr, читалки манги, некоторые банк-клиенты крупных банков не поставились.

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


    1. katya_sp Автор
      11.10.2018 02:05

      Добрый вечер! Спасибо за ваш комментарий.
      Да, действительно, Apple вынуждает пользователей быстро обновляться и нам необходимо поддерживать официальные релизы новой ОС как можно скорее.
      Но это совсем не означает что мы перестаем поддерживать старые версии ОС. Так, например, в течении следующего года все новые релизы Badoo будут актуальны и для пользователей с iOS 11. Что касается пользователей с iOS 10 и ниже, они все еще смогут скачать приложение с AppStore и активно им пользоваться. Но им будут не доступны новые фичи.


    1. kowap
      11.10.2018 09:37
      +3

      старый андроид 4.3 ещё очень популярен

      популярен, потому что обновления не приходят


      1. Gordon01
        11.10.2018 11:14
        -1

        У меня был планшет nexus 10, там была доступна 5.1, но я откатился на 4.4 потому что она лучше работала. Продал на днях, до сих пор не было ни одного приложения, которое бы не работало на 4.4. Обновления безопасности приходят отдельно от ос, не вижу смысла обновлять ОС на старых устройствах, они только больше тормозят. Девайс 2012 года.
        В то же время вышел iPhone 5, который был у меня недавно — абсолютно бесполезный кусок металла, на котором вылетал телеграм, при попытке открытия некоторых чатов.
        Еще смешнее с макбуками: там без обновления ОС не поставишь вообще никаких новых версий программ, а если обновить, то двухлетний макбук нас не. работать как asus eeepc


        1. advan20092
          11.10.2018 14:59
          +1

          Еще смешнее с макбуками: там без обновления ОС не поставишь вообще никаких новых версий программ, а если обновить, то двухлетний макбук нас не. работать как asus eeepc


          Это откровенное вранье. Если понятия не имеете о чем пишете, то лучше уж не пишите.


        1. LaQr
          11.10.2018 16:02

          Собственно приложения работают на 4.4 как раз из-за довольно большого количества пользователей с устройствами на этой версии ОС. А проблема как раз в том, что производители не спешат выпускать новые версии ОС на старые устройства. Искренне надеюсь что Project Treble посодействует решению этой проблемы.


          1. Gordon01
            11.10.2018 18:23

            Вызывающе неверная информация. 4.4 занимает меньше 10% рынка: developer.android.com/about/dashboards


            1. LaQr
              12.10.2018 08:14

              Вы правда готовы отказаться от >7% пользователей? А учитывая тот факт, что лично мне поддержку часто приходится организовывать не для 19 sdk, а для 16 sdk, то мы уже говорим об 11% на момент написания комментария.


    1. warranty_voider
      11.10.2018 13:02
      +1

      Поддерживать ли старые версии iOS, решает разработчик. У нас было правило — 2 мажорных версии системы на момент планируемого релиза приложения. Т.е. если последней версией на момент запуска была iOS 10, то писали с поддержкой 9 и 10. При выходе 11й версии, 9я не превращается в тыкву автоматически, а постепенно отмирает на протяжении некоторого времени (в соответствии с динамикой количества активных пользователей с этой версией).


      1. prs123
        11.10.2018 13:06

        Видимо для релизов оно несколько помягче, потому как с выходом 11 версии, нам отказали в публикации с версией 10 в TestFlight'


        1. warranty_voider
          11.10.2018 13:17
          +1

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


  1. cocaine4ik
    11.10.2018 12:30

    У меня после обновления на 12 iOS мой SE стал разряжаться в 2 раза быстрее. У всех так?


    1. advan20092
      11.10.2018 15:15
      +1

      Попробуйте отключить ScreenTime


    1. dmitryrublev
      11.10.2018 22:17

      Не заметил такого изменения.


  1. ludachris
    11.10.2018 12:54

    В статье сказано, что в батарее нет никаких изменений, а я вот прочитал вот тут, что всё таки есть баги и написано, как их решить. Интересно


    1. katya_sp Автор
      11.10.2018 13:18
      +1

      Добрый день, спасибо за отличный комментарий.
      ?Данная проблема касается системной функциональности Screen Time. В то время как мы в проверке батареи концентрировались на приложении Badoo. ?Мы брали 2 гаджета одной модели (iPhone 6) с одинаковым зарядом батареи, с идентичными настройками — геолокация, уведомления и прочее — и выполняли одни и те же действия в своем приложении: регистрация, загрузка фото, открытие чужого профиля, голосование и отправка сообщений. Разными были только версии iOS.
      Данная проверка показала что обновление не влияет на расход батареи в приложении Badoo.


  1. ludachris
    11.10.2018 12:56

    При чем разница 30%


  1. varton86
    11.10.2018 19:41

    image


  1. svetamarchenko1975
    12.10.2018 11:53
    +1

    Юзаю уже больше недели 12 версию, пока каких то явных косяков нет, видео с сайтов таких как ru.hdfilmwolrd.com проигрывается нормально.