Какие действия при жалобе пользователя на краш приложения
Что проверяют
Умеете ли вы превратить жалобу «приложение вылетает» в задачу, которую можно исправить, и не забываете ли про масштаб. Интервьюер хочет увидеть порядок: сначала данные, потом воспроизведение. Следом спрашивают, как понять, одна это жалоба или массовая проблема.
Как отвечать
Каркас из пяти шагов:
- собрать контекст: версия приложения, устройство, версия ОС, время падения с часовым поясом, что делал пользователь, идентификатор аккаунта. Обычно это делает поддержка по вашему шаблону, самого пользователя логи присылать не просят;
- найти падение в данных: Firebase Crashlytics, Sentry, Android vitals в Google Play Console, раздел Crashes в Xcode Organizer. По времени и идентификатору пользователя находится конкретное событие со стектрейсом;
- оценить масштаб: сколько пользователей и сессий затронуто, на каких версиях и устройствах, появилось ли после последнего релиза. Отсюда серьёзность и приоритет;
- воспроизвести: на той же модели и версии ОС, при необходимости на ферме устройств. Если не получается, стектрейс и хлебные крошки из краш-репортера всё равно дают разработчику точку входа;
- завести баг: шаги, окружение, ссылка на событие, частота, скриншоты или видео.
Если краш массовый и пришёл с новым релизом, эскалируйте сразу, не дожидаясь воспроизведения. У команды есть рычаги: остановить поэтапную раскатку в Google Play, поставить на паузу phased release в App Store, выключить фичу через remote config.
После исправления проверьте фикс на исходных условиях, прогоните регрессию затронутой области, а после выхода версии убедитесь, что событие перестало приходить и crash-free rate вернулся к норме. Поддержка должна получить ответ для пользователя, а сценарий стоит добавить в тест-кейсы.
Где спотыкаются
Начинают с попыток воспроизвести наугад и не заглядывают в краш-репортер, где стектрейс уже лежит.
Не оценивают масштаб. Одиночная жалоба и тысяча падений в час после релиза требуют совершенно разной скорости реакции.
Закрывают задачу, когда фикс прошёл на тестовом стенде, и не проверяют метрики прода после выхода версии.