mobile-qahardware

Что эмулятор не покажет: 5 классов багов на реальном железе

Эмуляторы ускоряют CI и удобны для smoke-тестов, но опираться только на них — самообман. Часть проблем проявляется только на реальном девайсе с реальной нагрузкой, аккумулятором и сенсорами. Вот что регулярно проскакивает мимо эмулятора и попадает в продакшен.

🔥 Thermal throttling. После 5–10 минут активной игры реальный SoC начинает греться и снижать частоты. FPS проседает с 60 до 30, физика начинает «икать», тайминги анимаций ломаются. Эмулятор работает на десктопном CPU без троттлинга — баг невидим. Тестируйте долгие сессии (15+ мин) на бюджетных Android (Samsung A-серии, дешёвые Xiaomi).

🔋 Low Power Mode / Battery Saver. На iOS при <20% заряда система режет фоновые задачи и снижает refresh rate до 60 → 30 Hz. На Android Doze Mode останавливает WebSocket-коннекты и таймеры. Игра должна корректно справляться: ставить на паузу, продолжать состояние, не терять прогресс. Эмулятор всегда «full battery».

📶 Network transitions. Wi-Fi → LTE → 3G переход в реальной поездке. Latency скачет от 20 ms до 2000 ms, бывают packet loss. На эмуляторе вы такого не воспроизведёте без отдельных тулов (Network Link Conditioner на iOS, tc qdisc на Android). Проверяйте: загрузка ассетов, IAP-receipts, аналитика, реклама — не «застревают» ли при rotate сети.

📞 Прерывания звонком и push-окнами. Игра свернулась на входящий вызов, рекомендация системного апдейта, AirDrop-приглашение. Возврат — состояние сохранилось? Курсор на правильном popup? Звук вернулся? На эмуляторах редко тестируют, потому что эти триггеры там вручную. Реальный девайс с активной сим-картой ловит их сам.

🎧 Bluetooth audio и aux. Подключение наушников посреди матча — в идеале должна продолжиться музыка с правильным каналом. Bug: на iOS с AirPods звук иногда продолжает идти в speaker, на Android при отключении BT-устройства может «пропасть» полностью. Эмулятор аудио-роутинг не моделирует.

Что встроить в QA-процесс

✅ Минимум один реальный low-end Android (под 200$) и один midrange iPhone в device farm.

✅ Long-session-тест (15+ мин активной игры) перед каждым релизом — на реальном девайсе.

✅ Сценарий «звонок во время игры» включить в smoke-чеклист моб. версий.

✅ Тестировать при разряде ниже 20% — отдельный кейс.

Подробнее: Apple — Optimizing for Advanced Displays и Android Vitals.