[Ольга Назина] Техники локализации плавающих дефектов (2019)

Виктор Неизвестный

Команда форума
Администратор
Янв 3, 2015
116,467
65,110
1,180
Ох уж эти мистические «плавающие ошибки». Сколько вокруг них мифов! Но, когда причина найдена, всегда оказывается, что нет плавающих багов, а есть недолокализованные.

Поэтому мы будем учиться локализовывать баги, которые «не воспроизводятся». Учиться искать причину проблемы без помощи разработчика. Учиться смотреть в код и искать причину снаружи. Делить бисекционно и читать логи. В общем, всё, что нужно для воспроизведения!

Воспроизведение ошибки
Если вы не можете вопроизвести ошибку, то:
Прочитайте логи — если есть доступ к логам, всегда в первую очередь смотрим туда! Если у нас веб-приложение, проверьте, что ушло с клиента на сервер.
Проверьте граничные значения — баги часто тусят на границах.
Попробуйте пойти «от обратного» — подумать, как получить саму проблему. Этот метод хорошо работает для багов с кэшом
Составьте таблицу отличий — у вас то все работает. Что отличает ваш кейс от падающего?
Что записывать в таблицу отличий:
Состояние объекта.
Действия, которые с ним выполняли.
Устройство, на котором воспроизводится.
Время выполнения sliv-info.com действия (какой релиз?).
Способ воспроизведения (GUI, API).
Количество открытых вкладок в браузере.
В отлове багов помогает понимание того, где копятся баги и какого рода: как влияет на работу системы concurrency, миграция данных, перетипизация переменной внутри кода… Зная последствия, вы будете понимать, что именно записать в таблицу отличий.

Локализация ошибки
Если вы можете воспроизвести баг, но не можете локализовать (слишком много шагов воспроизведения / слишком большой файл, внутри которого есть ошибка), то:
Посмотрите код — возможно, это будет самым быстрым решением.
Используйте бисекционное деление.
Придумайте теорию (на баг влияет то и то) — подтвердите ее, а потом попробуйте опровергнуть.
Выкиньте лишнее из шагов — возможно, именно это сбивает вас с толку
На курсе мы будем рассматривать каждую из техник. Вы сможете сразу применить ее на практике на специально подобранных домашних заданиях, которые показывают именно данную технику или конкретную проблему (миграции данных, стыка интеграции и т.д.)

Спойлер: Программа курса:

Подробнее:


Скачать:
 

Similar threads

О нас

  • Самая крупная образовательная площадка
    с информационными продуктами в рунете!
    Курсы, тренинги, книги, уроки, гайды,
    материалы на различные тематики.

    Вступай в Профессиональный Информационный Клуб!

    ProInfoClub.net © 2015-2024

Меню