Hi there! Our project relies on ads or donation to keep the site free to use. Please sending a donation . Thanks!
Подождите, пожалуйста, выполняется поиск в заданном разделе

9.5 Баг и ошибки в программировании

9.5 Баг и ошибки в программировании

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

Баг

 

В программировании баг (англ. bug — первичные значения: клоп, любое насекомое, вирус) — жаргонное слово, обычно обозначающее ошибку в программе или системе, из-за которой программа выдает неожиданное поведение и, как следствие, результат. Большинство багов возникают из-за ошибок, допущенных разработчиками программы в ее исходном коде, либо в ее дизайне. Также некоторые баги возникают из-за некорректной работы компилятора, вырабатывающего некорректный код. Программу, которая содержит большое число багов и/или баги, серьезно ограничивающие ее работоспособность, называют нестабильной или, на жаргонном языке, «глючной», «глюкнутой», «забагованной», «бажной», «баг(а)нутой» ).

Термин «баг» обычно употребляется в отношении ошибок, проявляющих себя на стадии работы программы, в отличие, например, от ошибок проектирования или синтаксических ошибок. Отчет, содержащий информацию о баге также называют отчетом об ошибке или отчетом о проблеме (англ. bug report). Отчет о критической проблеме (англ. crash), вызывающей аварийное завершение программы, называют крэш-репортом (англ. crash report).

«Баги» локализуются и устраняются в процессе тестирования и отладки программы.

 

Содержание

  
  • 1 Этимология термина «баг»
  • 2 Значение и классификация ошибок программного обеспечения
  • 3 Поиск и исправление ошибок
  • 4 Отчеты об ошибках
  • 5 См. также
  • 6 Примечания
  • 7 Ссылки

 

Этимология термина «баг» 

 
Запись в тех.журнале

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

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

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

Значение и классификация ошибок  программного обеспечения 

В зависимости от этапа разработки ПО, на котором выявляется ошибка выделяют:

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

По размеру:

  • Showstoppers;
  • Серьезные;
  • Незначительные баги ;

По времени появления:

  • Постоянно, при каждом запуске;
  • Иногда («плавающий» тип);
  • Только на машине у клиента (зависит от локальных настроек у клиента);

По месту и направлению:

  • Ошибки пользовательского интерфейса;
  • Системы обработки ошибок;
  • Ошибки, связанные с граничными условиями;
  • Ошибки вычислений;
  • Ошибки управления потоком;
  • Ошибки обработки или интерпретации данных;
  • При ситуации "гонок";
  • Повышение нагрузки ;
  • Ошибки контроля версии и индентификаторов;
  • Ошибки тестирования;

В зависимости от характера ошибки, программы и среды исполнения, ошибка может проявляться сразу или наоборот — долгое время оставаться незамеченной (например Проблема 2038 года).

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

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

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

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

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

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

См. также 

 
  • Отчет об ошибке
  • Система отслеживания ошибок
  • Фича
  • Борбаг — легко обнаруживаемый стабильный баг
  • Гейзенбаг — сложно обнаруживаемый, периодически исчезающий и меняющий свойства баг при попытке его обнаружения
  • Мандельбаг — баг с очень сложным, хаотичным, поведением
  • Шрединбаг — критическая ошибка , которая не проявляется пока кто -нибудь на нее не наткнется в исходном коде, после чего программа совершенно перестает работать
  • GIGO
  • Катастрофа Ariane 5 (4 июня 1996) — один из самых дорогостоящих компьютерных багов в истории.
  • Ошибки в программном обеспечении медицинского ускорителя Therac-25 привели к превышению доз облучения нескольких людей.

Приме

Статью о баг я написал специально для тебя. Если ты хотел бы внести свой вклад в развии теории и практики, ты можешь написать коммент или статью отправив на мою почту в разделе контакты. Этим ты поможешь другим читателям, ведь ты хочешь это сделать? Надеюсь, что теперь ты понял что такое баг,ошибки в программировании и для чего все это нужно, а если не понял, или есть замечания, то нестесняся пиши или спрашивай в комментариях, с удовольствием отвечу. Для того чтобы глубже понять настоятелно рекомендую изучить комплексно всю информацию в категории Информатика


Комментарии (0)


Оставить комментарий

ответить

Информатика

Термины: Информатика