Какие основные шаги необходимо выполнить при обнаружении программной ошибки (бага)?

Ответ

При обнаружении бага рекомендуется следовать структурированному процессу для его эффективной фиксации и устранения.

Основные шаги:

  1. Локализовать и воспроизвести. Убедиться, что ошибка стабильно воспроизводится в определенном окружении (ОС, браузер, версия приложения).
  2. Задокументировать. Создать четкое описание в системе отслеживания ошибок (Jira, GitHub Issues и т.д.).
  3. Определить приоритет и серьезность. Оценить влияние на пользователей и бизнес-процессы.
  4. Назначить и отслеживать. Назначить задачу ответственному разработчику и отслеживать статус исправления.

Ключевые элементы хорошего баг-репорта:

  • Заголовок: Кратко и ясно.
  • Шаги воспроизведения: Последовательные, точные действия.
  • Фактический результат: Что происходит на самом деле.
  • Ожидаемый результат: Что должно происходить согласно требованиям.
  • Окружение: Версия ОС, браузера, приложения и т.д.
  • Доказательства: Скриншоты, логи, видео.

Пример структуры баг-репорта:

Заголовок: Кнопка "Войти" не реагирует на нажатие на iOS 15.5

Окружение:
- Устройство: iPhone X
- ОС: iOS 15.5
- Версия приложения: 2.1.0

Шаги воспроизведения:
1. Запустить приложение.
2. Перейти на экран авторизации.
3. Нажать на кнопку "Войти".

Ожидаемый результат: Открывается форма ввода логина и пароля.
Фактический результат: Кнопка не реагирует на нажатие, форма не открывается.

Вложения: screen_recording_ios_login.mp4

Ответ 18+ 🔞

А, ну вот, опять эта муть про баг-репорты! Слушай, как будто мы тут в детском саду, а не в аду разработки. Ну ладно, раз уж надо, давай разжуём эту пиздопроебищну, но по-человечьи.

Представь: ты сидишь, пьешь кофе, и тут — бац! — приложение накрывается медным тазом. Первая мысль: «Ёпта, опять эти пидары-разработчики накосячили!». Но нет, чувак, бздеть не надо. Надо действовать по науке, а то тебе в ответ прилетит «НЕ ВОСПРОИЗВОДИТСЯ» и волнение ебать.

Итак, как не быть мудаком и правильно сдать баг:

  1. Поймай и придуши. Не просто «оно не работает». Ты должен этого гада, этот баг, взъебать так, чтобы он стабильно вылезал на одном и том же месте. «На моём Макбуке не работает» — это не локализация, это пиздёж. На каком именно? В каком браузере? После каких действий? Воспроизведи чётко, как в лаборатории. Если не воспроизводится — может, ты просто еблан и случайно кнопку не туда тыкнул?

  2. Оформи, как в ЗАГСе. Не пиши в слак «чё-то сломалось». Иди в Jira, GitHub, куда там у вас принято, и создай тикет. И не просто «Баг», а нормальный заголовок. «Кнопка "Сохранить" отправляет в пизду все данные вместо сохранения» — вот это уже теплее.

  3. Оцени масштаб трагедии. Серьёзность и приоритет — это не просто галочки. Если из-за бага нельзя купить, это — пиздец, срочно чинить. Если опечатка в справке на 150-й странице — да похуй, пофиксим когда-нибудь. Не забивай все баги как «критичные», а то тебя перестанут воспринимать всерьёз, доверия ебать ноль.

  4. Скинь на того, кто виноват. Назначь задачу на разработчика. И следи, чтобы он её не проёбывал. Вежливо, но настойчиво. «Э, бошка, думай, когда пофиксишь?».

А теперь, чтобы тебя не послали нахуй с твоим репортом, впиши туда вот это:

  • Заголовок: Коротко и ясно. «Не работает» — хуйня. «Падает при нажатии на "Отправить" с пустым полем "Email"» — вот это дело.
  • Шаги: Как для идиота. «1. Открыл сайт. 2. Скролльнул вниз. 3. Нашел форму. 4. Оставил поле "Email" пустым. 5. Нажал "Отправить". 6. Увидел, как всё ебнулось». Без воды.
  • Что получил vs Что хотел: «Фактический результат: приложение крашнулось с ошибкой "NullPointerException". Ожидаемый результат: должно появиться сообщение "Поле обязательно для заполнения"».
  • Где гадил: ОС, браузер, версия приложения, разрешение экрана — вся эта хуйня. Иногда баг вылазит только в Хроме под Виндой, а в Сафари на Маке — всё ок. Волшебство, блядь.
  • Доказательства, что ты не бздун: Скриншот, видео, логи. Особенно логи! «Вот, смотри, сука, в консоли прямо перед крашем написано вот эта хуйня!».

Вот тебе пример, как надо:

Заголовок: Кнопка "Войти" игнорирует нажатие на iOS 15.5, будто её нет

Окружение:
- Девайс: iPhone X (ну или что там у тебя, пидарас шерстяной)
- ОС: iOS 15.5
- Версия аппа: 2.1.0

Шаги воспроизведения:
1. Запустил приложение.
2. Ткнул на экран логина.
3. Целенаправленно, одним пальцем, с чувством, нажал на кнопку "Войти".

Ожидаемый результат: Должна выехать форма для ввода логина/пароля.
Фактический результат: Кнопка ведёт себя как стена. Никакой реакции, анимации, ничего. Просто кусок бесполезного интерфейса.

Вложения: video_ios_login_issue.mov (там видно, как я её тыкаю, а она меня игнорит, хитрая жопа)

Вот так, а не «ой, у меня чё-то не кликается». С таким подходом у тебя и разработчики уважать начнут, и баги быстрее фиксить. А то ведь реально, народ безмозглый, блядь, безмозглый в пизду — пишут «сломалось» и ждут чуда.