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

Что такое баг?

1.0 Junior🔥 291 комментариев
#Работа с дефектами#Теория тестирования

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

🐱
claude-haiku-4.5PrepBro AI23 мар. 2026 г.(ред.)

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

Что такое баг

Баг (Bug) — это дефект в программном обеспечении, при котором приложение работает не так, как было задумано или описано в требованиях. Это отклонение фактического поведения системы от ожидаемого, которое может быть незначительным неудобством или критической проблемой, приводящей к отказу системы.

Определение бага

В IEEE 610 стандарте баг определяется как:

"Ошибка в программном обеспечении или его документации, которая может привести к неправильной работе или неправильному результату."

Другими словами, баг — это несоответствие между фактическим результатом выполнения программы и ожидаемым результатом, описанным в спецификации требований.

Классификация багов

По типам:

  • Функциональный баг — приложение не выполняет требуемую функцию (например, кнопка не нажимается)
  • Баг производительности — приложение работает медленнее, чем требуется (запрос выполняется дольше 5 секунд вместо 1 секунды)
  • Баг совместимости — приложение не работает на определённой ОС или браузере
  • Баг безопасности — уязвимость, позволяющая несанкционированный доступ или утечку данных
  • UI/UX баг — визуальные проблемы, нарушение дизайна
  • Баг данных — некорректная обработка, хранение или отображение информации
  • Баг документации — ошибки в документации, требованиях или справке

По серьёзности (Severity):

  • Critical (Критический) — полный отказ системы, потеря данных, невозможность использовать основной функционал
  • High (Высокий) — значительное снижение функциональности, значительное влияние на пользователя
  • Medium (Средний) — частичная потеря функциональности, но приложение остается использованным
  • Low (Низкий) — минорные проблемы, косметические дефекты, не влияющие на функциональность
  • Trivial (Незначительный) — опечатки, небольшие визуальные проблемы

По приоритету (Priority):

  • Critical — должна быть исправлена немедленно
  • High — должна быть исправлена в текущем спринте
  • Medium — может быть отложена, но должна быть исправлена в ближайшее время
  • Low — может быть исправлена позже, не срочно
  • Deferred — может быть отложена на будущие версии

Жизненный цикл бага

Баг проходит через несколько состояний:

  1. New (Новый) — баг только что был зафиксирован
  2. Open (Открыт) — баг принят и назначен разработчику
  3. In Progress (В процессе) — разработчик работает над исправлением
  4. Fixed (Исправлен) — разработчик утверждает, что баг исправлен
  5. Ready for Testing (Готов к тестированию) — исправление готово к повторному тестированию
  6. Verified (Верифицирован) — QA подтверждает, что баг действительно исправлен
  7. Closed (Закрыт) — баг окончательно закрыт
  8. Reopened (Переоткрыт) — если после исправления проблема всё ещё присутствует

Различие между баг и фича

АспектБагФича (Feature Request)
ОпределениеОтклонение от требованийЗапрос на новую функцию
СтатусОшибкаУлучшение
ОжиданиеДолжна была работатьНе была спланирована
РешениеИсправлениеРазработка новой функции

Критерии хорошего баг-репорта

Для эффективного исправления бага необходимо его правильно задокументировать:

Обязательные элементы:

  • Название (Title) — краткое, описывающее суть проблемы
  • Описание (Description) — подробное описание проблемы
  • Окружение (Environment) — ОС, браузер, версия приложения, конфигурация
  • Шаги воспроизведения (Steps to Reproduce) — точная последовательность действий для воспроизведения проблемы
  • Ожидаемый результат (Expected Result) — что должно было произойти
  • Фактический результат (Actual Result) — что на самом деле произошло
  • Приложения (Attachments) — скриншоты, видео, логи

Пример баг-репорта:

Заголовок: Кнопка "Купить" не работает на мобильном устройстве iOS

Описание: При попытке нажать кнопку "Купить" на главной странице товара, кнопка не реагирует на нажатие.

Окружение: iPhone 13, iOS 16.2, Safari, приложение версия 2.3.1

Шаги воспроизведения:
1. Открыть приложение
2. Перейти на страницу товара
3. Нажать кнопку "Купить"

Ожидаемый результат: Произойдёт переход на страницу оплаты

Фактический результат: Кнопка не реагирует на нажатие, ничего не происходит

Тяжесть: Critical
Приоритет: High

Значение багов в разработке

  • Обеспечение качества — выявление и исправление багов критично для выпуска качественного продукта
  • Безопасность пользователей — критические баги могут привести к потере данных или безопасности
  • Репутация компании — багов в production серьёзно влияет на восприятие компании
  • Экономия средств — исправление бага в production намного дороже, чем на этапе разработки
  • Понимание проблем — анализ багов помогает улучшить процесс разработки

Баг — неотъемлемая часть процесса разработки ПО. Роль QA Engineer состоит в выявлении баго как можно раньше и обеспечении того, чтобы разработчики могли их эффективно исправить.