Назначение
Баг-репорт — это заявка на починку дефекта, по которой его воспроизведут и исправят с первого раза, без переписки «а как повторить?». Хороший баг-репорт экономит часы: разработчик видит точные шаги, разницу ожидаемого/фактического и доказательство.
Формула: Шаги воспроизведения → Ожидаемое → Фактическое → Severity/Priority → Окружение → Вложение (лог/скрин/видео).
Подробный шаблон
# <Краткий симптом> ← напр. «Нарезка падает на видео > 10 мин»
## Шаги воспроизведения
1. <точный шаг>
2. <точный шаг>
3. <шаг, на котором проявляется баг>
## Ожидаемое
<что должно было произойти>
## Фактическое
<что произошло на самом деле>
## Severity / Priority
Severity: blocker | critical | major | minor ← насколько серьёзен дефект
Priority: P1 | P2 | P3 ← насколько срочно чинить
## Окружение
ОС / браузер / версия приложения / устройство / учётка.
## Доказательство
Лог / скриншот / запись экрана / трейс.
## Частота
Воспроизводится: всегда | иногда (N из M) | один раз.
Пример 1 — краш
# Нарезка падает на видео длиннее 10 минут
## Шаги воспроизведения
1. Открыть раздел «Shorts».
2. Загрузить видео длительностью 12:30.
3. Нажать «Нарезать».
## Ожидаемое
Видео нарезается на клипы 9:16, появляется список клипов.
## Фактическое
Спиннер крутится ~30 сек, затем «Что-то пошло не так», клипы не создаются.
## Severity / Priority
Severity: critical (ключевая функция не работает) · Priority: P1.
## Окружение
Windows 11 · Chrome 125 · веб-версия 2.3.1 · аккаунт free.
## Доказательство
console: `RangeError: chunk size exceeds limit` (скрин приложен), запись экрана.
## Частота
Воспроизводится: всегда на видео > 10 мин; на коротких — ок.
Пример 2 — визуальный/UX
# Кнопка «Сохранить» обрезана на iPhone SE
## Шаги воспроизведения
1. Открыть карточку инструмента на iPhone SE (узкий экран).
2. Открыть модалку «Добавить заметку».
3. Посмотреть на нижнюю кнопку.
## Ожидаемое
Кнопка «Сохранить» видна целиком и нажимается.
## Фактическое
Кнопка наполовину уходит за нижний край, нажать невозможно.
## Severity / Priority
Severity: major (блокирует сохранение на узких экранах) · Priority: P2.
## Окружение
iOS 17 · Safari · iPhone SE (375px) · веб-версия 2.3.1.
## Доказательство
Скриншот приложен.
## Частота
Воспроизводится: всегда на экранах ≤ 375px.
Чек-лист качества
- Заголовок — короткий симптом, не «всё сломалось».
- Шаги воспроизводимы у любого (точные, по порядку).
- Ожидаемое и фактическое разделены явно.
- Severity ≠ Priority, проставлены оба.
- Есть окружение (ОС/браузер/версия/устройство).
- Есть доказательство (лог/скрин/видео) и частота.
Частые ошибки
- «Не работает». → Конкретный симптом + шаги; иначе невоспроизводимо.
- Смешали ожидаемое и фактическое. → Раздели: «должно» vs «есть».
- Severity = Priority. → Это разное: серьёзность дефекта vs срочность починки (критичный баг в редкой фиче может быть P3).
- Нет окружения. → «У меня не повторяется» — потому что другой браузер/устройство.
- Нет доказательства. → Лог/скрин/видео ускоряют диагностику в разы.