10.1 Основные стратегии
Last updated
Last updated
Тестирование - просто проверка различных этапов работы вашего приложения, а отладка - исследование неожиданного поведения и выяснение первопричины перед исправлением. Так как все случаи разные по определению, есть несколько ключевых принципов, которыми можно руководствоваться во время этого процесса.
Так как у приложения две версии (!!!ЛНК!!!), рекомендуется всегда тестировать и отлаживать приложение в версии разработчика. Во-первых, это та версия, которую вы можете изменять, и поэтому процесс тестирования, изменения и проверки изменений будет происходить гораздо быстрее. Во-вторых, и что более важно, при отладке процессов, работающих с данными, в базу данных приложения будут вноситься изменения. Если вы не уверены в этих изменениях, гораздо безопаснее модифицировать данные в версии разработчика, в то время как изменение данных в живой версии, скорее всего, повлияет на реальных пользователей.
Тем не менее, может произойти так, что ошибка появляется только в живой версии, особенно если о ней сообщает пользователь. В таком случае, мы рекомендуем сделать две вещи:
Попробуйте установить последнюю версию вашего приложения, если это безопасно. Если ошибка встретилась в живом режиме, а не в режиме разработки, это может значить, что она уже устранена в режиме разработки, и нужно посмотреть, исправит ли проблему развертывание последней версии.
Если ошибка встречается у конкретного пользователя, это может происходить из-за особых данных, которые он сохранил в живом режиме. Bubble позволяет переносить данные между версиями. В таком случае, мы рекомендуем скопировать живую базу в базу разработчика. Это позволит версии разработчика работать с теми же данными, что и живая, что приблизит отладку к рабочей версии.
Для копирования базы данных между версиями перейдите во вкладку Данные и кликните по "App Data"/"Данные приложения". По кнопке "Copy and restore database"/"Скопировать и восстановить базу данных" вы можете копировать базу между версиями и возвращать её в определенную точку во времени (процесс восстановления будет описан в главе Поддержка приложения (!!!ЛНК!!!) ).
Вы можете решить скопировать только один тип данных (например, Пользователей приложения). Тем не менее, учтите, что копирование только одного типа может привести к несоответствию типов, если пользователь содержит указатель на сущность, которая не была скопирована. В целом, для отладки мы рекомендуем копировать всю базу данных из живой версии в версию разработчика, если этот шаг безопасен.
Когда вы сталкиваетесь с ошибкой или когда ваше приложение ведет себя не так, как ожидается, лучший способ решения - найти надежный, четкий путь воспроизведения этой ошибки. Это не всегда возможно, но это первый шаг при отладке вашего приложения.
В идеале вам нужно найти в приложении максимально простую и короткую последовательность действий/взаимодействий, которая всегда воспроизводит ошибку.
Хорошим подходом также является попытка воспроизведения ошибки со свежим набором данных. Например, с новым пользователем или новым объектом и т.д. Ошибка может происходить, потому что ваши данные устарели, и если ошибка не воспроизводится с новыми данными, скорее всего, это именно тот случай. Здесь подход к решению отличается тем, что вместо изменения всего процесса, исправление может заключаться в том, чтобы извлечь сущности, которые не удовлетворяют требованиям и приводят к ошибке, и изменить их (подробности об изменении более чем одной сущности за раз см в разделе Массовые операции (!!!ЛНК!!!))
В Bubble есть два основных способа отладки ошибок в зависимости от ситуации. Наиболее распространенный - отладчик (!!!ЛНК!!!), который позволяет запускать процесс по шагам, исследовать элементы и понять, откуда берутся значения полей. Второй инструмент очень полезен для исследования прошлых ошибок - это Логи сервера (!!!ЛНК!!!), которые позволяют в ретроспективе проанализировать то, что произошло в ваших процессах.
Наконец, не забывайте пользоваться опцией "Запуск от имени другого пользователя"/"Run as another user", если пользователь сообщил об ошибке, а у вас не получается её воспроизвести на своем или на тестовом аккаунте.
Команда разработчиков Bubble тратит много времени на тестирование, а также использует автоматические тесты для того, чтобы избегать ошибок. Тем не менее, если вы считаете, что наткнулись на ошибку, которая вызвана не тем, как вы спроектировали приложение и рабочие процессы, а неожиданным поведением функции ядра Bubble, пожалуйста, свяжитесь с нами, и мы изучим вашу проблему. Это не распространяется на плагины, разработанные не командой Bubble. Для решения таких ситуаций рекомендуем обратиться к автору плагина.
Сообщения об ошибках должны отправляться команде Bubble только через инструмент "Отчеты об ошибках", который предложит вам ввести различную необходимую информацию для изучения нашей командой. Перед тем, как сообщать об ошибке, пожалуйста, проделайте несколько действий, чтобы убедиться, что ошибка имеет место.
Перед отправкой отчета, убедитесь в том, что интернет-соединение работает без нареканий и у вас последняя версия браузера.
Сначала проверьте наличие ошибки в режиме инкогнито (в режиме приватного просмотра), так как блокировщики рекламы и расширения браузера могут вмешиваться в работу веб приложений.
Удалите пользовательский код, который вы добавили в HTML элементы, заголовки и т.д.
При заполнении отчета, имейте в виду несколько вещей для быстрого решения проблемы.
Постарайтесь описать проблему как можно более подробно. "Оно не работает, я думаю, здесь ошибка" - недостаточно подробно. Вместо этого, с фразой: "Согласно условию, этот элемент должен быть красным, а вместо этого он зеленый," - гораздо легче иметь дело.
По аналогии с описанным выше способом отладки ваших собственных процессов, чем вы сильнее сузите ошибочный функционал, тем быстрее мы его изучим.
Убедитесь, пожалуйста, в том, что ваши инструкции понятны человеку, который ничего не знает о вашем приложении. Лучшим описанием будет: "нажмите на кнопку А", "введите хх в поле ввода", "нажмите на кнопку В", "наблюдайте проблему".
Постарайтесь прикрепить к форме скриншоты.
Также могут быть полезны видео, но не заменяйте ими письменное описание. Они должны использоваться только в качестве дополнения (и, обычно, необязательны)
Мы понимаем, что ошибки могут разочаровывать и тормозить процесс разработки. Тем не менее, с правильным отчетом вы поможете нам быстро идентифицировать и исправлять их, а когда наша команда исправляет ошибку для вас, она делает это для всего Сообщества.