Баг - это..? Что такое баг в программировании?

0
0

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

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

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

баг это

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

что такое баг

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

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

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

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

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

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

в программировании баг

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

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

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

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

  • фатальными;
  • серьезными;
  • незначительными.

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

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

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

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

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

Типы сбоев

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

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

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