Особенности iOS и Android
Тема дорожной карты · QA-инженер
Мобильные платформы — прежде всего iOS и Android — это две доминирующие операционные системы, которые QA-инженеры должны глубоко понимать для разработки эффективных стратегий тестирования мобильных приложений, поскольку каждая платформа имеет отдельные движки рендеринга UI, модели разрешений, особенности жизненного цикла и инструментальные цепочки автоматизации. Android (построенный на ядре Linux, с приложениями на Kotlin или Java) использует UIAutomator2 и Espresso как нативные фреймворки автоматизации, открывает управление устройством через команды adb (Android Debug Bridge) вроде adb install app.apk, adb shell input tap и adb logcat, а приложения распространяет через Google Play; Android-драйвер Appium оборачивает UIAutomator2 для предоставления унифицированного WebDriver-интерфейса для кросс-платформенной автоматизации. iOS (с фреймворком XCUITest, приложениями на Swift или Objective-C) требует macOS и Xcode для сборки и тестирования, использует xcrun simctl и ideviceinstaller для управления устройствами/симуляторами и автоматизируется через XCUITest-драйвер Appium или напрямую через XCTest и код Swift. Мобильные платформы существенно различаются в аспектах, важных для QA: обработка фоновых процессов, диалоги разрешений (камера, геолокация, уведомления), обработка deep link, принудительное применение certificate pinning (актуально для перехвата Charles Proxy), поведение клавиатуры и специфические для ОС UI-компоненты — всё это требует платформозависимых тест-кейсов. Комплексная стратегия тестирования мобильных приложений охватывает обе платформы на нескольких версиях ОС с использованием комбинации локальных эмуляторов/симуляторов для быстрой обратной связи CI/CD и тестирования на реальных устройствах в облачных платформах для финального одобрения релиза.
Как это работает
Особенности iOS и Android покрывает native (iOS, Android) и cross-platform (React Native, Flutter) приложения. Инструменты: Appium (cross-platform, Selenium-like), Espresso (Android native), XCUITest (iOS native), Detox (React Native). Стратегии устройств: физические (дорого, точно), cloud-фермы (BrowserStack, Sauce Labs, AWS Device Farm, Yandex Cloud Mobile Testing Service — для РФ), эмуляторы/симуляторы (быстро, менее точно). Платформенно-специфичные concerns: permissions, push-уведомления, deep links, offline-режим.
Когда применять
Тестируйте на реальных устройствах для release-кандидатов — эмуляторы пропускают platform quirks (обработка notch, vibration-паттерны, биометрия). Поддерживайте device-матрицу, покрывающую версии OS + размеры экрана, которыми пользуются юзеры (analytics показывает). Эмуляторы в CI — для быстрого фидбека. Offline-поведение тестируйте явно; mobile-сети ломаются способами, которыми desktop нет.
Типичные ошибки
Ловушки Особенности iOS и Android: тестируют только последние iOS/Android (старые версии — всё ещё 30%+ реальных юзеров); игнор low-end устройств (ваш premium-CPU dev-телефон прячет perf-проблемы); не тестируют под плохой сетью (3G, packet loss); deep-link тесты работают в симуляторе, но ломаются на реальном Android (intent filters).