Всем привет! Меня зовут Ксюша, и я тестирую мобильные приложения в компании ATI.SU

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

Начнем с девайсов

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

Как же учесть это, ведь невозможно протестировать приложение на всех вариантах устройств? Стоит выбирать наиболее популярные среди ваших пользователей девайсы, а еще тестировать на самой старой и самой новой из поддерживаемых ОС. Также важно проверять приложение девайсах с сильно кастомизированными прошивками. Например, xiaomi, huawei, samsung.

Перейдем к ui и ux

Для каждой из платформ существуют гайдлайны: Google Material Design для Android и Human Interface Guidlines для ios. В гайдлайнах описаны элементы интерфейса, их размеры, расположение на экране и не только. Гайдлайны нужны, чтобы создавать такой дизайн, который позволит пользователю не думать над простыми действиями. Например, над навигацией или выбором элементов. А еще гайдлайны пригодятся, чтобы один и тот же дизайн был одинаково функционален на разных девайсах и разных версиях платформы. Хорошее приложение должно следовать гайдлайнам, а тестировщик проверить это.

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

Рассмотрим разрешения

У каждого приложения на платформе Андроид есть список разрешений (permissions). Например, разрешения на доступ к файловой системе, местоположению или камере. В зависимости от функционала, приложение запрашивает их у системы. Для успешного тестирования стоит выяснить, при каких действиях приложение запрашивает разрешения, и протестировать эти действия с выданными разрешениями и без них.

Потестируем запросы

Приложение - это в первую очередь про фронтенд. Для взаимодействия с бекендом оно использует http-запросы. Запросы, как известно, могут возвращать разные коды ответа. Например, 400, 500 и другие. А также ответы могут приходить с таймаутом. Тут важно протестировать реакцию приложения на различные коды ответа, таймауты разной длины и измененное body ответа. Для тестирования подобных ситуаций используются снифферы - инструменты для перехвата трафика и подмены запросов и ответов. Снифферы позволяют изменять запрос и ответ целиком или частично. Самые популярные - это Charles и Fiddler. О работе с ними я постараюсь рассказать подробнее в отдельной статье.

Обновим приложение

У приложения на Андроид есть своя база данных, которая хранится прямо на устройстве. Добавляя новые фичи, разработчик меняет и базу: удаляет, изменяет, добавляет поля и таблицы. Чтобы протестировать это, обновим приложение до версии, в которой база изменена. После обновления нужно проверить тот функционал, который был затронут при разработке.

Используем функции девайса

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

Давайте зарелизим

Если вы тестировали веб-приложения, то наверное знаете, что можно в любой момент выложить изменения в продакшн, используя пару нехитрых команд git. И буквально в считанные секунды ваши пользователи получат новый функционал. У мобильных приложений такие быстрые релизы невозможны.

Когда билд готов к релизу, его загружают в Play Market или App Store. Там приложение проходит ревью и становится доступным для скачивания. Однако пользователи получат новый релиз только когда обновятся. А это процесс не быстрый. У большинства пользователей может быть отключено автообновление, и они могут месяцами откладывать обновление вручную.

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

Подытожим

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

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

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


  1. anonymous
    00.00.0000 00:00


    1. Stersh
      02.08.2021 08:06

      Тут вопрос скорее не в количестве, а в том какие это устройства. По опыту, самые проблемные: Samsung, Xiaomi. Хорошо бы иметь Pixel для обновления на последние версии OS. Если собираетесь публиковаться в AppGallery, то соответственно нужен Huawei/Honor. Ну и разумеется желательно иметь разные размеры экранов.


      1. Kseniya_M Автор
        02.08.2021 21:21

        Согласна. Только уточню, что есть huawei с гугл-сервисами. Для таких девайсов подходит приложение из Play Market.


    1. Kseniya_M Автор
      02.08.2021 21:18

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


    1. IvanE89
      20.10.2021 14:17

      Что значит полным? Как правило девйсы указаны в документации, но обычно тестирование проходит по платформам, если компания просто пилит мобильное приложение


      1. Kseniya_M Автор
        20.10.2021 14:19

        Не всегда девайсы указаны в документации. У нас нет стороннего заказчика, который указал бы нам девайсы, так как компания продуктовая (делает свой продукт). Мы выбираем девайсы сами в соответствии с рынком и метриками.


  1. phanerozoi_evidence
    02.08.2021 01:16

    Спасибо. Но мало. Хочется обзоров тестируемых приложений. Однако статья имеет право быть. Ставим плюсик. Пишите ещё


    1. Kseniya_M Автор
      02.08.2021 21:22

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


  1. mrk-andreev
    02.08.2021 09:41

    У AWS есть сервис для тестирования мобильных приложений на различных устройствах - AWS Device Farm (https://awsdevicefarm.info/).

    Крупные разработчики сами могут позволить себе такое, например Яндекс (https://habr.com/ru/company/yandex/blog/338038/). Если же у вас нет столько ресурсов, то, возможно, AWS Device Farm (и его аналоги) для вас будут отличным решением.


    1. Kseniya_M Автор
      20.10.2021 14:16

      Спасибо! Рассмотрим этот вариант)