- PVSM.RU - https://www.pvsm.ru -
Прежде чем вдаваться в подробности, приведу немного контекста.
Почему так долго? Позвольте мне объяснить природу бага и хронологические этапы его устранения.
При выполнении регрессионного теста в своём приложении мы обнаружили проблему.
В нашем приложении есть режим карты, в котором при нажатии на человечка он предоставляет точную ссылку на приложение GoogleMap и показывает изображение улиц.
Однако вместо загрузки экрана улиц приложение Google Map как будто продолжало загрузку!
В случае возникновения таких проблем сложно доказать наличие бага и его местонахождение. Это может быть:
Разумеется, это очень легко доказать, выполнив тестирование на разных устройствах, с разными Android SDK и так далее.
Теперь, когда мы доказали, что проблема стабильно возникает вне зависимости от Android SDK, устройства и сети, то как найти причину бага?
В 99% случаев баг оказывается на стороне нашего приложения.
Убедившись, что это проблема, необходимо сузить её для выявления первопричины.
Сложность в том, что есть Webview (внутри нашего приложения) и приложение Google Maps. И то и другое — продукты Google. У нас нет доступа к коду.
Получив всю эту информацию, мы всё равно не доказали, что это баг Google. Возможно, он возникает из-за того, как мы используем Map View.
Несмотря на то, что у нас нет кода, чтобы подтвердить проблему, мы знаем, что это проблема с точной ссылкой (deep link). Поэтому мы занялись поиском и нашли пример кода Google для того, как создавать точные ссылки напрямую в Google Map Street View [2].
Благодаря этому, мы можем собрать простой пример приложения, демонстрирующий проблему, и для этого нужно минимальное количество кода, показанное ниже!
При помощи этого кода мы можем продолжить исследовать проблему.
Позже мы выяснили, что проблема проявляется не постоянно. И оказалось, что она возникает только в отдельных версиях Google Maps.
После этого нам стало понятно, что в приложении Google Maps что-то поменялось между версиями 11.44.0905 и 11.57.5801, и это стало причиной проблемы.
Подробнее прочитать об этой проблеме и её отладке можно здесь: https://medium.com/mobile-app-development-publication/debugging-google-maps-app-issue-on-android-8a4fa62e2c28 [3].
Итак, теперь у нас есть:
Очевидно, что баг на стороне Google. Это их проблема.
Поэтому мы сообщили о ней в отчёте https://issuetracker.google.com/issues/261816912 [1].
Но этого недостаточно. По моему опыту отправки отчётов об ошибках в Google, с ними чаще всего ничего не делают.
В данном случае мне казалось, что на стороне Google она не получит высокого приоритета, потому что:
Мы часто получаем отзывы по нашему приложению (с одной звездой), в которых пользователи пишут, что Street View не работает, не понимая, что возникшая у них проблема связана с Google Maps, а не с нашим приложением.
Из-за наличия этого бага Google ничего не теряет.
Чтобы получить больше внимания Google, нужно не просто опубликовать стандартную Google Issue, а отправить issue через Google Developer Console.
https://console.cloud.google.com/google/maps-apis/support [4]
Я отправил через неё issue и написал соответствующий отчёт. Писать отчёты сюда более эффективно, потому что они отслеживаются при помощи Google Console Issue.
Я подумал, что сделал всё, ведь я чётко описал проблему и надеялся, что Google займётся ею.
Уже почти настало Рождество и я взял долгий отпуск. Я думал, что когда вернусь из отпуска, ситуация сдвинется.
Вернувшись из отпуска в конце февраля, я заметил, что:
Я сразу проверил последнюю версию приложения Google Maps на наличие проблемы. К моему разочарованию, последняя на то время версия Google Maps (11.66.0602) по-прежнему проявляла признаки той же проблемы.
Я решил написать электронное письмо представителю Google, чтобы он помог нам отправить отчёт через Developer Console. К счастью, на наш запрос кто-то быстро отреагировал.
Я написал письмо, сообщив, что разочарован закрытием issue без малейших обновлений по ней; при этом нас не уведомили о причинах закрытия, а проблема в приложении сохраняется.
Я искренне благодарен представителю Google, терпеливо мне отвечавшему.
У меня возникли следующие вопросы:
Очевидно, Google отвечает на консольные issue [4] не на странице самой issue. Компания отправляет электронные письма от cloudsupport@google.com [5].
К сожалению, это письмо было отфильтровано механизмом защиты от спама. Поэтому я не получил письмо, отправленное мне ещё в декабре.
В ответе говорилось, что это не проблема Google Maps API, поэтому для решения его перенаправили в другую команду.
И поскольку я не отвечал им на issue в течение трёх дней, её закрыли.
Полученный урок: проверять электронную почту от cloudsupport@google.com [5] после отправки консольной issue [4].
Я получил ответ от Google, в котором говорится:
Хотя эта рекомендация кажется хорошей (то есть вместо того, чтобы использовать Street View в приложении Google Maps, мы можем реализовать Street View внутри своего приложения), проблема на самом деле не в этом.
Прочитав рекомендацию, я поразмыслил, можно ли её реализовать. Но это было непрактично.
Учитывая всё это, я ответил представителю Google, что мы не хотим добавлять StreetView в своё приложение.
Нам просто нужна была точная ссылка на Google Maps для отображения StreetView, как это показано в примере кода [2] Google.
К счастью, представитель Google понял проблему и сообщил о ней команде Google Maps.
Полученный урок: не принимайте рекомендацию как данное. Прочитайте её и поймите, что требуется вам. И профессионально ответьте разумной рекомендацией Google.
Учитывая, что со времени закрытия предыдущей консольной issue [4] прошло несколько месяцев, мне пришлось открыть новую консольную issue [4]. Разумеется, я присвоил issue максимальный приоритет, учитывая постоянный низкий рейтинг, который давали пользователи в отзывах к нашему приложению. Но в Google приоритет понизили до «P3 · Medium Impact — Service Partially Impaired». Это произошло в конце февраля. Поэтому я стал ждать от Google исправления.
В течение следующего месяца, то есть примерно до конца марта, ещё больше пользователей начало жаловаться на недоступность точной ссылки на StreetView в нашем приложении. Я начал размышлять, как можно действовать дальше, подумывая снова написать электронное письмо представителю Google.
Но прежде чем это сделать, я зашёл проверить консольную issue [4] и обнаружил, что там есть кнопка «Escalate».
Я нажал на кнопку эскалации и описал ситуацию.
Позже я получил ответ от cloudsupport@google.com [5] (теперь я знал, что стоит отслеживать присылаемые с этого адреса письма). В нём говорилось, что была выполнена эскалация issue.
В течение 24 часов я получил ответ, в котором сообщалось, что проблема устранена! И что её устранение запланировано на следующий релиз (дата которого пока не утверждена).
Неудивительно, ведь эта проблема выглядит так, как будто её можно решить за день. Достаточно привлечь к ней внимание, отдав больший приоритет, чем бесконечному количеству других issue.
В публичной issue https://issuetracker.google.com/issues/26181692 [1] тоже это отражено:
Чтобы убедиться, я протестировал последнюю версию Google Maps (11.72.0302, проблема по-прежнему присутствует):
5 апреля, с новым запланированным релизом, Google снова заявила о том, что https://issuetracker.google.com/issues/26181692 [1] запланирована на следующий релиз.
Обратите внимание, что релиз 11 апреля указан по времени США. Насколько мы понимали ситуацию с релизами приложений, это должно было занять день или два.
Поэтому я подождал до 12 апреля, чтобы снова протестировать его.
Чтобы убедиться, что я тестирую приложение с последним исправлением, мы скачали последнюю версию приложения Google Maps (из Google PlayStore), где можно было его обновить.
Я скачал последнюю версию Google Maps (11.73.0301), и тесты показали, что всё хорошо!
Мы благодарны за то, что проблема была устранена. Чтобы это было сделано, мы совершили правильные действия, приведённые ниже:
Тем не менее, для устранения этой проблемы потребовалось четыре месяца. Наверно, это заняло бы гораздо меньше времени, если бы я знал, как себя вести. Вот некоторые из полученных мной уроков:
Как бы то ни было, мы очень благодарны, что Google внимательно изучила наш запрос, длинное описание проблемы (так мы пытались сделать её понятнее) и даже отслеживала проблему в нескольких отделах (например, команда Google Maps API и команда приложения Google Maps — это два разных отдела).
Мы осознаём, что у приложения, используемого миллионами пользователей, в бэклоге могут быть тысячи issue, поэтому команде разработчиков нужно в первую очередь обращать внимание на те, которые нужно устранять очень быстро. Поэтому я благодарен команде Google за устранение проблемы и за завершение наших мучений.
Пол-лимона подарков от RUVDS. Отвечай на вопросы и получай призы 🍋 [9]
Автор:
ru_vds
Источник [10]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/google-maps/384507
Ссылки в тексте:
[1] https://issuetracker.google.com/issues/261816912: https://issuetracker.google.com/issues/261816912
[2] пример кода Google для того, как создавать точные ссылки напрямую в Google Map Street View: https://developers.google.com/maps/documentation/urls/android-intents#kotlin_16
[3] https://medium.com/mobile-app-development-publication/debugging-google-maps-app-issue-on-android-8a4fa62e2c28: https://medium.com/mobile-app-development-publication/debugging-google-maps-app-issue-on-android-8a4fa62e2c28
[4] https://console.cloud.google.com/google/maps-apis/support: https://console.cloud.google.com/google/maps-apis/support
[5] cloudsupport@google.com: mailto:cloudsupport@google.com
[6] google.com/maps: https://google.com/maps
[7] https://developers.google.com/maps/documentation/android-sdk/streetview: https://developers.google.com/maps/documentation/android-sdk/streetview
[8] потребует от нас дополнительной оплаты: https://developers.google.com/maps/billing-and-pricing/pricing
[9] Пол-лимона подарков от RUVDS. Отвечай на вопросы и получай призы 🍋: https://habr.com/ru/specials/731732/
[10] Источник: https://habr.com/ru/companies/ruvds/articles/733072/?utm_source=habrahabr&utm_medium=rss&utm_campaign=733072
Нажмите здесь для печати.