[Ольга Назина] Техники локализации плавающих дефектов (2019)
Ох уж эти мистические «плавающие ошибки». Сколько вокруг них мифов! Но, когда причина найдена, всегда оказывается, что нет плавающих багов, а есть недолокализованные.
Поэтому мы будем учиться локализовывать баги, которые «не воспроизводятся». Учиться искать причину проблемы без помощи разработчика. Учиться смотреть в код и искать причину снаружи. Делить бисекционно и читать логи. В общем, всё, что нужно для воспроизведения!
Воспроизведение ошибки
Если вы не можете вопроизвести ошибку, то:
Прочитайте логи — если есть доступ к логам, всегда в первую очередь смотрим туда! Если у нас веб-приложение, проверьте, что ушло с клиента на сервер.
Проверьте граничные значения — баги часто тусят на границах.
Попробуйте пойти «от обратного» — подумать, как получить саму проблему. Этот метод хорошо работает для багов с кэшом
Составьте таблицу отличий — у вас то все работает. Что отличает ваш кейс от падающего?
Что записывать в таблицу отличий:
Состояние объекта.
Действия, которые с ним выполняли.
Устройство, на котором воспроизводится.
Время выполнения действия (какой релиз?).
Способ воспроизведения (GUI, API).
Количество открытых вкладок в браузере.
В отлове багов помогает понимание того, где копятся баги и какого рода: как влияет на работу системы concurrency, миграция данных, перетипизация переменной внутри кода… Зная последствия, вы будете понимать, что именно записать в таблицу отличий.
Локализация ошибки
Если вы можете воспроизвести баг, но не можете локализовать (слишком много шагов воспроизведения / слишком большой файл, внутри которого есть ошибка), то:
Посмотрите код — возможно, это будет самым быстрым решением.
Используйте бисекционное деление.
Придумайте теорию (на баг влияет то и то) — подтвердите ее, а потом попробуйте опровергнуть.
Выкиньте лишнее из шагов — возможно, именно это сбивает вас с толку
На курсе мы будем рассматривать каждую из техник. Вы сможете сразу применить ее на практике на специально подобранных домашних заданиях, которые показывают именно данную технику или конкретную проблему (миграции данных, стыка интеграции и т.д.)
Продажник:
Скачать: Оформить VIP Подписку и открыть доступ к этой и другим темам.
Ох уж эти мистические «плавающие ошибки». Сколько вокруг них мифов! Но, когда причина найдена, всегда оказывается, что нет плавающих багов, а есть недолокализованные.
Поэтому мы будем учиться локализовывать баги, которые «не воспроизводятся». Учиться искать причину проблемы без помощи разработчика. Учиться смотреть в код и искать причину снаружи. Делить бисекционно и читать логи. В общем, всё, что нужно для воспроизведения!
Воспроизведение ошибки
Если вы не можете вопроизвести ошибку, то:
Прочитайте логи — если есть доступ к логам, всегда в первую очередь смотрим туда! Если у нас веб-приложение, проверьте, что ушло с клиента на сервер.
Проверьте граничные значения — баги часто тусят на границах.
Попробуйте пойти «от обратного» — подумать, как получить саму проблему. Этот метод хорошо работает для багов с кэшом
Составьте таблицу отличий — у вас то все работает. Что отличает ваш кейс от падающего?
Что записывать в таблицу отличий:
Состояние объекта.
Действия, которые с ним выполняли.
Устройство, на котором воспроизводится.
Время выполнения действия (какой релиз?).
Способ воспроизведения (GUI, API).
Количество открытых вкладок в браузере.
В отлове багов помогает понимание того, где копятся баги и какого рода: как влияет на работу системы concurrency, миграция данных, перетипизация переменной внутри кода… Зная последствия, вы будете понимать, что именно записать в таблицу отличий.
Локализация ошибки
Если вы можете воспроизвести баг, но не можете локализовать (слишком много шагов воспроизведения / слишком большой файл, внутри которого есть ошибка), то:
Посмотрите код — возможно, это будет самым быстрым решением.
Используйте бисекционное деление.
Придумайте теорию (на баг влияет то и то) — подтвердите ее, а потом попробуйте опровергнуть.
Выкиньте лишнее из шагов — возможно, именно это сбивает вас с толку
На курсе мы будем рассматривать каждую из техник. Вы сможете сразу применить ее на практике на специально подобранных домашних заданиях, которые показывают именно данную технику или конкретную проблему (миграции данных, стыка интеграции и т.д.)
Продажник:
Скрытое содержимое. Вам нужно войти или зарегистрироваться.
Скачать: Оформить VIP Подписку и открыть доступ к этой и другим темам.
Скрытое содержимое. Вам нужно войти или зарегистрироваться.
Последнее редактирование модератором: