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

Чтобы избежать этой ловушки и обеспечить безупречное качество на всех платформах, необходим стратегический подход, и ключевую роль здесь играет тестирование пользовательского интерфейса (UI). В «ЛАНИТ Экспертизе» мы помогаем решать такие задачи, и в этой статье мы разберем основы UI-тестирования, но основной фокус сделаем на его мобильной специфике. Вы получите четкий план действий для тех, кто стоит на пороге тестирования мобильных приложений: поймете, с чего начать, каких подводных камней ожидать и как построить процесс, который сэкономит вам нервы и время.

Что такое UI-тестирование

Прежде чем бросаться в омут мобильной специфики, давайте закрепим фундамент.

1. Суть и цели UI-тестирования

Тестирование пользовательского интерфейса — это ключевой компонент обеспечения качества ПО. Его главная задача — проверить, что каждый элемент интерфейса работает корректно и соответствует функциональным требованиям, дизайн-макетам и бизнес-целям. Это напрямую влияет на пользовательский опыт (UX) и общее восприятие продукта.

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

2. Ключевые вопросы, решаемые UI-тестированием

  • Функциональность: работают ли кнопки, формы и навигация так, как задумано?

  • Визуал: соответствует ли интерфейс дизайн-макетам (Figma) во всех деталях?

  • Устойчивость: как приложение ведет себя при ошибках, неверном вводе или отсутствии сети?

  • Совместимость: одинаково ли качество работы на всех заявленных платформах и устройствах?

  • Доступность (WCAG): доступен ли интерфейс для людей с ограниченными возможностями?

📝 Примечание. Если кратко, то WCAG (Web Content Accessibility Guidelines) — это международный стандарт и набор рекомендаций по обеспечению доступности веб-контента для людей с ограниченными возможностями. Детальнее узнать про него можно здесь.

3. Структурные компоненты UI-тестирования

Процесс UI-тестирования является комплексным и состоит из нескольких взаимосвязанных компонентов.

  • Стратегический компонент: что и как тестировать (объем, методология, приоритеты).

  • Тактический и исполнительский компонент: непосредственная работа по плану (тест-кейсы, данные, окружение).

  • Технологический компонент: инструменты, которые ускоряют и усиливают процесс (фреймворки автоматизации, системы управления тестами, облачные платформы).

  • Аналитический компонент: фиксация результатов, отчетность и решение о готовности.

Как провести UI-тестирование

Независимо от вида тестирования и платформ, существует универсальный алгоритм UI-тестирования.

1. Планирование и анализ. Определение объема тестирования, целей и критериев успеха, а также анализ требований.

         Инструменты и методы:

  • макеты в Figma/Sketch,

  • документация по продукту,

  • мозговой штурм с командой.

2. Разработка тестовой документации. Создание детальных инструкций, написание тест-кейсов и подготовка тестовых данных для проверки.

         Инструменты и методы:

  • системы управления тестированием (TestRail, Qase, Zephyr),

  • таблицы (Excel/Google Sheets) для чек-листов.

  3. Настройка тестового окружения. Подготовка тестовой среды, установка необходимого ПО и настройка инструментов для тестирования.

        Инструменты и методы:

  • эмуляторы и симуляторы (BrowserStack, Sauce Labs),

  • виртуальные машины,

  • локальные серверы.

4. Выполнение тестирования (основная фаза). Проверка интерфейса вручную и/или автоматически на функциональность, визуал, юзабилити и кросс-платформенность.

Инструменты и методы:

  • для ручного тестирования:

    • чек-листы и тест-кейсы,

    • инспектор кода в браузере (F12),

    • линейки и пипетки (например, PixelSnap);

  • для автоматизации:

    • Web: Selenium, Cypress, Playwright,

    • Mobile: Appium, Espresso, XCUITest,

    • Visual Regression: Percy, Happo, Loki.

5. Документирование дефектов. Четкое описание найденных проблем в баг-репортах для разработчиков с доказательствами.

Инструменты и методы:

  • системы отслеживания ошибок (Jira, YouTrack, GitHub Issues),

  • скриншотеры (Joxi, Lightshot),

  • скринкасты (Loom, Скриншотер).

6. Ретест и верификация. Проверка, что все исправления работают корректно и не внесено новых ошибок в систему.

Инструменты и методы:

  • чек-листы для регрессионного тестирования,

  • набор автоматических регрессионных тестов (если есть).

7. Анализ и отчетность. Подведение итогов тестирования и информирование команды о качестве текущего продукта.

Инструменты и методы:

  • шаблоны отчетов в Excel/Word,

  • встроенная отчетность в TestRail/Jira,

  • презентации для команды.

Специфика тестирования UI: сравнительный анализ веба, десктопа и мобильных приложений

Хотя общие этапы тестирования неизменны, их реализация требует специфического подхода. Давайте разберем ключевые отличия.

Специфика тестирования веб-интерфейсов

В отличие от тестирования десктопных или мобильных приложений, тестирование веб-интерфейсов — это работа в уникальной, динамичной и неконтролируемой среде: браузере пользователя. Главная цель — убедиться, что интерфейс не только логично работает, но и обеспечивает стабильный, предсказуемый и комфортный опыт (UX) в различных условиях.

Ключевые аспекты тестирования веб-интерфейсов

  • Кроссбраузерность и кроссплатформенность. Один и тот же код интерпретируется разными движками (Blink в Chrome, Gecko в Firefox, WebKit в Safari), что приводит к тонким различиям в отображении CSS, скорости выполнения JavaScript и поддержке спецификаций. Поэтому тут стоит помнить, что эмуляция в DevTools не заменяет проверку на реальных устройствах.

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

  • Производительность: скорость загрузки и отклика интерфейса. Медленная отрисовка страницы, «подвисания» из-за тяжелого JavaScript кода или долгая загрузка изображений напрямую влияют на удовлетворенность клиента приложением.

  • Динамический контент и асинхронность. Современные фреймворки (React, Vue, Angular) динамически обновляют DOM без перезагрузки страницы. Элементы могут появляться, исчезать или меняться с задержкой. Жесткие ожидания — это антипаттерн, необходимы «умные» ожидания появления элементов.

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

  • Доступность (WCAG). Это не просто фича, а часто — юридическое требование. Необходимо проверять навигацию с помощью клавиатуры, семантическую разметку HTML, наличие alt-атрибутов, цветовой контраст и работу со скринридерами.

Технические особенности

  • Использование DevTools как основного инструмента анализа:

    • Консоль (Console) для JavaScript-ошибок, где любые красные сообщения (Errors) являются прямым указанием на баг. 

    • Инспектор (Elements) для проверки и временного изменения HTML/CSS для локализации проблем с версткой. 

    • Вкладка Сеть (Network) для анализа взаимодействия с бэкендом, чтобы отличить баг на фронтенде от проблемы на бэкенде. 

  • Эмуляция (Device Toolbar) для первичной проверки адаптивности интерфейса на различных разрешениях экрана. Важно помнить, что этот инструмент не полностью заменяет тестирование на реальных устройствах.

  • Тестирование «чистого» состояния и управление кэшем, так как веб-тестирование требует особого внимания к состоянию браузера. Проверка с чистым кэшем (режим инкогнито или опция Disable cache во вкладке Network) обязательна для корректного отображения обновленных CSS/JS-файлов. Очистка localStorage, sessionStorage и cookies через вкладку Application необходима для проверки сценариев первого входа или сброса пользовательских настроек. Это особенно важно при тестировании функциональности, зависящей от предыдущих сессий пользователя.

  • Анализ клиент-серверного взаимодействия для проведения сложных сценариев, манипулирования сетевыми запросами. Подмена ответов API через Local Overrides в DevTools или расширения вроде Requestly позволяет проверить, как фронтенд отреагирует на пустые данные, ошибки 500 или нестандартные структуры JSON. Throttling (ограничение скорости) во вкладке Network помогает имитировать медленное соединение 3G и оценить поведение интерфейса в условиях плохой связи, проверяя, не ломается ли он и корректно ли показываются индикаторы загрузки.

Инструментарий для работы

  • Для автоматизации E2E: Selenium WebDriver, Cypress, Playwright, Puppeteer.

  • Для модульного и компонентного тестирования: Jest, Vitest, Mocha, Jasmine.

  • Для проверки доступности: axe-core.

  • Для проверки производительности: Lighthouse.

Рекомендации

  • Используйте DevTools как основной инструмент. Научитесь читать консоль (Console) на предмет ошибок JavaScript, проверять сетевые запросы и анализировать DOM.

  • Документируйте контекст и в баг-репорте указывайте точную версию браузера, ОС и разрешение экрана. Скриншот или видео — обязательны для воспроизведения ошибки.

  • Проверяйте поведение в условиях медленного соединения: тестируйте при ограничении скорости 3G или при недоступности API.

  • Тестируйте с очищенным кэшем для проверки обновленных CSS/JS-файлов.

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

Специфика тестирования десктоп-приложений

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

Ключевые аспекты десктопного UI-тестирования

  • Совместимость с операционными системами — первоочередная задача. Приложения должны корректно работать на различных версиях Windows, macOS и Linux, учитывая специфику каждой ОС.

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

  • Потребление системных ресурсов — критический аспект. Десктопные приложения могут значительно нагружать CPU, память и дисковое пространство, что требует специализированного тестирования производительности.

Технические особенности

Взаимодействие с UI-элементами в десктопных приложениях происходит через специализированные API:

  • Windows UI Automation (UIA) для Windows-приложений,

  • Accessibility API для macOS,

  • AT-SPI для Linux-систем.

Инструментарий для работы 

Специализированные решения для десктопа для автоматизации:

  • WinAppDriver: позволяет автоматизировать тесты на Windows-приложениях, реализует WebDriver API и хорошо подходит для интеграции с CI/CD и кросс-браузерными решениями;

  • Pywinauto: Python-библиотека, работает с Accessibility API и Object Model, используется для автоматизации Windows GUI-приложений через управление элементами, окнами, диалогами и проверку сценариев долгого ожидания;

  • TestComplete: коммерческий инструмент, поддерживает широкий спектр технологий (WPF, WinForms, Java), позволяет записывать и воспроизводить действия пользователя, обеспечивает визуальный анализ через Object Spy и легко интегрируется в автоматизацию;

  • Squish: универсален для автоматизации Qt, Java, Windows/Unix-приложений, поддерживает различные языки программирования и сценарии кроссплатформенных проектов.

Инспекторы для анализа элементов:

  • Inspect.exe: встроенный инспектор для анализа структуры UI Automation элементов в Windows, удобен для поиска корректных локаторов и проверки доступности элементов;

  • UI Spy: альтернативный инструмент для глубокой работы с элементами Windows Forms, помогает в поиске нестандартных компонентов или сложных пользовательских элементов;

  • Accessibility Inspector (macOS): используется для анализа UI на соответствие требованиям доступности и поиска проблем с интеграцией в macOS-приложениях.

Для мониторинга ресурсов системы:

  • диспетчер задач: базовый инструмент для слежения за загрузкой ЦП, памяти, диска и процессами в Windows, применяется для предварительного анализа производительности;

  • Process Explorer: расширенный анализатор процессов, отображает зависимости модулей, пиковые нагрузки, проблемы с утечкой памяти и неосвобожденными ресурсами;

  • Instruments (macOS): входит в состав Xcode, применяется для глубокой диагностики и профилирования приложений на macOS - CPU, память, события ввода-вывода.

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

Десктопное тестирование сложнее веб-тестирования из-за:

  • отсутствия универсального стандарта автоматизации,

  • необходимости работы с различными UI-фреймворками,

  • меньшего сообщества и ограниченности документации,

  • сложности настройки тестового окружения.

Рекомендации

  • Инвестируйте время в изучение специфики целевых операционных систем.

  • Создавайте модульную архитектуру тестов с четким разделением платформо-зависимого кода.

  • Активно применяйте паттерны Page Object Model для упрощения поддержки тестов.

📝 Вывод. Десктопное UI-тестирование требует глубоких знаний операционных систем и специализированных инструментов. Акцент делается на системной интеграции, совместимости и ресурсоемкости. Успешное тестирование зависит от правильного выбора инструментов и методологий, адаптированных под конкретные технологические стеки.

Специфика тестирования мобильных приложений

Мобильное UI-тестирование представляет наиболее сложную область по сравнению с вебом и десктопом. Сложность связана с многообразием устройств, ОС и версий, а также с особенностями взаимодействия пользователя с интерфейсом (жесты, сенсорный ввод, аппаратные кнопки, производительность на разных моделях телефонов).

Ключевые аспекты мобильного UI-тестирования

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

  • Фрагментация устройств:

    • Android: тысячи моделей от разных производителей с различными экранами, процессорами и оболочками;

    • iOS: ограниченная линейка устройств Apple, но строгие требования к качеству.

  • Контекстные факторы использования:

    • ориентация экрана: портретная/ландшафтная и их переключение,

    • прерывания: звонки, SMS, уведомления, низкий заряд батареи,

    • сетевые условия: Wi-Fi, мобильная сеть, офлайн-режим,

    • состояние батареи и фоновые процессы — влияние на производительность.

  • Дополнительные ключевые особенности:

    • интеграция с железом: камера, GPS, датчики, push-уведомления, биометрия,

    • управление ресурсами: оптимизация энергопотребления, работа при нехватке памяти,

    • ввод данных: особенности работы с системной и кастомной клавиатурой.

Специфика платформ

Тестирование Android-приложений:

  • необходимость проверки на множестве устройств разных производителей,

  • тестирование различных версий ОС и кастомных оболочек,

  • проверка адаптивности UI под разные разрешения экранов,

  • валидация работы с разрешениями приложения.

Тестирование iOS-приложений:

  • соответствие строгим гайдлайнам Apple для App Store,

  • тестирование на ограниченном наборе устройств,

  • проверка интеграции с экосистемой Apple (Siri, VoiceOver),

  • валидация работы Background Mode и системных ограничений.

Технические особенности

Типы основных жестов и их тестирование:

  • свайп/скролл — для навигации и прокрутки контента,

  • пинч/зум — для масштабирования изображений и карт,

  • поворот — для изменения ориентации элементов,

  • Drag & Drop — для перемещения объектов,

  • долгое нажатие — для вызова контекстных меню,

  • тап — базовое взаимодействие с элементами.

Сложности тестирования жестов:

  • вариативность выполнения (скорость, угол, количество пальцев),

  • различия в чувствительности устройств,

  • необходимость тестирования в реальных условиях использования,

  • сложность автоматизации человекоподобных жестов.

Инструментарий для работы

Кросс-платформенные решения:

  • Appium — универсальный фреймворк, поддерживающий Android и iOS через WebDriver-протокол.

  • Detox — для React Native, обеспечивает детерминированные тесты на реальных устройствах.

  • Calabash — менее популярен, но все еще применяется в некоторых проектах.

Облачные платформы для мобильного тестирования:

  • BrowserStack и Sauce Labs позволяют выполнять тесты на реальных устройствах и эмуляторах в облаке, покрывая десятки моделей смартфонов и версий ОС.

Автоматизация и визуальная регрессия:

  • Appium + Percy или Applitools — для обнаружения визуальных отклонений в мобильном UI.

  • Espresso Test Recorder — генерация скриптов без кода для Android.

  • XCUITest Recorder — аналогичный инструмент для iOS в Xcode.

В сравнении с вебом и десктопом, мобильное тестирование требует:

  • тестирования жестов и сенсорных взаимодействий,

  • учет фрагментации устройств и условий эксплуатации,

  • интеграции с нативными инструментами платформы для повышения надежности тестов,

  • ограничений по ресурсам и прерываниям системы, влияющим на стабильность приложения.

📝Вывод. Переход на мобильное тестирование UI требует понимания отличий платформ и выбора правильных инструментов:

  • начинайте с ручного тестирования на ключевых устройствах, чтобы выявить особенности приложения,

  • инвестируйте в нативные фреймворки (Espresso, XCUITest) для стабильных автоматизированных тестов,

  • используйте облачные платформы для покрытия максимального числа устройств и сетевых условий,

  • включайте визуальную регрессию для своевременного обнаружения изменений в дизайне,

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

Следуя этим рекомендациям, можно эффективно оптимизировать мобильное UI-тестирование, сохраняя высокое качество продукта и не «сходя с ума» при масштабировании.

Как организовать тестирование UI на проекте 

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

В этой главе мы разберем, как построить процесс тестирования мобильного приложения, используя опыт команды в тестировании его же десктопной и веб-версий. Рассмотрим подробный план на примере проекта «Умный Банк». Предполагаем, что у нас есть доступ к реальным устройствам и эмуляторам.

Название проекта: «Умный Банк» — мобильное приложение банка.

Контекст: банк «***» уже несколько лет успешно развивает онлайн-банкинг для веб-браузера и десктопное приложение. Эти каналы отлично работают, покрыты автотестами, и основная клиентская база ими довольна.

Однако анализ рынка показывает, что более 60% клиентов совершают простые операции (проверить баланс, перевести деньги) с мобильных устройств. Чтобы не терять аудиторию и оставаться конкурентоспособными, банк запускает проект по разработке нативного мобильного приложения для iOS и Android. 

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

Итак, почему необходимо отдельное и специфическое тестирование мобильного приложения? 

1. Разная техническая реализация и платформы. Мобильные приложения — это нативные решения, использующие API iOS (XCUITest) и Android (Espresso/UIAutomator). В отличие от веб-тестирования в браузере, здесь нельзя использовать Selenium/Playwright-тесты. Придется строить процесс с нуля на Appium или нативных фреймворках. Локаторы, логика взаимодействия — все будет совершенно другим.

2. Особенности взаимодействия (UX/UI). Ключевое отличие — сенсорное управление жестами (тапы, свайпы, пинч). Для банковского приложения критически важны cвайп для обновления баланса, пинч для просмотра деталей чека, долгое нажатие для быстрых действий с картой, переключение ориентации экрана.

3. Различное аппаратное и системное окружение. Главный вызов — фрагментация устройств (особенно для Android) и контекстные факторы: тестирование на разных диагоналях экранов, прерывания (звонки, уведомления) во время операций, интеграция с железом (камера, GPS, NFC).

4. Особенности подключения и производительности. Для мобильных приложений критична работа в условиях ограниченной сети или ее отсутствии. Клиент может проверять баланс в метро при обрывистом соединении. Необходимо тестировать офлайн-режим и кэширование данных, поведение при смене сети (Wi-Fi→4G), время запуска на старых устройствах, мониторинг потребления памяти и CPU.

5. Процесс публикации и распространения. Почему недостаточно просто масштабировать текущие процессы? Мобильные приложения проходят строгую валидацию в App Store и Google Play. Тестирование должно включать проверку на соответствие гайдлайнам Apple и Google. Пропущенный баг, ведущий к отказу публикации, — прямые финансовые потери.

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

Предлагаем ознакомиться с пошаговым планом организации тестирования для проекта «Умный Банк».

Шаг 1. Оценка объема работы и трудозатрат, формирование команды. В нашем учебном сценарии начинаем с честной оценки предстоящей работы. Не просто «протестировать приложение», а разложить все по полочкам.

  • Выписываем каждый экран — от авторизации до истории операций.

  • Определяем ключевые сценарии: быстрый перевод, оплата по QR-коду, блокировка карты.

  • Рассчитываем реалистичные сроки (в мобильн��м тестировании тест-кейсы обычно пишутся на 30% дольше веб-аналогов).

Формируя команду, исходим из реальных потребностей первого релиза: 2-3 ручных тестировщика для интенсивного исследования и 1-2 автоматизатора для постепенного покрытия критичных сценариев.

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

Шаг 2. Настройка тестового окружения. Следующий критически важный шаг — создание стабильного и масштабируемого тестового окружения. 

В нашем учебном примере останавливаемся на гибридной модели, и вот почему:

  • команда работает из разных городов — нужен единый доступ к устройствам;

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

Локальная инфраструктура для ежедневной работы:

  • Android Studio — основной инструмент для ручного Android-тестирования через встроенный эмулятор;

📝 Примечание. При ограниченных ресурсах компьютера используйте Genymotion вместо стандартного эмулятора. Также ADB GUI Tool для визуального управления Android-устройствами через графический интерфейс.

  • Xcode с симуляторами для тестирования iOS. Настройка iOS Simulator: Xcode → Open Developer Tool → Simulator;

  • обязательная настройка Touch ID для тестирования банковских сценариев (Device → Touch ID → Enrolled).

Как альтернатива для Windows/Linux использование облачных Mac-сервисов (MacStadium).

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

  • BrowserStack как основной вариант — оптимальное соотношение цены и качества,

  • Kobiton для специфичных функций: NFC-платежи, реальная биометрия.

Для других сценариев можно рассмотреть:

  • стартапам (2-3 тестировщика, ограниченный бюджет) — BrowserStack ($29 в месяц) + бесплатные инструменты вроде TestLink для управления тестами, AZ Screen Recorder для записи багов;

  • крупным компаниям с высокими требованиями безопасности — локальная device lab с 20-30 физическими устройствами, использование TestRail ($35-74/пользователь/месяц) для управления тестами и Instabug ($99-499/месяц) для детального баг-репортинга;

  • международным проектам с требованиями локализации — комбинируйте облачные устройства с краудтестингом через Global App Testing, используйте TestFlight для iOS и Google Play Internal Testing для бета-версий.

Шаг 3: Внедрение многоуровневой стратегии тестирования. Теперь, когда фундамент заложен, выстраиваем сам процесс. Он будет состоять из четырех взаимосвязанных компонентов.

1. Стратегический компонент.

  • Область тестирования: четко определены экраны мобильного приложения (логин, дашборд, переводы, история, настройки) и ключевые пользовательские сценарии («Быстрый перевод», «Оплата по QR-коду»).

  • Методология: принят гибридный подход. Ручное тестирование для исследования, проверки юзабилити и сложных сценариев. Постепенное внедрение автоматизации нативных UI-тестов (Espresso/XCUITest) для регресса ключевых потоков.

  • Приоритизация: критичными объявлены сценарии, связанные с деньгами (переводы, платежи) и безопасностью (логин, смена пароля).

  • Критерии входа: стабильная мобильная сборка из CI/CD. 

  • Критерии выхода: отсутствие блокирующих дефектов и успешное прохождение всех тестов на «золотой коробке» устройств (например, 2 последних iPhone и 2 популярных Android-модели).

2. Тактический и исполнительский компонент.

  • Тест-кейсы: разрабатываются с акцентом на мобильную специфику (жесты, прерывания, смена ориентации, работа с клавиатурой).

  • Тестовое окружение: помимо локальных эмуляторов, обязательно используется облачная платформа (BrowserStack/Sauce Labs) для покрытия тестирования на десятках реальных устройств, как рекомендовано в статье.

  • Тестовые данные: подготавливаются данные для проверки переводов между счетами, учитывающие лимиты и правила, специфичные для мобильного канала.

3. Технологический компонент.

  • Инструменты автоматизации: выбор в пользу Appium для кроссплатформенных сценариев и Espresso/XCUITest для более стабильных и быстрых нативных тестов.

  • Визуальное регрессионное тестирование: интеграция Percy или Applitools Eyes в пайплайн для автоматического обнаружения визуальных отклонений на разных устройствах после каждого коммита.

  • Система управления тестами: тест-кейсы и результаты хранятся в TestRail, связанном с задачами в Jira.

4. Аналитический компонент.

  • Документирование дефектов: в каждом баг-репорте, помимо стандартных шагов, обязательно указывается модель устройства, версия ОС, скриншоты/видео и, если применимо, тип сетевого соединения в момент падения.

  • Метрики: отслеживается процент автоматизации критичных путей, количество дефектов, найденных на реальных устройствах vs-эмуляторах, успешность прохождения проверки в App Store Connect / Google Play Console.

Итоги кейса. Для банка «***» переход на тестирование мобильного приложения — это не масштабирование существующих процессов, а создание нового, самостоятельного направления контроля качества. Это требует формирования отдельной команды (или переквалификации существующей) со знаниями мобильной специфики, инвестиций в новый инструментарий (облачные платформы, мобильные фреймворки) и построения процесса, сфокусированного на фрагментации устройств, сенсорном взаимодействии, контекстных прерываниях и работе в условиях нестабильной сети. 

Заключение

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

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

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

Статья написана в соавторстве с @DuMiX