Баг (инженерия)

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

Термин «баг» не является техническим; более формальные понятия, помимо «дефект», включают ошибка, изъян и сбой. Баг может быть постоянным, спорадическим, периодическим или преходящим; в области вычислений к багам относят сбои, зависания, а также глитчи.

Поскольку желательность результата субъективна, то, что один считает багом, для другого может быть особенностью — отсюда известная в среде разработчиков шуточная реплика, возникающая в ответ на сообщение о баге: «Это не баг, это фича».

undefined

История

Английское средневековое слово англ. bugge является источником терминов англ. bugbear и англ. bugaboo, используемых для обозначения чудовищ[1].

Термин «баг» для обозначения дефекта использовался в инженерном жаргоне как минимум с 1870-х годов, задолго до появления электронных вычислительных машин. Например, Томас Эдисон писал своему коллеге в 1878 году:

Так было со всеми моими изобретениями. Первый шаг — это интуиция и порыв, затем возникают трудности — что-то выходит из строя, и именно тогда «баги» — так называют разные мелкие неисправности и затруднения — проявляют себя, а для достижения коммерческого успеха или неудачи требуется много месяцев напряжённого наблюдения, изучения и работы[2].

В комиксе на страницах телефонного промышленного журнала 1924 года наивный персонаж слышит, что некий мужчина работает «охотником на багов», и преподносит ему скребок для спины. Мужчина отвечает: «Разве не знаешь, что „охотник на багов“ — это всего лишь прозвище ремонтника?»[3]

Первая механическая пинбол-игра, Baffle Ball, в 1931 году рекламировалась как «свободная от багов»[4].

Проблемы с военной техникой во время Второй мировой войны также называли багами или глитчами[5].

В фильме 1940 года Flight Command дефект в работе навигационного прибора был назван «багом».

В книге 1942 года американская писательница Луиза Дикинсон Рич, говоря о механизированной машине для распиливания льда, использовала выражение: «Ледопилили прекратились, пока создателя не привели устранить баги из его детища»[6].

Айзек Азимов использовал термин «баг» для описания проблем с роботом в рассказе «Catch That Rabbit», опубликованном в 1944 году.

undefined

Контр-адмирал ВМС США Грейс Хоппер, одна из пионеров компьютерной техники, популяризировала историю о моли, вызвавшей дефект в раннем электромеханическом компьютере[7]. Около 1947 года, когда Хоппер работала с машинами Mark II и Mark III в Гарварде, операторы локализовали ошибку в Mark II, вызванную молью, застрявшей в реле. Моль была удалена и наклеена в рабочий журнал с подписью: «Первый реальный случай обнаружения бага». Считается, что операторы, включая Уильяма «Билла» Бёрка из Naval Weapons Laboratory в Далгрен, Виргиния[8], были знакомы с инженерным значением слова и, вероятно, с юмором обыграли совпадение его употребления как для живого вещества, так и технологического дефекта. Эта история, пусть и шутка, показывает регулярность термина среди компьютерщиков того времени[9].[10][11][12] Тот самый журнал с приклеенной молью хранится в коллекции Смитсоновского Национального музея американской истории[11].

Связанный с этим термин debug также появился раньше, чем его использование в информатике: согласно этимологии Oxford English Dictionary, самое раннее использование слова в значении устранения неисправностей зафиксировано в авиационной сфере в 1945 году[13].

«Это не баг, это фича»

Поскольку баг подразумевает нежелательное поведение, то констатация наличия бага субъективна. То, что одни считают багом, другие могут воспринимать как полезную особенность, отсюда и распространённая фраза: «Это не баг, это фича» (INABIAF)[14]. Эта шутка была задокументирована в The Jargon File (1975), однако восходит как минимум к 1971 году, когда программист Сандра Ли Харрис из Digital Equipment Corporation (DEC), работая над интерпретатором языка FOCAL для PDP-8, различала проблемы, требующие исправления в коде, и вопросы, которые следовало бы описать в пользовательской документации[15].

О подобном поведении могут специально сообщать пользователям или же оно остаётся недокументированным.

Примечания

  1. Moth in the machine: Debugging the origins of 'bug' (англ.). Computerworld. Computerworld (3 сентября 2011). Дата обращения: 16 августа 2024. Архивировано 25 августа 2015 года.
  2. Edison to Puskas, 13 ноября 1878, Edison papers, Edison National Laboratory, U.S. National Park Service, West Orange, N.J., цитируется по: Hughes, Thomas Parke. American Genesis: A Century of Invention and Technological Enthusiasm, 1870-1970 : [англ.]. — Penguin Books, 1989. — P. 75. — ISBN 978-0-14-009741-2.
  3. Cy Meyn, Hattie the Hello Girl, The Mountain States Monitor Том XIX, № 1 (январь 1924), Mountain States Telephone and Telegraph Co.; стр. 34, внизу.
  4. Baffle Ball (англ.). Internet Pinball Database. Internet Pinball Database. Дата обращения: 16 августа 2024. Архивировано 29 августа 2025 года.
  5. Modern Aircraft Carriers are Result of 20 Years of Smart Experimentation (англ.), Life (29 июня 1942), С. 25. Архивировано 4 июня 2013. Дата обращения: 16 августа 2024.
  6. Dickinson Rich, Louise. We Took to the Woods : [англ.]. — JB Lippincott Co, 1942. — P. 93.
  7. Log Book With Computer Bug (англ.). americanhistory.si.edu. Дата обращения: 16 августа 2024. Архивировано 2 декабря 2023 года.
  8. IEEE Annals of the History of Computing, Vol 22 Issue 1, 2000
  9. James S. Huggins. First Computer Bug (англ.). Jamesshuggins.com. Дата обращения: 16 августа 2024. Архивировано 16 августа 2000 года.
  10. «Bug Архивировано 23 марта 2017.», The Jargon File, вер. 4.4.7. Получено 3 июня 2010.
  11. 1 2 «Log Book With Computer Bug Архивировано 23 марта 2017.», National Museum of American History, Smithsonian Institution.
  12. "The First «Computer Bug», Naval Historical Center. Однако сама машина Harvard Mark II была завершена только летом 1947 года.
  13. Journal of the Royal Aeronautical Society. 49, 183/2, 1945 «It ranged … through the stage of type test and flight test and 'debugging' …»
  14. Nicholas Carr. ‘It's Not a Bug, It's a Feature.’ Trite—Or Just Right? (англ.), Wired. Архивировано 11 октября 2025 года. Дата обращения: 16 августа 2024.
  15. FOCAL Programming Manual for PDP-8, PDP-8/S, PDP-8/I, LAB-8, LINC-8 : [англ.]. — Digital Equipment Corporation, 1968. — ISBN DEC-08-AJAB-D.

Категории