Урок 14. Баг-репорт
Как правильно сообщать о багах
Темы урока
Баг и баг-репорт, жизненный цикл бага, структура баг-репорта, Severity vs Priority, частые ошибки
Видео урока
Конспект урока
Конспект — Урок 14: Баг-репорт
Что такое баг и баг-репорт
Баг — это не «что-то не работает», а конкретное несовпадение реального поведения системы с ожидаемым.
Нет ожидаемого результата → нет бага: чтобы зафиксировать отклонение, нужно знать, как должно быть.
Баг-репорт — формальное описание этого несовпадения, достаточное для того, чтобы команда могла воспроизвести и исправить проблему.
Без репорта баг существует только в голове тестировщика — он не может быть зафиксирован, приоритизирован или отслежен.
Структура баг-репорта
Заголовок
Отвечает на вопрос «что сломалось, где и при каких условиях» — одной строкой.
Формула: [Что] + [Где] + [При каких условиях]
| Плохо | Хорошо |
|---|---|
| «Кнопка не работает» | «Кнопка "Оплатить" не реагирует на клик на iOS 17 в Safari» |
| «Не работает оплата» | «Оплата картой зависает на шаге подтверждения на Android 14 / Chrome 124» |
| «Ошибка при регистрации» | «При вводе email с точкой перед @ форма регистрации возвращает ошибку 500» |
Окружение и предусловия
Окружение — ОС, браузер, версия приложения, устройство. Баги часто специфичны для конкретного стека.
Предусловия — что должно быть сделано до начала воспроизведения: «Авторизован пользователь с непустой корзиной».
Без окружения разработчик тестирует на своей машине и в своём браузере — и честно «не воспроизводит».
Шаги воспроизведения
Каждый шаг — одно конкретное действие: не «нажми куда-то», а «нажмите кнопку "Добавить в корзину" на карточке товара "Маргарита"».
- Нумерованный список — не перескакивай, не объединяй несколько действий в один шаг
- Самопроверка перед отправкой: пройди по шагам заново — если воспроизвёл сам, значит и разработчик сможет
Ожидаемый и фактический результат
Ожидаемый результат — что должно произойти согласно требованиям, дизайну или здравому смыслу.
Фактический результат — что произошло в реальности: точно, без эмоций, с деталями ошибки.
Разрыв между ними — это и есть баг. Без одного из двух репорт неполный.
Severity — серьёзность по техническому ущербу
Severity оценивает тестировщик — насколько серьёзно сломалась функциональность.
| Severity | Описание |
|---|---|
| Blocker | Приложение падает или критичная функция полностью недоступна — работа невозможна |
| Critical / Major | Серьёзное нарушение функциональности, но обходной путь есть |
| Minor | Неудобство без потери функции |
| Trivial / Cosmetic | Опечатки, пиксельные расхождения — не мешают работе |
Priority — срочность по бизнесу
Priority оценивает PM или тимлид — насколько срочно нужно починить исходя из контекста.
- Cosmetic-баг на главной странице за день до запуска → Priority High (клиент увидит первым)
- Blocker на незапущенной фиче → Priority Low (ждёт своего спринта)
Severity vs Priority — не путаем
| Severity | Priority | |
|---|---|---|
| Кто оценивает | Тестировщик | PM / тимлид |
| Критерий | Технический ущерб | Бизнес-срочность |
| Пример несовпадения | Blocker на IE 6 → Severity высокий, Priority низкий | Опечатка на баннере → Severity trivial, Priority high |
Жизненный цикл бага
New → Assigned → In Progress → Fixed → Verified → Closed
↓
Reopened
| Статус | Описание |
|---|---|
| New | Тестировщик создал репорт |
| Assigned | Назначен разработчику |
| In Progress | Разработчик взял в работу |
| Fixed | Разработчик говорит «починил» |
| Verified | QA проверил фикс и подтвердил |
| Closed | Баг официально закрыт |
| Reopened | QA проверил фикс — баг не исправлен или воспроизводится снова |
При повторном открытии обязательно указывай: версию, в которой проверял, и что именно не так с фиксом. Цикл Fixed → Reopened может повторяться несколько раз — это нормальный рабочий процесс.
Частые ошибки начинающих
- Заголовок-загадка — «Не работает», «Ошибка», «Проблема». Невозможно понять без открытия и переспроса.
- Нет окружения или шагов — разработчик не может воспроизвести → статус «не воспроизводится» и тишина.
- Эмоции в описании — «Ужасный баг!!!», «Всё сломано!» снижает профессиональное доверие к репорту.
Три принципа хорошего баг-репорта
- Нейтральность — только факты, шаги и конкретика. Никаких «опять сломали».
- Достаточность — ровно столько, сколько нужно для воспроизведения, без романа.
- Воспроизводимость — пройди по шагам сам до отправки. Если сам не воспроизвёл — уточни перед публикацией.
Баг-репорт в Jira и YouTrack
Структура та же: Summary, Steps to Reproduce, Expected / Actual Result, Environment, Severity, Priority.
- Вложения критичны: скриншот или видео воспроизведения бага экономит разработчику 20 минут переспросов.
- Лейблы и компоненты помогают фильтровать: «мобайл», «оплата», «авторизация» — быстрый поиск нужных багов.
Ключевые выводы урока
- Баг-репорт — инструмент: хорошее описание = баг в работе, плохое = «не воспроизводится» и тишина.
- Формула заголовка —
[Что] + [Где] + [При каких условиях]— одной строкой. - Severity и Priority — разные оси: серьёзность определяет QA, срочность — бизнес.
- Жизненный цикл:
New → Assigned → Fixed → Verified → Closed;Reopened— норма, не катастрофа. - Три принципа: нейтральность, достаточность, воспроизводимость.
Домашнее задание
Зайди на Пиццаед, найди 1 баг на сайте и напиши баг-репорт.
Обязательные поля: заголовок, окружение, шаги воспроизведения, ожидаемый и фактический результат, Severity, Priority, скриншот или видео.
Критерий выполнения: пройди по своим шагам сам перед отправкой — репорт должен воспроизводиться.
Сдавать в чат марафона.