В инженерии ошибка — это конструктивный дефект в спроектированной системе , который приводит к нежелательному результату.
Хотя термин «ошибка» используется исключительно для описания технической проблемы, он не является техническим термином и применим без технического понимания системы.
Термин «баг» применяется исключительно к системе, которая (человеком) спроектирована; а не к естественной системе; и что проблема находится под влиянием человеческого контроля. Например, у людей есть сбои, но не ошибки, и сбой сервера из-за стихийного бедствия не является ошибкой.
В дополнение к слову «дефект» или вместо него некоторые используют слова «ошибка», «изъян» или «неисправность» .
Инженерные системы — это широкая классификация, охватывающая, помимо прочего, программное обеспечение , компьютерное оборудование , электронику , схемы и машины .
Нежелательный результат можно классифицировать и описать многими способами, включая: прерывистый, временный, сбой , сбой или зависание .
Поскольку желательность субъективна, то, что считается нежелательным для одного, может считаться желательным для другого; даже полезная функция.
Среднеанглийское слово bugge является основой для терминов bugbear и bugaboo , используемых для обозначения монстра. [1]
Термин «баг» для описания дефекта появился в инженерном жаргоне еще в 1870-х годах — задолго до появления электронных компьютеров и программного обеспечения. Например, Томас Эдисон написал следующие слова в письме к своему коллеге в 1878 году:
Так было во всех моих изобретениях. Первый шаг — интуиция, и она приходит со взрывом, затем возникают трудности — эта штука дает сбой, и [именно] тогда «баги» — как называют такие мелкие ошибки и трудности — показывают себя, и требуются месяцы интенсивного наблюдения, изучения и труда, прежде чем коммерческий успех или неудача будут достигнуты наверняка. [2]
В комиксе, напечатанном в журнале телефонной промышленности 1924 года, наивный персонаж слышит, что у человека есть работа «охотника за жуками», и дарит ему в подарок чесалку для спины . Мужчина отвечает: «Разве вы не знаете, что «охотник за жуками» — это просто прозвище для ремонтника ?» [3]
Baffle Ball , первая механическая игра в пинбол , была разрекламирована в 1931 году как «не содержащая ошибок». [4]
Проблемы с военным снаряжением во время Второй мировой войны назывались ошибками (или сбоями ). [5]
В фильме 1940 года «Командование полетов » дефект в части пеленгаторного оборудования называется « жучком» . [ необходима цитата ]
В книге, опубликованной в 1942 году, Луиза Дикинсон Рич , говоря о машине для резки льда с электроприводом , сказала: «Резка льда была приостановлена до тех пор, пока не был привлечен ее создатель, чтобы извлечь насекомых из своего любимца». [6]
Айзек Азимов использовал термин «жук» для обозначения проблем с роботом в своем рассказе « Поймай кролика », опубликованном в 1944 году.
Пионер компьютеров и контр-адмирал Грейс Хоппер популяризировала историю о моли , которая вызвала проблему в раннем электромеханическом компьютере. [7] Пока Хоппер работала над Mark II и Mark III в качестве преподавателя Гарварда примерно в 1947 году, операторы проследили ошибку в Mark II до моли , попавшей в реле. Моль была удалена из механизма и занесена в бортовой журнал с пометкой «Первый фактический случай обнаружения ошибки». [8] Как сообщается, операторы, включая Уильяма «Билла» Берка, позже работавшего в Лаборатории военно-морского оружия в Дальгрене, Вирджиния , [9] были знакомы с инженерным термином и, вероятно, пошутили, смешав два значения слова bug (биологический и дефект). Хотя, вероятно, это была шутка, история указывает на то, что в то время этот термин широко использовался в компьютерной сфере. [10] [11] [12] [13] Бортовой журнал, полный моли, является частью коллекции Смитсоновского национального музея американской истории . [12]
Родственный термин debug также, по-видимому, появился раньше, чем в вычислительной технике: в этимологии слова Оксфордского словаря английского языка есть свидетельство от 1945 года, в контексте авиационных двигателей. [14]
Поскольку ошибка подразумевает нежелательное поведение, называть поведение ошибкой субъективно. Поведение, которое некоторые считают ошибкой, другие могут считать полезной функцией, поэтому распространенной фразой является «Это не ошибка, это функция» (INABIAF). [15] Эта шутка записана в The Jargon File, датируемом 1975 годом, но датируется 1971 годом, когда программист PDP-8 Сандра Ли Харрис из Digital Equipment Corporation (DEC) провела различие между проблемами, которые должны быть исправлены в коде для интерпретатора FOCAL компании DEC , и проблемами, которые должны быть задокументированы или разъяснены в руководстве пользователя. [16]
Такое поведение может быть явно сообщено пользователям или может остаться недокументированной функцией .
(См. изображение рекламы в справочной записи)