Меню Закрыть

Баг что это такое простыми словами

Содержание

В программировании "баг" — термин, заимствованный из английского языка, который обозначает сбой в работе какой-либо программы, последствия которого непредсказуемы. Причина появления таких сбоев — ошибки разработчиков приложений в кодах. Соответственно, программа, в которой замечены баги, именуется "багнутой" или "глючной".

Отчеты о багах

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

После ручного закрытия приложения в диалоговом окне пользователя появляется автоматический отчет для разработчика, именуемый " bug report" (отчет об ошибке). При автоматическом завершении сеанса работы приложения появляется окно " crash report" (отчет об аварийном завершении).

Только программисты знают, что такое баг, как его локализовать, отладить и протестировать приложение.

Происхождение термина

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

Так, известный изобретатель Томас Эдисон еще в 1878 году говорил, что каждое его изобретение так или иначе было связано в багами. Создание устройств — это дело техники, но неизбежно каждое из них рано или поздно начинало отказываться работать. Тогда Эдисон и ввел понятие "жучков". По его словам баг — это мелкая трудность или ошибка, которую можно устранить только спустя долгое время и на основании результатов наблюдений, замеров и опытов.

Также термин "баги" применялся во времена Второй мировой войны. Тогда только военные знали, что такое баг, называя условно этим термином неполадки в работе радарной электроники.

В программировании баг — что это такое? Определение его впервые ввела Грейс Хоппер в 1946 году. В то время она работала над программированием вычислительной машины в Гарварде. Однако в какой-то момент работы устройство отказывалось реагировать и отключалось. Тогда Грейс решила отследить сбой изнутри машины. К ее удивлению, причиной ошибки в вычислениях стал мотылек, который застрял между контактами реле. Мотылек до сих пор хранится в техническом дневнике под скотчем под записью: "Первый действительный случай нахождения жука".

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

В отношении этапов программирования ошибки разделяют на следующие группы:

  • Синтаксические. Причина такого сбоя — это непроставленная открывающаяся или закрывающаяся скобка в коде, что делает компиляцию файла невозможной.
  • Предупреждающие. Причина такого сбоя — это намеренное или случайное написание программистом переменной, которую система не может инициализировать. Такой баг появляется еще на этапе разработки ПО. Разработчик либо исправляет требуемую часть кода, либо игнорирует сообщение.
  • Семантические. Такие сбои связаны со смысловыми нарушениями в разработке ПО, к примеру, вместо операции сложения выполняется операция вычитания переменных.
Читайте также:  Иерархия видеокарт amd radeon

По своему объему баги бывают:

В зависимости от времени баги бывают:

  • постоянные, сопровождающие каждый запуск приложения;
  • периодические, возникающие по плавающему типу;
  • клиентские, т.е. проявляющиеся только у пользователя вследствие неверных настроек его компьютера.

В зависимости от места выявления ошибки бывают:

  • обнаруженными в пользовательском интерфейсе;
  • появляющимися в процессе обработки результатов репортов;
  • появляющимися в момент, когда выполняется какое-либо условие;
  • связанными с вычислениями;
  • появляющимися при обработке и интерпретации информации;
  • обнаруженными при увеличении нагрузки на систему;
  • связанными с идентификаторами или контролем версии;
  • связанными с тестированием.

Каждая ошибка может проявиться в любое время. Это зависит от ее характера, загруженности системы пользователя, настроек. Возникающие баги делают компьютер более уязвимым для несанкционированного доступа или DoS-атаки.

Типы сбоев

Стабильный и легко обнаруживаемый баг — это борбаг.

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

Критический сбой, приводящий к полному прекращению функционирования системы, называют шрединбагом.

Широко распространена легенда, что 9 сентября 1945 года учёные Гарвардского университета, тестировавшие вычислительную машину Mark II Aiken Relay Calculator, нашли мотылька, застрявшего между контактами электромеханического реле, и Грейс Хоппер произнесла этот термин. Извлечённое насекомое было вклеено скотчем в технический дневник, с сопроводительной надписью: «First actual case of bug being found» (рус. «первый реальный случай, когда был найден жук» ). Считается, что этот забавный факт положил начало использованию слова «debugging» в значении «отладка программы», однако, скорее всего, фраза является каламбуром.

В действительности этот случай произошёл 9 сентября 1947, а не 1945, года. Слово «bug» в современном значении употреблялось задолго до этого персоналом телеграфных и телефонных компаний в отношении неполадок с электрооборудованием и радиотехникой. Во время Второй мировой войны словом «bugs» назывались проблемы с радарной электроникой. В 1878 году Томас Эдисон писал:

Это повторялось снова и снова со всеми моими изобретениями. Первым шагом была интуиция, за ней следовала вспышка, затем возникали препятствия — и они исчезали, потом возникали Баги — так называются маленькие недочеты и трудности — и необходимы месяцы постоянного поиска, исследований и тяжелого труда до успеха или неудачи. [1]

It has been just so in all of my inventions. The first step is an intuition, and comes with a burst, then difficulties arise—this thing gives out and [it is] then that «Bugs»—as such little faults and difficulties are called—show themselves and months of intense watching, study and labor are requisite before commercial success or failure is certainly reached.

Поиск и исправление ошибок

Для отладки программы (англ. debugging ) разработчиками ПО используются специальные программы-отладчики (англ. debugger ). Например, в операционной системе Windows можно использовать программу WinDbg из пакета Microsoft Debugging Tools for Windows. Для GNU/Linux и ряда других UNIX-подобных операционных систем существует отладчик GDB (GNU Debugger).

Читайте также:  File get contents 404

Отчёты об ошибках

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

Например, в операционную систему Windows встроена утилита Dr. Watson, которая по умолчанию отлавливает ошибки в приложениях пользователя и отправляет отчёт на специальный Сервер компании Microsoft. Также в качестве примера можно привести аналогичные библиотеки Breakpad [2] и CrashRpt [3] .

Порой, бороздя просторы интернета, можно встретить слово "баг". Что оно обозначает и какова этимология данного слова? Узнать ответы на данные вопросы вы сможете в этой статье.

Баг — это что такое?

Слово "баг" произошло из английского языка. На английском bug (произносится как "баг") — это букашка или жучок. Употребляется данное слово в основном среди программистов, тестеров и геймеров. Но что оно обозначает?

Баг — это несоответствие между техническим заданием программы и реальным поведением системы. Вследствие этого несоответствия софт не может выполнить задуманную разработчиком функцию. Говоря простым языком, баг — это ошибка, которая происходит из-за недоработки в исходном коде программы.

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

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

Если верить легенде, то данный профессионализм появился еще в далеком 1945 году. Произошло это, когда ученые из Гарвардского университета проводили тестирование новой вычислительной машины под названием Mark II Aiken Relay Calculator. Устройство отказывалось работать, и причиной этому стал крохотный мотылек, который застрял между контактами. Насекомое извлекли из вычислительной машины и влепили в специальный технический дневник. Около мотылька находилась сопроводительная надпись «First actual case of bug being found», что переводится как "Первый случай в практике, когда был обнаружен жучок (баг)". После этой забавной истории слово "баг" и стало использоваться в значении "ошибка".

Также существует версия, что этот профессионализм появился задолго до испытаний вычислительного устройства. Некоторые считают, что термин "баг" обязан своим происхождением известному изобретателю Томасу Эдисону. По легенде, Эдисон искал в своем фонографе таракана, но его там не оказалось. Баг был в самом аппарате.

Читайте также:  Windows 10 esd лицензия

Очередная версия гласит, что слово "баг" появилось во времена Второй мировой войны. Тогда под данным термином подразумевали неполадки с радарной техникой.

Слово "баг" начало быстро распространяться. В 80–90-х годах данный профессионализм употребляли лишь программисты. С появлением интернета слово начало активно муссироваться. Сейчас же "баг" в своем лексиконе употребляют все, кто имеет хотя бы малейшее отношение к компьютерным технологиям (геймеры, обычные интернет-юзеры и т. д.). Поэтому сейчас его можно смело назвать частью интернет-сленга.

Игровые баги

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

Пожалуй, самым забагованным проектом за последние несколько лет можно назвать Assassin’s Creed: Unity. Проекты "Юбисофт" никогда не славились своей оптимизацией, но Unity — это настоящая энциклопедия багов. Порой персонажи находятся в очень странных и неестественных позах, проваливаются в текстурки, проходят через стены или же попросту зависают. Чего только стоит баг, который в считаные часы облетел весь интернет (у персонажей просто пропадали лица, из-за чего выглядели они довольно жутко). Даже сама "Юбисофт" признала свою ошибку, выпустила патч, который фиксит баги, и возместила покупателям ущерб.

Порой игроки воспринимают баги в качестве фичи, особенности игры. Так произошло с мегауспешной серией игр под названием Mortal Kombat. В первой части игры был баг, который перекрашивал Скорпиона (одного из основных персонажей игры) в красный цвет. При этом имя героя заменялось на сообщение об ошибке Error Macro. Игроки посчитали, что эта недоработка является задумкой разработчиков, а красный ниндзя — это дополнительный секретный персонаж. Эду Буну (создатель МК) понравилась данная затея, и в последующей части он добавил в игру этого героя под именем Эрмак (сокращение от той самой Error Macro).

Как уберечь себя от багов?

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

Но не всегда тестеры находят баги, и порой пара-тройка недоработок все же просачивается в финальную версию проекта. В таком случае вся надежда на пользователей, которые могут отправить специальное письмо с описанием ошибки — баг-репорт. Это поможет улучшить конечный продукт. Кроме того, крупные компании хорошо вознаграждают за нахождение багов в их продукции. К примеру, в качестве поощрения за нахождение значимых багов в своем браузере Google готова дать 15 тысяч долларов.

Рекомендуем к прочтению

Добавить комментарий

Ваш адрес email не будет опубликован.