Jet School Logo

Что такое Bug?

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

Проще говоря: если результат, который вы ожидали от программы, отличается от результата, который вы получили на самом деле — значит, в программе есть баг.

Происхождение слова "Баг"

Интересно, что слово "bug" появилось задолго до компьютерной эры — им описывали насекомых, вызывавших неисправности в механических устройствах. В 1947 году в Гарвардском университете в компьютере Mark II была обнаружена настоящая моль, застрявшая в реле и вызвавшая сбой. Этот исторический случай считается причиной популяризации термина в компьютерной науке.

Разница между Bug, Error, Defect и Fail

Эти четыре термина часто путают, но у каждого своё значение:

  • Error (Ошибка): Ошибка, допущенная человеком (программистом). Например, синтаксическая ошибка при написании кода или случайно поставленный неверный символ.
  • Bug / Defect (Баг / Дефект): Реальная проблема в коде, возникшая в результате Error — расхождение между ожидаемым и фактическим результатом. "Bug" и "Defect" по сути означают одно и то же; разница чаще всего в том, кто нашёл проблему — если пользователь, обычно говорят "bug", если сам разработчик — "defect".
  • Fail (Сбой): Реальный, видимый пользователю сбой, возникающий в результате бага — программа не соответствует функциональным требованиям.

Пример: На странице "Контакты" при отправке формы с пустым полем email система должна показать сообщение "Email не указан!". Если вместо этого появляется сообщение "Сообщение отправлено!" — значит, в программе есть баг, так как ожидаемый и фактический результат не совпадают.

Bug Severity и Bug Priority

После обнаружения бага нужно определить, насколько он серьёзен и когда его нужно исправить:

Severity (Степень серьёзности) — показывает, насколько сильно баг влияет на работу системы. Обычно делится на 4 уровня:

  1. Low (Низкая) — практически не влияет на работу системы, косметические проблемы.
  2. Minor (Незначительная) — небольшие функциональные проблемы, не влияющие на основной рабочий процесс.
  3. Major (Серьёзная) — серьёзно влияет на основную функциональность.
  4. Critical (Критическая) — приводит к полной неработоспособности системы.

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

Жизненный цикл бага (Bug Lifecycle)

  1. Обнаружение (Discovery) — баг находит тестировщик или пользователь.
  2. Регистрация (Reporting) — баг документируется в системе bug-трекинга (шаги воспроизведения, ожидаемый/фактический результат, скриншоты и т.д.).
  3. Классификация (Triage) — определяются Severity и Priority.
  4. Исправление (Fix) — разработчик исправляет код.
  5. Повторное тестирование (Retest) — проверяется, что исправление работает корректно.
  6. Закрытие (Close) — баг официально переходит в статус "решено".

Bug-трекеры

Компании используют специальные инструменты для отслеживания и управления багами:

  • Jira — самая распространённая система управления проектами и багами.
  • Bugzilla — открытая (open source) система отслеживания багов.
  • Trello — может использоваться для отслеживания багов в более простых проектах.
  • GitHub Issues — система отслеживания багов, интегрированная напрямую с репозиториями кода.

Виды багов

  • Синтаксические баги — возникают из-за нарушения грамматических правил языка программирования.
  • Логические баги — код выполняется, но результат неверен (например, ошибка в математической операции).
  • Runtime-баги — возникают во время выполнения программы (например, обращение к несуществующему файлу).
  • Баги совместимости — программа работает по-разному на разных устройствах или в разных браузерах.

Заключение

Баг — неизбежное явление в сфере разработки программного обеспечения; практически в каждой сложной программе присутствуют баги. Важно вовремя их обнаруживать, правильно классифицировать и эффективно исправлять. Этот процесс лежит в основе качественного программного обеспечения и является основной сферой деятельности QA-инженеров (Quality Assurance).

Хотите применить эти знания на практике и получить реальные результаты? Начните обучение на курсе «IT и Компьютерная инженерия» и шаг за шагом приобретайте практические навыки. Подробнее о курсе — перейдите по ссылке: Курс «IT и Компьютерная инженерия».

Часто задаваемые вопросы

Что такое баг? Баг — это ошибка в коде, которая приводит к неправильному или непредсказуемому поведению программы. Обычно возникает из-за ошибки, допущенной программистом при написании кода.

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

Заполните форму чтобы узнать больше о наших IT курсах

Начни изучать IT уже сегодня