2. Виды мобильного тестирования
Мобильные приложения – это дикий микс из UI, API, железа и сетевого взаимодействия, так что тестировать их приходится с разных сторон. Давай разберём основные виды тестирования, которые нужны, чтобы приложение не улетело в бан после первого релиза.
1 Функциональное тестирование
Цель: проверить, работает ли приложение так, как задумано.
✅ Кнопки нажимаются и делают то, что должны.
✅ Формы принимают данные и валидируют их.
✅ Логин, регистрация, платёжка – всё работает без багов.
✅ Функции приложения ведут себя, как ожидается.
📌 Как тестировать?
- Ручные тест-кейсы
- Автотесты (Appium, Espresso, XCUITest)
- API-тестирование (Postman, Charles Proxy)
2 UI/UX тестирование (юзабилити)
Цель: приложение должно быть удобным, логичным и не выбешивать пользователей.
✅ Кнопки, иконки и шрифты не танцуют в хаосе.
✅ Анимации плавные, без фризов.
✅ Размеры элементов адаптированы под разные экраны.
✅ Критически важные действия не спрятаны в 10 кликах от пользователя.
📌 Как тестировать?
- Ручное тестирование на разных устройствах
- Дизайн-гайды: Material Design (Android), HIG (iOS)
- Инструменты: Screenshot comparison (Applitools, Percy)
3 Кроссплатформенное тестирование (Android vs iOS)
Цель: убедиться, что приложение одинаково хорошо работает на обеих платформах.
✅ Разные UI-гайды: на iOS кнопки сверху, на Android – снизу.
✅ Отличия в системных разрешениях (например, работа с камерой).
✅ Разные жесты и кнопки (у iOS нет кнопки "Назад").
✅ iPhone не поддерживает WebView как Android.
📌 Как тестировать?
- Реальные устройства + симуляторы
- Автоматизация через Appium / Detox
- Тест-кейсы, учитывающие специфику платформ
4 Производительное тестирование (Performance Testing)
Цель: приложение не должно тормозить, выжирать батарею и жрать сеть, как монстр.
✅ Быстродействие (нет лагов, анимации плавные).
✅ Потребление ресурсов (CPU, RAM, батарея).
✅ Тестирование в условиях слабой сети.
✅ Поведение при высоких нагрузках (например, при массовом входе пользователей).
📌 Как тестировать?
- Инструменты профилирования (Android Profiler, Xcode Instruments)
- Симуляция слабого интернета (Network Link Conditioner, Charles)
- Нагрузочные тесты (JMeter, Gatling)
5 Тестирование безопасности
Цель: приложение не должно сливать пароли, карты и данные пользователей.
✅ Шифрование данных (особенно в платежных сервисах).
✅ Работа с авторизацией (OAuth, JWT, токены).
✅ Защита от SQL-инъекций и XSS.
✅ Проверка утечки данных при работе с API.
📌 Как тестировать?
- Инструменты для анализа трафика (Burp Suite, Charles Proxy)
- Тестирование входа/выхода (Auth0, Firebase Auth)
- Проверка логов и хранения данных
6 Локализационное тестирование (L10n и I18n)
Цель: убедиться, что приложение правильно отображает тексты, валюты и форматы данных в разных странах.
✅ Переводы корректны (без машинного бреда).
✅ Форматы дат, времени, валют соответствуют региону.
✅ UI не ломается при длинных или коротких строках.
📌 Как тестировать?
- Проверка на разных языках
- Инструменты локализации (Lokalise, Poedit)
- Генерация тестовых данных с разными символами (например, иероглифами)
7 Тестирование обновлений и обратной совместимости
Цель: новое обновление не должно сломать всё нафиг у старых пользователей.
✅ Проверка обновлений через Store.
✅ Работа приложения на старых версиях ОС.
✅ Корректное обновление базы данных.
📌 Как тестировать?
- Тестирование миграций (Room, CoreData)
- Установка старых версий и обновление до новых
- Автотесты на совместимость
8 Тестирование push-уведомлений и фоновых процессов
Цель: уведомления должны приходить вовремя и в нужных условиях.
✅ Проверка push'ей при разных настройках сети.
✅ Работа в фоне и после перезагрузки устройства.
✅ Проверка взаимодействия с Deep Links.
📌 Как тестировать?
- Firebase Cloud Messaging (FCM) / APNs (для iOS)
- Переключение между Wi-Fi, LTE и оффлайном
- Проверка кросс-приложенных переходов
9 Тестирование сенсоров и жестов
Цель: убедиться, что приложение правильно реагирует на тапы, свайпы, акселерометр и GPS.
✅ Работа с камерами, микрофоном, гироскопом.
✅ Реакция на тряску, переворот экрана.
✅ Геолокация и определение местоположения.
📌 Как тестировать?
- Инструменты тестирования жестов (Appium Touch Actions)
- Подмена GPS-координат (Mock Locations, Dev Tools)
- Тестирование камеры и микрофона в разных условиях
🔟 Итог: чек-лист тестировщика мобильных приложений
✅ Проверили основные функции приложения?
✅ UI адаптирован под все экраны?
✅ Приложение стабильно на Android и iOS?
✅ Оно не тормозит и не жрёт батарею?
✅ Надёжно ли защищены данные?
✅ Локализация не развалилась?
✅ Обновления не ломают старые версии?
✅ Push-уведомления работают?
✅ Сенсоры и жесты не багуют?
Вывод
Мобильное тестирование – это не просто "потыкал в кнопки и всё ок". Нужно учитывать кучу факторов: платформы, UI, сеть, безопасность, энергопотребление и даже такие вещи, как работа с сенсорами. Чем больше нюансов ты учитываешь, тем выше шанс, что приложение не взлетит в топ баг-репортов Google Play или APPSTORE.