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

Сейчас работаем

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

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

Особенности мобильного тестирования

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

Чек-лист тестирования мобильного приложения состоит из восьми разделов:

  • Функциональное тестирование
  • Тестирование совместимости
  • Тестирование безопасности
  • Тестирование локализации и глобализации
  • Тестирование удобства использования
  • Тестирование производительности
  • Кросс-платформенное тестирование

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

Применяемые методы тестирования мобильных приложений

Функциональное тестирование

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

Тестирование совместимости

Тестирование совместимости — одна из обширных сфер из нашего чек-листа. Такие тесты используются для того, чтобы определить, работает ли приложение на разных версиях ОС, совместимо ли с различными оболочками, которых так много на Android. Это относится и к работе в сторонних сервисах, если подразумевается обмен данными с ними. Будет использоваться периферия (например, гарнитуры, внешние Bluetooth-устройства, USB-устройства, работающие по OTG)? Пишите в список и ее, во всех возможных видах. Разумеется, протестировать на сто процентов все сценарии и вилки почти невозможно, одних только кастомных прошивок на Android — десятки видов. Но стремиться к полноте картины необходимо — как минимум, нужно определить самые популярные сочетания, либо самые важные для использования.

Тестирование безопасности

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

Тестирование локализации и глобализации

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

Тестирование юзабилити

Тестирование удобства использования — это способ проверить систему на уровень «юзер-френдли»: в современной разработке пользователю должно быть удобно и комфортно всегда, на любом экране вашего приложения, в любой момент ввода или переноса данных. Причем такие тесты должны проводиться на протяжении всего жизненного цикла ПО: и на этапе разработки, и в момент soft-launch на малую тестовую аудиторию, и после запуска стабильной сборки в моменты обновлений.

Разница в тестировании мобильных приложений iOS и Android

Вы же помните, что ресурсы смартфона не безграничны? А о том, что есть устройства эконом-класса с невысокими характеристиками? Но ваше приложение, скорее всего, должно работать и на iPhone 14 Pro Max, и на недорогих «китайцах» вроде Realme. Убедиться в этом поможет тестирование производительности, которое направлено на определение эффективности использования приложением ресурсов системы при различных сценариях и в различных условиях. К примеру, важными для мобильных устройств показателями являются расход батареи, стабильность работы с сетью и достаточная производительность для того, чтобы пользователь не замечал «подтормаживаний» оболочки и приложений.

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

В тестах есть много нюансов, на которое высокопрофессиональный тестировщик обязательно обратит внимание. К примеру, навигация назад в iOS, скорее всего, будет реализована свайпом слева направо, а вот в Android она может быть продублирована стрелочкой в интерфейсе в Navigation Bar. Таких мелочей много, но именно из подобных особенностей и строится общее восприятие приложения и его успех, и стратегия работы с ними обычно даёт свои плоды.

А наиболее важным отличием между системами от Apple и от Google является разрешение экрана и соотношение его сторон. Вы когда-нибудь обращали внимание на то, что одно и то же приложение на iOS и Android, даже при одинаковом дизайне, может выглядеть по-разному? В идеале, конечно, проверить как оно работает на всех устройствах. Но, конечно, проверить все их не получится, но охватить самые популярные устройства придется. При этом количество устройств с iOS — известно, а вот с Android придётся принимать во внимание несоизмеримо большее количество гаджетов с разными параметрами экранов: разрешение, плотность пикселей, соотношения сторон, физические размеры экрана и даже тип матрицы. Кстати, необязательно раскошеливаться на сами девайсы — помогут эмуляторы и симуляторы реальных устройств. Мы чаще всего используем Android Studio, Xcode, Genymotion и Browserstack). Но если у вас есть возможность использовать тестовые приложения на реальных устройствах — это было бы прекрасным решением.

Большинство мобильных приложений работают с серверной частью и общаются с ней через Интернет. Вы же помните все те моменты, когда у вас ну ооочень долго грузился сайт в браузере или приложение не соединялось с сервером? Не правда ли, что это раздражает? А теперь перевернем доску: вспомните, как вы хвалили неизвестных разработчиков, когда все прекрасно работало даже с медленным интернетом, к примеру, когда за городом еле ловит «Ешка». Снизить уровень вероятной фрустрации пользователя поможет анализ веб-трафика.  Отличный пользовательский опыт и баллы в «копилку» разработчикам! Провести такой анализ позволят трафик-снифферы — к примеру, Charles, Fiddler или Proxyman.

Используемые инструменты тестирования и оптимизации мобильных приложений

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

Calabash — фреймворк для автоматизации функционального тестирования, который управляет работой приложения в симуляторе или на физическом девайсе. Отметим, что он подходит как для Android-приложений, так и для приложений для iOS. Кстати, создатели инструмента — небезызвестные Xamarin.

Appium — опенсорсный фреймворк, который часто хвалят на конференциях самые различные компании, в том числе и гиганты типа Яндекса.

Robotium — невероятно полезный инструмент для Android-приложений, с помощью которого можно (в ручном режиме) писать функциональные тесты.

iOS UI automation — нативный сервис от самой Apple. Учитывайте, что тесты нужно писать на JavaScript, а тестируемое приложение должно быть подписано.

UIAutomation — аналогичный инструмент, но уже от Google, поставляется вместе с Android SDK.

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

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

MobSF (Mobile Security Framework) – это средство для автоматизированного тестирования безопасности мобильных приложений, поддерживает Android и iOS. Программный продукт позволяет проводить сканирование приложений на наличие уязвимостей, утечек информации, ошибок аутентификации, неправильной обработки входных данных и других подобных проблем.

Charles Web Debugging Proxy — полезный сервис для мониторинга HTTP и HTTPS трафика. Инструмент работает как прокси-сервер между тестируемым приложением и сервером на бэкенде, позволяя не только видеть, но также перехватывать и редактировать запросы.

Опыт компании QA Service Lab в тестировании мобильных приложений

Среди всех кейсов QA Service Lab 14 проектов были связаны с тестированием мобильных приложений. Сейчас мы работаем со всеми версиями Android и iOS, но ранее наши опытные специалисты работали и с системами, которые уже не поддерживаются — Windows Mobile, Blackberry OS. Мы тестировали приложения из области ретейла, банковской сферы, мобильные игры, внутренние корпоративные системы и гибридные решения, поэтому смело говорим о своей экспертизе и рекомендуем вам подходы и инструменты в этой статье.

Автор статьи
Фото - Илья Рубцов

Илья Рубцов

Старший инженер по контролю качества и ручному тестированию QA Service Lab

Понравилось статья?

Вам будет интересно

Постер - Ручное тестирование: виды, методы, инструменты, лайфхаки от QA Service Lab
Постер - Оценка эффективности аутсорсинга тестирования: практический подход для бизнеса

Подписывайтесь на наш канал в Telegram

Канал компании QA Service Lab про жизнь в неидеальном мире, но в стремлении к качественным программным продуктам и сервисам

Подписаться
qr-code
Обратный звонок

    0из 150
    Облако

    Данные отправлены

    Скоро с вами свяжется наш специалист