Каковы основные правила оформления баг-репорта?

Ответ

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

  1. Краткий и информативный заголовок.

    • Пример: "Кнопка 'Отправить' остается неактивной после корректного заполнения формы".
  2. Детальные шаги воспроизведения.

    • Последовательность действий, ведущая к ошибке. Нумерованный список.
    • Пример:
      1. Открыть страницу /login.
      2. Ввести "test@example.com" в поле "Email".
      3. Ввести "password123" в поле "Пароль".
      4. Нажать кнопку "Войти".
  3. Явное указание ожидаемого и фактического результата.

    • Ожидаемо: Пользователь авторизован, происходит редирект на /dashboard.
    • Фактически: Появляется сообщение "Неверные учетные данные", хотя данные верны.
  4. Указание приоритета (Priority) и серьезности (Severity).

    • Severity (влияние на систему): Critical, Major, Minor, Trivial.
    • Priority (очередь исправления): High, Medium, Low.
  5. Описание окружения.

    • ОС, браузер и его версия, версия приложения, устройство (для мобильных).
    • Пример: Windows 11 / Chrome 122.0.6261.112 / Версия приложения: 2.5.1.
  6. Прикрепленные материалы.

    • Скриншоты, видео, логи консоли браузера или сервера.

Пример структурированного отчета:

Заголовок: 404 ошибка при переходе по валидной ссылке на карточку товара.
Окружение: macOS Sonoma / Safari 17.4 / Версия фронтенда: 1.3.0.
Шаги:
1. На главной странице нажать на товар "Смартфон X".
Ожидаемо: Открывается страница товара.
Фактически: Отображается страница "404 Not Found".
Серьезность: Major
Приоритет: High
Вложения: screenshot_404.png, network_log.har

Ответ 18+ 🔞

А, слушай, вот эта тема про баг-репорты — это вообще святое, блядь! Это как прийти к врачу и сказать: «Доктор, у меня тут болит», а он тебе: «А где, сука, болит-то? В жопе или в голове? Покажи пальцем, опиши, какого цвета боль, и не пизди!». Вот так и тут.

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

Первое — заголовок. Это не «Проблема с кнопкой», блядь. Это как крикнуть в толпу: «Пожар в сортире на третьем этаже!». Коротко, ясно, сразу понятно, куда бежать.

Пример: "Форма логина ебёт мозг после ввода спецсимволов в пароль".

Второе — шаги. Это священная инструкция, как довести систему до ручки. Как рецепт, блядь: «Возьми стакан, налей водки, открой рот, вылей». По пунктам, без «потом как бы там ещё чего».

1.  Открыл страницу /upload.
2.  Выбрал файл «моя_хуйня_размером_10гб.zip».
3.  Нажал «Загрузить».
4.  Пошёл пить чай, потому что индикатор завис на 0%.

Третье — что хотел и что получил. Самая драма, ёперный театр! Здесь вся суть конфликта.

  • Ожидал: Файл загружается, появляется зелёная галочка, чувство глубокого удовлетворения.
  • Получил: Индикатор пять часов тупит, потом страница белеет и умирает, а в душе — пустота и ярость. Серьёзность (Severity) — Major, потому что загрузить ничего нельзя. Приоритет (Priority) — High, потому что завтра сдача проекта, а мы нихуя не загрузили.

Четвёртое — где и на чём это вылезло. Это критично, блядь! Баг может плавать только в старом Хроме под Windows 7, а ты всем раскажешь, что всё сломалось. Нужно указать среду, как паспортные данные.

Окружение: Android 14 / Приложение v3.2.1 / Xiaomi Redmi Note 13 Pro.

Пятое — доказательная база. Слов — мало, а вот скрин, где система материт тебя красным текстом, или видео, где она медленно и печально кончается, — это железобетонно. Прикрепляй всё: логи, скрины, да хоть дамп памяти, если умеешь.

Вот, смотри, как это выглядит в сборе, когда всё по уму:

Заголовок: При выборе «Доставка завтра» в корзине появляется цена «NaN руб.».
Окружение: iOS 17.4.1 / Safari / Версия сайта: prod-2.8.
Шаги:
1.  Добавить в корзину любой товар.
2.  Перейти в корзину.
3.  В блоке «Доставка» выбрать опцию «Экспресс (завтра)».
Ожидаемо: Отображается корректная цена доставки, например, «500 руб.».
Фактически: Отображается «NaN руб.», кнопка «Оформить» неактивна.
Серьёзность: Major (блокирует покупку)
Приоритет: High
Вложения: screen_nan.jpg, console_error_log.txt

Вот когда ты так оформляешь, у разработчика не возникает лишних вопросов. Он видит путь, видит пиздец, видит где и на чём — остаётся только сесть и пофиксить. А не гадать на кофейной гуще, что за хуйню ты там опять нашёл. Красота, блядь!