
Баг-репорт - это инструкция, как воспроизвести то, что вы уже видели. Он удался, когда человек, которого рядом не было, добивается того же самого с первой попытки, и он провалился, когда этому человеку приходится вернуться и задать вам вопрос.
Всё дальнейшее написано из этой одной проверки. Семь вещей, на которые репорт обязан ответить, шаблон, который спрашивает их по порядку, и один настоящий репорт, переписанный из той версии, которую вернули бы обратно.
Если вам нужны не сами требования, а объяснение, почему репорты не работают, соседняя статья про десять частых ошибок в баг-репортах разбирает привычки, которые стоят больше всего времени.
На что репорт обязан ответить
Заголовок
Заголовок читают много раз, а открывают один. Он появляется в поиске, на дейли, в релизных заметках и в списке, который человек просматривает, выбирая, что взять. Пишите его как то, что сломалось, плюс где или когда, плюс деталь, которая отличает ваш случай от работающего случая всех остальных.
- Слабо
- Вход сломан
- Лучше
- Кнопка входа не реагирует после ввода учётных данных в 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]
## Влияние и серьёзность
- **Серьёзность:** [Критическая/Высокая/Средняя/Низкая]
- **Затронутые пользователи:** [Все / Мобильные / Определённая роль / и т. д.]
- **Влияние на бизнес:** [Потеря выручки / Нагрузка на поддержку / и т. д.]
- **Обходной путь:** [Да/Нет - если да, опишите]
## Дополнительный контекст
- **Частота:** [Каждый раз / Иногда / Редко]
- **С какого момента:** [Только что / После обновления / С [дата]]
- **Связанные задачи:** [Ссылки на похожие баги]
- **Прочие заметки:** [Любая другая полезная информация]
## Чек-лист
- [ ] Я проверил это в чистом окружении (инкогнито или приватное окно)
- [ ] Я привёл шаги воспроизведения
- [ ] Я указал данные об окружении
- [ ] Я приложил скриншоты или видео
- [ ] Я посмотрел ошибки в консоли
- [ ] Я проверил, не сообщали ли об этом раньше
Один и тот же баг, описанный дважды
Первая версия - та, которая обычно и приходит. Вторая - тот же человек, тот же дефект, четырьмя минутами позже.
- Слабо
- Вход сломан. Я не могу войти. Почините уже!!!
- Лучше
- Кнопка входа не реагирует после ввода учётных данных в Firefox 121, Windows 11
Второй репорт несёт всё остальное: четыре шага выше, ожидаемое и фактическое поведение, Firefox 121 на Windows 11 Pro при 1920x1080 в приватном окне без расширений, два скриншота и пятнадцатисекундную запись, ошибку CSRF из консоли и одну строку о серьёзности - все пользователи, обхода нет, началось после выкладки в 14:30.
Ничто из этого не потребовало разбирательств. Всё было на экране, пока баг происходил, и каждый кусочек исчез в тот момент, когда вкладку закрыли.
Откуда берётся контекст
Посмотрите, из чего состоит второй репорт. Заголовок, шаги и ожидаемое поведение - это суждение, и оно ваше. Окружение, скриншот, ошибка консоли и упавший запрос - вообще не суждение. Это были факты о браузере в тот момент, когда всё пошло не так, и записать их вручную означает уйти со страницы, найти строку версии и перепечатать ошибку.
Session Replay
Бесплатное расширение для Chrome. Один клик на странице, которая ведёт себя не так, захватывает скриншот, консоль и сетевой журнал и отдаёт вам ссылку, которую можно вставить в задачу.
Оно не напишет ваш заголовок, не решит за вас серьёзность и не разделит два дефекта на две задачи. Это те части, для которых нужен человек, который был рядом.