Prog Academy
RU UA
Карточка баг-репорта с полями, шкала серьёзности дефекта и статусы исправления
Карьера в IT

Баг-репорт: как правильно написать (шаблон + примеры)

Найти дефект — половина работы тестировщика. Вторая половина — описать его так, чтобы разработчик воспроизвёл проблему с первого раза и не пришёл с вопросом «а как ты это получил?». Плохо написанный баг-репорт стоит команде часов переписки, а иногда дефект просто закрывают как «не воспроизводится».

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

Главное за 30 секунд

  • Баг-репорт — документ о дефекте: что произошло, где, при каких условиях и как это повторить.
  • Обязательные поля: заголовок, окружение, шаги воспроизведения, ожидаемый и фактический результат, severity, priority, вложения.
  • Формула заголовка: что сломалось + где + при каком условии.
  • Severity — насколько вредит дефект, priority — как срочно исправлять. Это разные вещи.
QA

Баг-репорты, тест-кейсы, Jira — на практике

На курсе тестировщика в Prog Academy вы пишете баг-репорты и тест-кейсы на реальных проектах, работаете с Jira и Postman, а преподаватель проверяет каждую работу. 4 месяца с нуля до готовности к собеседованию на Junior QA.

Программа курса QA →

Что такое баг-репорт

Баг-репорт (отчёт о дефекте, bug report) — это документ, который описывает найденный дефект так, чтобы его можно было воспроизвести, оценить и исправить. В глоссарии ISTQB отчёт о дефекте определён как «документирование возникновения, характера и состояния дефекта».

По программе ISTQB Foundation Level (версия 4.0.1), у отчёта о дефекте три цели: дать тем, кто будет его исправлять, достаточно информации; отслеживать качество продукта; подсказать, как улучшить процесс разработки и тестирования. То есть баг-репорт пишут не «для галочки» и не для отчёта руководителю, а для человека, который будет исправлять дефект.

Баг-репорты ведут в баг-трекере: Jira, YouTrack, Azure DevOps, GitHub Issues. Поля в разных системах называются по-разному, но суть одинакова. О том, какие бывают виды проверок, из которых вырастают баг-репорты, — в статье «Функциональное тестирование».

Структура баг-репорта: поля по ISTQB

Программа ISTQB Foundation Level перечисляет, что обычно содержит отчёт о дефекте, найденном во время тестирования. В таблице — эти поля с пояснением и примером.

ПолеЧто писатьПример
IDУникальный номер. Обычно присваивает баг-трекер.SHOP-1423
ЗаголовокКоротко: что сломалось, где и когдаКорзина: кнопка «Оформить заказ» неактивна после удаления промокода
Автор и датаКто нашёл и когдаА. Коваль, 12.11.2026
Объект и окружениеЧто тестировали и где: ОС, браузер или устройство, стенд, версия сборкиWindows 11, Chrome 131, staging, сборка 2.14.0
КонтекстТест-кейс или активность, в рамках которой найден дефект; тестовые данныеTC-87 «Применение промокода», пользователь test_buyer_3
Шаги воспроизведенияНумерованный список действий1. Открыть /cart. 2. Нажать «Удалить промокод». 3. Нажать «Оформить заказ»
Ожидаемый результатКак должно быть по требованиямОткрывается страница оформления с ценой без скидки
Фактический результатЧто произошло на самом делеКнопка неактивна; в консоли TypeError
SeverityСерьёзность: насколько дефект вредитCritical
PriorityПриоритет: как срочно исправлятьHigh
СтатусСостояние дефекта в жизненном циклеNew
Ссылки и вложенияСкриншоты, видео, логи, связанные задачи и тест-кейсыcheckout-bug.mp4, console.log

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

Как написать заголовок

Заголовок — то, что разработчик и менеджер видят в списке дефектов. По нему решают, открывать баг-репорт сейчас или потом, поэтому заголовок должен быть самодостаточным. Рабочая формула:

Что сломалось + где + при каком условии.

ПлохоХорошо
Не работает корзинаКорзина: кнопка «Оформить заказ» неактивна после удаления промокода
Баг с регистрацией!!!Регистрация: письмо подтверждения не приходит, если email содержит «+»
Поехала вёрсткаГлавная, iPhone SE: кнопка «Купить» перекрывает цену в карточке товара
API падаетPOST /api/orders возвращает 500, если quantity = 0

Несколько правил: без эмоций и оценок («ужасный баг»), без «не работает» без уточнения, до 80–100 символов. Один заголовок — один дефект.

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

Шаги воспроизведения

Шаги — сердце баг-репорта. Их читает человек, который не видел, что вы делали, поэтому:

  • Нумеруйте. Одно действие — один шаг.
  • Начинайте с предусловий. Кто вошёл в систему, какие данные уже есть, какой язык интерфейса. «Пользователь авторизован, в корзине 1 товар, применён промокод SALE10».
  • Пишите конкретно. Не «введите некорректные данные», а «в поле Email введите test@example».
  • Проверьте шаги ещё раз перед отправкой. Если дефект не воспроизводится по вашим шагам — они неполные.

Ожидаемый результат

Как должно быть в соответствии с требованиями, макетом или общепринятым поведением. Если есть ссылка на требование — добавьте её. Без ожидаемого результата разработчик не знает, что именно считать исправлением.

Фактический результат

Что произошло на самом деле — точно и без интерпретаций. Текст ошибки копируйте дословно, а не пересказывайте. «Страница не загрузилась» хуже, чем «через 30 секунд появляется страница 504 Gateway Time-out».

Severity и Priority: в чём разница

Самый частый вопрос на собеседованиях Junior QA. Определения из глоссария ISTQB:

  • Severity (критичность, серьёзность) — «важность воздействия конкретного дефекта на разработку или функционирование компонента или системы».
  • Priority (приоритет) — степень важности, присваиваемая объекту, например дефекту.

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

SeverityЧто означаетПример
BlockerНевозможно продолжить работу или тестирование, обходного пути нетПриложение падает при запуске
CriticalНе работает ключевая функция или теряются данные либо деньгиОплата списывает деньги, а заказ не создаётся
MajorФункция работает неправильно, но есть обходной путьФильтр по цене игнорирует верхнюю границу
MinorНезначительный функциональный или визуальный дефектКнопка смещается на 5 px на мобильном
TrivialКосметика, которая не влияет на работуОпечатка в подвале сайта

Почему это два разных поля, лучше всего видно на крайних случаях:

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

Три примера: плохо → хорошо

Пример 1. Веб-приложение

Плохо: «Не могу оформить заказ, кнопка не работает. Исправьте срочно!»

Хорошо:

Заголовок: Корзина: кнопка «Оформить заказ» неактивна после удаления промокода

Окружение: Windows 11, Chrome 131, staging, сборка 2.14.0

Предусловия: пользователь авторизован; в корзине 1 товар; применён промокод SALE10

Шаги: 1) Открыть /cart. 2) Нажать «Удалить промокод». 3) Нажать «Оформить заказ».

Ожидаемый результат: открывается страница оформления заказа с ценой без скидки.

Фактический результат: кнопка неактивна, клик ничего не делает; в консоли: TypeError: Cannot read properties of null (reading 'discount').

Severity / Priority: Critical / High — пользователь не может купить товар.

Вложения: видео 12 с, скриншот консоли.

Пример 2. Мобильное приложение

Плохо: «На айфоне всё съехало».

Хорошо:

Заголовок: Карточка товара, iPhone SE (iOS 18): кнопка «Купить» перекрывает цену

Окружение: iPhone SE 3-го поколения, iOS 18.1, приложение 5.2.0 (TestFlight)

Шаги: 1) Открыть любой товар с названием длиннее 40 символов. 2) Прокрутить до блока цены.

Ожидаемый результат: цена и кнопка «Купить» расположены друг под другом, обе видны полностью.

Фактический результат: кнопка накладывается на цену, видна только первая цифра. На iPhone 15 и Pixel 8 дефект не воспроизводится.

Severity / Priority: Major / Medium — цену можно увидеть в корзине, но клиент может уйти.

Вложения: скриншоты с iPhone SE и iPhone 15 для сравнения.

Пример 3. API

Плохо: «Заказ с нулём ломает бэкенд».

Хорошо:

Заголовок: POST /api/orders возвращает 500 вместо 400, если quantity = 0

Окружение: staging API, сборка 2.14.0, Postman 11

Шаги: 1) Получить токен тестового пользователя. 2) Отправить POST /api/orders с телом {"productId": 15, "quantity": 0}.

Ожидаемый результат: 400 Bad Request с сообщением о некорректном количестве (по спецификации API, раздел «Orders»).

Фактический результат: 500 Internal Server Error, тело ответа пустое; в таблице orders появляется запись со статусом NULL.

Severity / Priority: Major / High — в базу попадают некорректные данные.

Вложения: экспорт запроса из Postman, SQL-запрос, который показывает запись.

Обратите внимание: в третьем примере тестировщик проверил не только ответ, но и базу данных. Именно поэтому SQL и тестирование API — обязательная часть навыков junior QA.

Скриншоты, видео и логи

  • Скриншот — для визуальных дефектов. Выделите проблемное место рамкой или стрелкой, обрежьте лишнее.
  • Видео — когда важна последовательность действий или дефект «мигает». 10–30 секунд достаточно.
  • Консоль браузера — текст ошибки со вкладки Console в DevTools.
  • Сеть — запрос и ответ со вкладки Network или HAR-файл, если проблема на границе фронтенда и бэкенда.
  • Логи приложения — для мобильных и серверных дефектов, если у вас есть к ним доступ.

Проверьте, что во вложениях нет паролей, токенов и персональных данных реальных пользователей.

Жизненный цикл дефекта

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

New → Open → In Progress → Fixed → Retest → Closed (или Reopened, если дефект не исправлен).

Задача тестировщика не заканчивается отправкой: после исправления нужно проверить, что дефект действительно исчез и рядом ничего не сломалось. Именно для этого существует регрессионное тестирование.

Чек-лист перед отправкой

  • Дефект воспроизводится ещё раз по моим шагам.
  • Я проверил, что такого баг-репорта ещё нет (дубликат).
  • Заголовок отвечает на вопросы «что, где, когда».
  • Указаны окружение и версия сборки.
  • Шаги пронумерованы, одно действие — один шаг.
  • Есть ожидаемый и фактический результат.
  • Severity и priority проставлены обоснованно, а не «всё Critical».
  • Добавлены скриншот, видео или логи.
  • Один дефект — один баг-репорт.
  • Текст без эмоций и обвинений.

Типичные ошибки новичков

  • Несколько дефектов в одном репорте. Один исправят, второй потеряется.
  • «Не работает» без деталей. Разработчик потратит время, чтобы понять, что именно.
  • Пропущенные предусловия. Дефект воспроизводится только с промокодом, а о промокоде ни слова.
  • Интерпретация вместо факта. «Сервер не выдерживает нагрузку» вместо «ответ приходит через 30 секунд с кодом 504».
  • Завышенная серьёзность. Если всё Critical, команда перестаёт доверять оценкам.
  • Тон обвинения. Баг-репорт описывает продукт, а не человека.

Можно ли писать баг-репорты с AI

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

QA

Хотите, чтобы ваши баг-репорты кто-то проверил?

На курсе QA преподаватель разбирает ваши баг-репорты и тест-кейсы, а в конце вы готовитесь к собеседованию на позицию Junior QA Engineer.

Записаться на курс QA →

Частые вопросы

Что такое баг-репорт простыми словами?

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

Чем severity отличается от priority?

Severity (серьёзность, в глоссарии ISTQB — критичность) показывает, насколько сильно дефект влияет на работу системы, и её обычно определяет тестировщик. Priority (приоритет) показывает, насколько срочно дефект нужно исправить с точки зрения бизнеса, и окончательно его устанавливает менеджер продукта или лид команды. Поэтому бывают критичные дефекты с низким приоритетом и мелкие — с высоким.

Сколько шагов воспроизведения должно быть в баг-репорте?

Столько, сколько нужно, чтобы дефект воспроизвёл другой член команды, и не больше. Обычно это 3–8 шагов. Одно действие — один шаг. Если шагов получается больше 10–12, попробуйте найти более короткий путь к дефекту: это часто помогает понять его причину.

Обязательно ли прикладывать скриншот или видео?

Для визуальных дефектов скриншот обязателен, для дефектов в последовательности действий желательно короткое видео. Для ошибок на уровне API или бэкенда полезнее логи консоли, вкладка Network или HAR-файл. Вложения не заменяют шагов воспроизведения, а дополняют их.

На каком языке писать баг-репорты?

На языке, принятом в команде. Во многих IT-компаниях, особенно с иностранными клиентами, баг-трекер ведут на английском, поэтому junior-тестировщику стоит уметь писать короткие и однозначные баг-репорты на английском. Главное — единый язык в рамках проекта.

Что делать, если разработчик говорит, что это не баг, а фича?

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

Источники

Стать QA-тестировщиком →

Фото автора: Юлия Евгиенко

Об авторе

Project Delivery Manager в STRUKTURA, ранее QA Engineer

Project Delivery Manager в STRUKTURA, до этого 4 года работала там же QA Engineer. Как внешний эксперт участвовала в разработке курсов Prog Academy по подписке по управлению проектами и QA; в блоге пишет о тестировании и профессии QA.

Термины из статьи

Короткие определения понятий, которые упоминаются выше.

Читайте также

Контакт

Записаться на консультацию

Укажите актуальный номер, мы позвоним в любую страну :)