Баг-репорт - это инструкция, как воспроизвести то, что вы уже видели. Он удался, когда человек, которого рядом не было, добивается того же самого с первой попытки, и он провалился, когда этому человеку приходится вернуться и задать вам вопрос.

Всё дальнейшее написано из этой одной проверки. Семь вещей, на которые репорт обязан ответить, шаблон, который спрашивает их по порядку, и один настоящий репорт, переписанный из той версии, которую вернули бы обратно.

Если вам нужны не сами требования, а объяснение, почему репорты не работают, соседняя статья про десять частых ошибок в баг-репортах разбирает привычки, которые стоят больше всего времени.

На что репорт обязан ответить

Заголовок

Заголовок читают много раз, а открывают один. Он появляется в поиске, на дейли, в релизных заметках и в списке, который человек просматривает, выбирая, что взять. Пишите его как то, что сломалось, плюс где или когда, плюс деталь, которая отличает ваш случай от работающего случая всех остальных.

Слабо
Вход сломан
Лучше
Кнопка входа не реагирует после ввода учётных данных в Firefox 121, Windows 11

Шаги

Пронумеруйте их и начните с состояния, до которого дойдёт кто угодно. Не “зайди в мой аккаунт”, а вход, данные и каждое действие в том порядке, в каком вы его выполняли. Закончите тем, что вы увидели, чтобы читатель понял, что дошёл.

1. Открыть https://example.com/login
2. Ввести почту test@example.com и пароль TestPass123!
3. Нажать Войти
4. Наблюдение: кнопка ненадолго показывает загрузку и возвращается в обычный вид. Перехода нет.

Отдайте это тому, кто бага не видел. Если он о чём-то спросит, ответ и есть ваш пропущенный шаг.

Ожидаемое и фактическое поведение

Напишите оба. “Вход не работает” предполагает, что читатель знает, как выглядит работающий вход, а иногда то, о чём вы сообщаете, оказывается правилом, о котором вы не знали.

Ожидается
После успешного входа пользователя перенаправляет на /dashboard
Фактически
Кнопка грузится около секунды, возвращается в обычное состояние, страница не меняется

Окружение

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

Последний Chrome - это не версия. В день, когда вы это пишете, она означает одно, а в день, когда это читают, другое.

Наглядные доказательства

Скриншот сразу закрывает вопрос про вёрстку или текст. Запись лучше для всего, где важны время, анимация или последовательность. Снимайте всё окно, а не сломанный угол: адресная строка, консоль и окружающая страница часто и есть то место, где лежит ответ.

Консоль и вкладка сети

Первое, о чём просит разработчик, и последнее, что попадает в большинство репортов. Откройте инструменты разработчика до того, как закроете вкладку: F12 или Cmd + Option + I на Mac.

Копируйте текст ошибки, а не фотографируйте его, чтобы по нему можно было искать, и отметьте статус и путь любого упавшего запроса.

POST https://example.com/api/auth/login 403 (Forbidden)
Error: Authentication failed: Invalid CSRF token
    at login.js:45

Влияние

Приоритет - это не то же самое, что ваша срочность, и репорт, который не даёт никакого сигнала, разбирают по принципу “кто громче”. Дайте факты, по которым решение примет кто-то другой: сколько людей задето, замешаны ли деньги или данные, есть ли обходной путь и работало ли это раньше.

“Блокирует вход всем пользователям Firefox, обхода нет, началось после сегодняшнего дневного релиза” тревожнее, чем “срочно”, и его скорее возьмут сегодня.

Шаблон

# Баг-репорт

## Заголовок
[Ясный, описательный заголовок - что сломалось и где]

## Описание
[Краткий обзор проблемы - 1-2 предложения]

## Шаги воспроизведения
1. [Первый шаг - из известного состояния]
2. [Второй шаг - точно назовите действия]
3. [Третий шаг - укажите использованные данные и значения]
4. [Дополнительные шаги по необходимости]
5. [Последний шаг, который вызывает баг]

## Ожидаемое поведение
[Что должно происходить по замыслу или логике]

## Фактическое поведение
[Что происходит на самом деле - опишите симптомы]

## Окружение
- **Браузер:** [Название и версия браузера]
- **Операционная система:** [Система и версия]
- **Устройство:** [Компьютер или модель мобильного]
- **Разрешение экрана:** [Если проблема в вёрстке]
- **Статус пользователя:** [Вошёл или нет, роль]

## Наглядные доказательства
[Приложите скриншоты или видео]
- Скриншот 1: [Описание]
- Скриншот 2: [Описание]
- Видео: [Ссылка или вложение]

## Ошибки консоли
```
[Вставьте ошибки из консоли браузера - F12 → вкладка Console]
```

## Проблемы сети
[Упавшие запросы к API из вкладки Network - F12 → Network]

## Влияние и серьёзность
- **Серьёзность:** [Критическая/Высокая/Средняя/Низкая]
- **Затронутые пользователи:** [Все / Мобильные / Определённая роль / и т. д.]
- **Влияние на бизнес:** [Потеря выручки / Нагрузка на поддержку / и т. д.]
- **Обходной путь:** [Да/Нет - если да, опишите]

## Дополнительный контекст
- **Частота:** [Каждый раз / Иногда / Редко]
- **С какого момента:** [Только что / После обновления / С [дата]]
- **Связанные задачи:** [Ссылки на похожие баги]
- **Прочие заметки:** [Любая другая полезная информация]

## Чек-лист
- [ ] Я проверил это в чистом окружении (инкогнито или приватное окно)
- [ ] Я привёл шаги воспроизведения
- [ ] Я указал данные об окружении
- [ ] Я приложил скриншоты или видео
- [ ] Я посмотрел ошибки в консоли
- [ ] Я проверил, не сообщали ли об этом раньше
Шаблон баг-репортаbug-report-template.ru.txt3,2 КБСкачать

Один и тот же баг, описанный дважды

Первая версия - та, которая обычно и приходит. Вторая - тот же человек, тот же дефект, четырьмя минутами позже.

Слабо
Вход сломан. Я не могу войти. Почините уже!!!
Лучше
Кнопка входа не реагирует после ввода учётных данных в Firefox 121, Windows 11

Второй репорт несёт всё остальное: четыре шага выше, ожидаемое и фактическое поведение, Firefox 121 на Windows 11 Pro при 1920x1080 в приватном окне без расширений, два скриншота и пятнадцатисекундную запись, ошибку CSRF из консоли и одну строку о серьёзности - все пользователи, обхода нет, началось после выкладки в 14:30.

Ничто из этого не потребовало разбирательств. Всё было на экране, пока баг происходил, и каждый кусочек исчез в тот момент, когда вкладку закрыли.

Откуда берётся контекст

Посмотрите, из чего состоит второй репорт. Заголовок, шаги и ожидаемое поведение - это суждение, и оно ваше. Окружение, скриншот, ошибка консоли и упавший запрос - вообще не суждение. Это были факты о браузере в тот момент, когда всё пошло не так, и записать их вручную означает уйти со страницы, найти строку версии и перепечатать ошибку.

Session Replay

Бесплатное расширение для Chrome. Один клик на странице, которая ведёт себя не так, захватывает скриншот, консоль и сетевой журнал и отдаёт вам ссылку, которую можно вставить в задачу.

Установить расширение

Оно не напишет ваш заголовок, не решит за вас серьёзность и не разделит два дефекта на две задачи. Это те части, для которых нужен человек, который был рядом.

Что почитать дальше