← Назад к вопросам

Как описать баг

1.6 Junior🔥 162 комментариев
#Работа с дефектами

Комментарии (2)

🐱
deepseek-v3.2PrepBro AI5 апр. 2026 г.(ред.)

Ответ сгенерирован нейросетью и может содержать ошибки

Как описать баг: полное руководство для QA Engineer

Описание бага (bug report) — это ключевой документ в работе тестировщика, который служит мостом между обнаружением проблемы и её исправлением разработчиком. Качественный баг-репорт экономит время всей команды, минимизирует недопонимания и ускоряет выпуск стабильного продукта. Вот структура и принципы его составления.

Основные компоненты эффективного баг-репорта

1. Заголовок (Title/Summary) Краткий, но информативный. Должен сразу дать понять суть проблемы.

  • Плохо: "Не работает кнопка"
  • Хорошо: "Кнопка 'Отправить' в форме обратной связи неактивна после ввода невалидного email в Chrome 115"

2. Приоритет (Priority) и Серьезность (Severity)

  • Серьезность (Severity) — объективная оценка влияния бага на функционал системы. Шкала: Blocker, Critical, Major, Minor, Trivial.
  • Приоритет (Priority) — субъективное указание на срочность исправления (часто выставляет менеджер). Шкала: High, Medium, Low.
  • Пример: Опечатка в тексте (Severity: Trivial, Priority: Low). Падение сервера при оплате (Severity: Critical, Priority: High).

3. Предусловия (Preconditions) Какие условия должны быть выполнены до начала шагов. Например: "Пользователь авторизован под ролью 'Администратор'", "В корзине добавлен товар X".

4. Шаги воспроизведения (Steps to Reproduce) Четкая, нумерованная, воспроизводимая последовательность действий. Каждый шаг — одно действие.

1. Перейти на главную страницу https://example.com.
2. Нажать кнопку "Войти".
3. Ввести в поле "Логин" значение "test@example.com".
4. Ввести в поле "Пароль" значение "123456".
5. Нажать кнопку "Войти".

5. Фактический результат (Actual Result) Что происходит после выполнения шагов. Максимально точно.

После нажатия кнопки "Войти" появляется сообщение "Внутренняя ошибка сервера" (HTTP 500), пользователь остается на странице авторизации.

6. Ожидаемый результат (Expected Result) Корректное, ожидаемое поведение системы согласно требованиям или здравому смыслу.

Пользователь успешно авторизуется и перенаправляется на личный кабинет.

7. Окружение (Environment) Конкретные параметры, на которых баг воспроизводится. Это критически важно.

  • ОС и версия: Windows 11 Pro 22H2 / macOS Ventura 13.4
  • Браузер и версия: Google Chrome 115.0.5790.102 / Firefox 115.0.1
  • Устройство: Desktop / iPhone 14 (iOS 16.5)
  • Версия приложения: Frontend v.2.1.4, Backend API v.1.5.0

8. Вложения (Attachments) Визуальные доказательства, которые экономят тысячи слов:

  • Скриншот/Скринкаст с выделением области проблемы.
  • Логи консоли браузера (F12 -> Console/Network), логи сервера.
  • Файлы с данными, если баг связан с импортом.
  • Пример кода ошибки из логов.
// Пример ошибки из консоли браузера
Uncaught TypeError: Cannot read properties of undefined (reading 'email')
    at validateForm (form-validator.js:47)
    at HTMLButtonElement.onclick (login.html:24)

Дополнительные рекомендации

  • Один баг — один репорт. Не объединяйте несколько не связанных проблем.
  • Используйте нейтральный, деловой язык. Избегайте эмоциональных оценок ("кривой баг", "опять сломалось").
  • Проверьте воспроизводимость. Убедитесь, что проблема воспроизводится минимум 2-3 раза, прежде чем заводить баг.
  • Укажите область (Component/Module). Например: "Модуль авторизации", "Корзина покупок", "Панель администратора".
  • Ссылайтесь на требование. Если есть тест-кейс или user story (например, JIRA ID: STORY-123), добавьте ссылку.

Пример структурированного баг-репорта в Markdown

**Заголовок:** [Корзина] Итоговая сумма не пересчитывается после удаления товара на мобильном устройстве.

**Серьезность:** Major
**Приоритет:** High
**Компонент:** Корзина покупок

**Предусловия:**
1. Пользователь авторизован.
2. В корзине два товара: "Книга" (цена 500 руб.) и "Мышь" (цена 2000 руб.). Итог: 2500 руб.

**Шаги к воспроизведению:**
1. Открыть страницу корзины на iPhone 13.
2. В блоке товара "Мышь" нажать иконку корзины (удалить).
3. Нажать "Ок" в диалоге подтверждения.

**Фактический результат:**
Итоговая сумма на экране остается 2500 руб. Кнопка "Перейти к оплате" активна.

**Ожидаемый результат:**
Итоговая сумма пересчитывается до 500 руб. Кнопка "Перейти к оплате" активна.

**Окружение:**
- Устройство: iPhone 13
- ОС: iOS 16.5
- Браузер: Safari 16.5
- Версия приложения: мобильный веб v.1.3.0

**Вложения:**
1. [Скриншот_корзины_после_удаления.png]
2. [Лог_сетевых_запросов.json]

Итог: Хорошо описанный баг — это не просто констатация факта, а мини-расследование, дающее разработчику все ключи для быстрого понимания корня проблемы. Это профессиональный навык, который напрямую влияет на эффективность команды и качество конечного продукта.

Как описать баг | PrepBro