Ответ
Тестирование прерываний проверяет, как мобильное приложение реагирует на внешние события, временно перехватывающие фокус или ресурсы. Ключевые сценарии:
- Входящий/исходящий звонок — приложение должно корректно приостановиться (пауза в медиа, играх) и восстановить состояние после завершения звонка.
- Уведомления (SMS, push, др. приложений) — проверка, что уведомление отображается корректно, не ломает UI, а его тап ведёт в нужное место.
- Переключение сети (Wi-Fi ↔ 4G/5G, потеря связи) — приложение должно обрабатывать изменения, возможно, показывать сообщение об ошибке или переподключаться.
- Разряд батареи и режим энергосбережения — проверка работы при низком заряде и при активации системного режима энергосбережения (может ограничивать фоновую активность).
- Переход в фоновый режим (кнопка Home, переключение приложений) — приложение должно сохранить своё состояние (данные на форме, позиция в игре) для последующего восстановления.
- Прерывания от системы (алерт низкой памяти, обновление ОС).
Что проверять:
- Сохранность данных и состояния UI.
- Корректность жизненного цикла (пауза/возобновление).
- Отсутствие утечек памяти и крешей.
Ответ 18+ 🔞
А, слушай, вот эта вся хуйня с прерываниями — это же просто праздник какой-то! Сидит твой юзер, тыкает в приложении, и тут ему бац — звонок. И вся твоя, блядь, идеально спроектированная логика летит в пизду, если ты не предусмотрел.
Вот смотри, основные сценарии, где всё обычно накрывается медным тазом:
-
Звонок, сука, входящий или исходящий. Представь: чел решает головоломку или видео смотрит. Раздаётся звонок — приложение должно, как штирлиц, заморозиться. Музыка/видео на паузу, игра остановилась. А после того, как он насобачился с тёщей, всё должно вернуться ровно в то же состояние. Если после звонка игра стартует заново или видео начинает с рекламы — это пиздец, чувак. Пользователь просто удалит это говно.
-
Уведомления, ёпта. Прилетает смска или пуш. Оно должно всплыть аккуратно, не разъебав твой интерфейс в хлам. А самое главное — тап по этому уведомлению должен вести именно туда, куда обещал. Если рекламировал скидку на кроссовки, а открывается главный экран — это пидарас шерстяной поступил, а не разработчик.
-
Сеть туда-сюда. Сидел на Wi-Fi, вышел на улицу — переключилось на 4G. Или вообще связь пропала. Приложение не должно просто взять и вылететь с крешем, как последняя мартышлюшка. Должно или переподключиться молча, или вежливо сказать: «Э, сабака сука, интернета нет!». Данные не должны потеряться. Заполнял анкету на 10 полей — всё должно сохраниться.
-
Батарея сдохла или режим энергосбережения. Система начинает хуярить все фоновые процессы. Твоё фоновое обновление контента или синхронизация может просто сдохнуть. Надо проверить, что в этом режиме приложение не превращается в тыкву, а хотя бы сохраняет то, что было.
-
Ушёл в фон (кнопка Home). Это, блядь, самый частый кейс! Нажал Home, через час вернулся. Всё должно быть на своих местах: несохранённый текст в поле ввода, позиция в ленте, уровень в игре. Если после этого юзер видит сплеш-скрин и заново логинится — доверия ебать ноль. Ты облажался.
-
Системные пиздели. Алерт «памяти мало» или там обновление системы накатилось. Приложение должно это пережить, не истекая слезами и крешами.
На что смотреть, чтобы не оказаться мудаком?
- Данные не потерялись? Это раз.
- Жизненный цикл (onPause/onResume) не поехал? Это два.
- Память не течёт и приложение не вылетает? Это три, и это овердохуища важно.
Короче, если это не тестировать, то в продакшене будет волнение ебать, когда начнут сыпаться багрепорты «ваше приложение — говно». А всё почему? Потому что какой-то звонок всё сломал.