Как тестировать мобильные приложения без реальных устройств
Что проверяют
Различает ли кандидат эмулятор и симулятор и понимает ли, какие классы дефектов на них принципиально не воспроизводятся.
Как отвечать
Android Emulator это настоящая эмуляция: системный образ Android запускается поверх QEMU. Отсюда возможности: любой API level, произвольные размеры и плотности экрана, а через расширенные настройки задаются координаты GPS и маршрут, входящий звонок и SMS, показания датчиков, уровень заряда, качество и скорость сети. Камера подменяется веб-камерой хоста или тестовой сценой.
iOS Simulator это не эмулятор: приложение собирается под архитектуру Mac и выполняется в среде macOS. Отсюда его свойства: он очень быстрый, но не показывает реального поведения памяти и производительности, не даёт камеру, биометрия только имитируется через меню, а баги, зависящие от сборки под устройство, не воспроизводятся вовсе. Геолокация при этом задаётся, а пуш доставляется через xcrun simctl push.
Третий вариант, который надо назвать: облачные фермы реальных устройств, BrowserStack, Sauce Labs, LambdaTest, Firebase Test Lab, AWS Device Farm. Своего парка нет, но устройства настоящие, а автотесты гоняются сразу по матрице моделей и версий ОС.
Автоматизация: Appium как кроссплатформенный драйвер, Espresso и UI Automator для Android, XCUITest для iOS. Selenium к нативным приложениям отношения не имеет, это браузерная автоматизация и годится только для мобильного веба.
Чего эмулятор и симулятор не покажут:
- реальную производительность, троттлинг при нагреве, расход батареи;
- поведение вендорских прошивок, которые убивают фоновые процессы и режут доставку пушей;
- аппаратные вещи: камеру, NFC, биометрию, качество датчиков;
- нестабильную мобильную сеть и переключение между Wi-Fi и сотовой связью;
- покупки в приложении, диплинки из сторонних приложений, системный шаринг.
Вывод для ответа: эмуляторы закрывают функциональные и регрессионные проверки в CI, а перед релизом всё равно нужен прогон на нескольких реальных моделях, покрывающих основную аудиторию по статистике установок.
Где спотыкаются
Называют iOS Simulator эмулятором и утверждают, что GPS с камерой недоступны нигде, хотя в Android Emulator и то и другое настраивается. И редко говорят главное: где именно эмулятор врёт и почему одного его недостаточно.