Эмуляторы и реальные устройства

Тема дорожной карты · QA-инженер

Мобильные эмуляторы и симуляторы — это программные среды, воспроизводящие аппаратное обеспечение и операционные системы мобильных устройств на компьютере разработчика, позволяя QA-инженерам выполнять тестирование мобильных приложений в широком спектре конфигураций устройств без необходимости физической фермы устройств. Android-эмуляторы, управляемые через Android Virtual Device (AVD) Manager в Android Studio или командную строку (emulator -avd Pixel_8_API_34 -no-audio -no-window), эмулируют реальное аппаратное обеспечение с помощью QEMU и поддерживают полную эмуляцию системы, включая GPS, камеру, регулировку сети и различные размеры и плотности экранов. iOS Simulator, доступный исключительно на macOS через Xcode, технически является симулятором (не эмулятором), выполняющим код iOS-приложения, скомпилированный для x86/ARM Mac, а не истинную эмуляцию CPU устройства; им управляют через команды xcrun simctl — например, xcrun simctl boot "iPhone 16" и xcrun simctl install booted MyApp.app — и он является неотъемлемой частью Appium-автоматизации iOS в CI/CD-пайплайнах на Jenkins или GitHub Actions. Мобильные эмуляторы и симуляторы ускоряют цикл тестирования за счёт параллельного выполнения: несколько AVD или экземпляров Simulator работают одновременно с pytest-xdist или конфигурацией параллельных сессий Appium, распределяя наборы тестов по типам устройств без облачных расходов. Однако эмуляторы и симуляторы не воспроизводят полностью поведение реального устройства — аппаратно-специфичные баги, взаимодействия Bluetooth, условия сети оператора и характеристики производительности под давлением памяти требуют физических устройств или облачных ферм устройств вроде BrowserStack в дополнение к тестированию на эмуляторах.

Как это работает

Эмуляторы и реальные устройства покрывает 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 (старые версии — всё ещё 30%+ реальных юзеров); игнор low-end устройств (ваш premium-CPU dev-телефон прячет perf-проблемы); не тестируют под плохой сетью (3G, packet loss); deep-link тесты работают в симуляторе, но ломаются на реальном Android (intent filters).

Связанные понятия

Полезные ресурсы