Какие действия при баге, воспроизводящемся один из пяти раз и красящем приложение
Что проверяют
Не бросите ли вы нестабильный баг со статусом «не воспроизводится» и умеете ли сузить условия. Краш даже в одном случае из пяти для пользователя серьёзная проблема. Следом спрашивают, какую серьёзность и приоритет вы поставите и что приложите к задаче.
Как отвечать
Сначала зафиксируйте факт: баг заводится сразу, частота указывается честно, например «4 из 20 попыток на сборке 3.12.0». Дальше работа идёт в трёх направлениях:
- данные о падении: стектрейс важнее любых догадок. На Android это
adb logcatиadb bugreport, на iOS краш-логи в Xcode (Devices and Simulators, Organizer), в проде события в Firebase Crashlytics или Sentry. По стектрейсу разработчик часто находит причину, даже если вы её не воспроизвели; - поиск закономерности: меняйте по одному фактору и считайте частоту. Типичные источники плавающих крашей: гонки при быстрых повторных нажатиях, медленная или пропадающая сеть (помогает троттлинг), нехватка памяти и восстановление после выгрузки из фона, поворот экрана, холодный и тёплый старт, конкретные данные аккаунта;
- локализация по версиям: проверьте предыдущую сборку. Если там краша нет, поиск сужается до изменений одного релиза.
В баг-репорте: окружение (устройство, ОС, сборка, сеть), шаги, частота, видео, логи и ссылка на событие в краш-репортере. Серьёзность ставится по последствиям: краш это высокий уровень независимо от частоты. Приоритет уже зависит от охвата, и тут помогает метрика crash-free users в проде.
После исправления проверка тоже статистическая. Одного успешного прохода мало: при частоте один из пяти 20 прогонов подряд без краша выпадают примерно в 1% случаев, поэтому меньше двадцати попыток доказательством не считаются.
Где спотыкаются
Закрывают задачу как «не воспроизводится» после двух попыток. При такой частоте пять прогонов подряд без краша случаются примерно в трети случаев.
Пишут «иногда падает» без логов и условий. Такая задача уходит в бэклог и живёт там годами.
Меняют сразу устройство, сеть и аккаунт, а потом не могут сказать, что именно повлияло.