Как снизить количество багов и сбоев в продакшене
Что проверяют
Есть ли у вас представление обо всей цепочке качества мобильного релиза, а не только о тестах. Интервьюер помнит главное отличие Android от бэкенда: выпущенную сборку нельзя откатить, пользователи остаются на ней неделями. Следом просят вспомнить свой последний инцидент и что после него поменяли.
Как отвечать
Стройте ответ слоями, от кода до прода:
- до мержа: Android Lint и detekt в CI как блокирующая проверка, Kotlin null safety без
!!, код-ревью с вниманием к жизненному циклу и потокам; - тесты: юнит-тесты на JUnit и MockK для ViewModel и бизнес-логики, Robolectric там, где нужен Android без устройства, UI-тесты на Compose Testing или Espresso для критических экранов, скриншот-тесты через Paparazzi или Roborazzi против регрессий вёрстки;
- устройства: прогон на матрице в Firebase Test Lab или своих эмуляторах разных API level, проверка смерти процесса через
Don't keep activities, поворотов и тёмной темы; - выпуск: внутренний и закрытый треки Play Console, затем поэтапное развёртывание на небольшой процент аудитории с возможностью остановить раскатку. Рискованные фичи под флагами Remote Config, чтобы выключить их без нового релиза;
- наблюдение: Crashlytics с загруженным mapping-файлом R8, иначе стектрейсы нечитаемы. В Android vitals следите за user-perceived crash rate и ANR rate: превышение порогов Google Play (1,09% и 0,47%) снижает видимость приложения в магазине.
Закончите процессом: у каждого серьёзного сбоя разбор без поиска виноватых и конкретное действие, например новый тест или правило Lint. Приведите свой пример с цифрами: как изменилась доля crash-free users после внедрения поэтапной раскатки или флагов.
Где спотыкаются
Отвечают «писать больше тестов» без приоритетов. Покрытие 90% на геттерах не спасёт, если не проверен сценарий восстановления после смерти процесса.
Игнорируют ANR и non-fatal ошибки. Приложение не падает, но замерзает на главном потоке, и vitals учитывает это так же строго.
Выкатывают на 100% сразу и надеются на хотфикс. Хотфикс проходит ревью Play и доезжает до пользователей не мгновенно, поэтому поэтапная раскатка и флаги важнее скорости исправления.