Тестируете ли вы на эмуляторах или на реальных телефонах
Что проверяют
Есть ли у вас реальная практика мобильного тестирования и понимаете ли вы, чего именно эмулятор не воспроизводит. Правильный ответ всегда комбинированный, ценность в том, как вы делите проверки между средами.
Как отвечать
И то и другое, вопрос в этапе и в типе проверки.
Эмулятор и симулятор берут массовую часть: быстрая проверка сборки, матрица версий системы и размеров экрана, локали, смена ориентации, тёмная тема, доступность, прогон автотестов в CI. Тут важно не путать термины: эмулятор Android действительно эмулирует устройство и крутит образ системы, а симулятор iOS выполняет код нативно на macOS и ограничений железа не воспроизводит вовсе.
На реальных устройствах проверяется то, чего в эмуляторе нет:
- железо и датчики: камера, биометрия, NFC, геолокация, Bluetooth;
- производительность, нагрев, расход батареи, поведение при нехватке памяти, когда система убивает процесс в фоне;
- сеть: слабый сигнал, переключение между Wi-Fi и мобильной сетью, обрыв в середине запроса;
- прерывания: звонок, будильник, пуш, диалоги разрешений, вырез экрана и жестовая навигация;
- оболочки производителей и агрессивная экономия батареи, из-за которой фоновые задачи и пуши не приходят.
Скажите про выбор устройств: не «побольше», а по аналитике, топ моделей и версий у ваших пользователей плюс самое слабое поддерживаемое устройство. Своего парка нет, помогают облачные фермы.
Где спотыкаются
Отвечают, что тестируют только на реальных, потому что эмулятор врёт. Это дорого и медленно: прогон матрицы версий на живых телефонах убивает скорость обратной связи, а половина находок ловится и в эмуляторе.
Второе: обратная крайность, релиз без единого живого устройства. Ровно то, с чем пользователь сталкивается первым, разрешения, биометрия, плохая сеть, в эмуляторе и не проверяется.
Третье: тестируют на своём флагмане со свежей системой и чистой установкой. Нужны минимальная поддерживаемая версия, слабое устройство и сценарий обновления поверх старой сборки, где как раз и ломается миграция локальных данных.