Баг (от англ. bug — жучок) — это жаргонное слово, которое означает ошибку, дефект или сбой в программе или программном обеспечении.
Проще говоря, баг — это когда программа работает не так, как задумано разработчиком и описано в требованиях.
Примеры багов:
· Функциональная ошибка: Кнопка «Сохранить» в приложении не сохраняет файл, а удаляет его.
· Ошибка интерфейса: Текст на кнопке накладывается сам на себя и его невозможно прочитать.
· Ошибка производительности: Приложение или игра начинают очень сильно «тормозить» после определенного действия.
· Ошибка безопасности (уязвимость): Злоумышленник может получить доступ к чужим данным через форму входа на сайт.
· «Падение» приложения: Программа внезапно закрывается с сообщением об ошибке (крашится).
Откуда взялось слово «баг»?
Существует известная историческая байка. В 1947 году пионеры вычислительной техники, работавшие с компьютером Mark II, обнаружили, что машина дала сбой. Причиной оказалась моль, застрявшая в реле. Они вклеили эту моль в технический журнал и написали: «First actual case of bug being found» («Первый реальный случай, когда был найден жучок»). Хотя слово «bug» в значении «неисправность» использовалось и раньше инженерами, эта история прочно закрепила его в мире IT.
Вот запись из журнала от 9 сентября 1947 года с приклеенной молью:
(Представьте здесь изображение страницы журнала с молью)
Что такое «Дебаггинг»?
Процесс поиска, анализа и исправления багов называется дебаггинг (отладка). Человека, который занимается этим профессионально, называют дебаггером или тестировщиком.
Связанные понятия:
· Фича (Feature) — Противоположность багу. Это новая функция, возможность в программе.
· Глюк — Более разговорное и нестрогое обозначение сбоя. Часто относится к временным, случайным проблемам, которые сложно воспроизвести.
· Ишью (Issue) — Более общий термин для обозначения любой проблемы, задачи или недочета в проекте. Баг — это один из типов ишью.
Итог:
Баг — это ключевое понятие в разработке программного обеспечения, обозначающее дефект, из-за которого программа ведет себя неправильно. Борьба с багами (тестирование и дебаггинг) — это неотъемлемая и очень важная часть процесса создания любого ПО.