Мы решаем контрольные работы!
И ведем блог нашего агентства Neudoff.net!
16.02.2012 10:56 971
VN:F [1.9.22_1171]
Rating: 5.0/5 (1 vote cast)
145 Алексей Игоревич

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

Как говорил великий (не помню кто): «Не ошибается только тот, кто ничего не делает». Согласитесь, выражение архиправильное. Любая человеческая деятельность, какой бы она не была, сопряжена с совершением ошибок. И сегодня хотелось бы поговорить именно об ошибках. Но не о всех ошибках в общем и целом , а об ошибках совершаемых лишь одной «кастой» людей, людей пишущих код — программистами.Поговорим об ошибках в программном коде, а точнее об их названиях.

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

Первое упоминание багов датируется 1878 годом. Впервые о них писал сам Томас Эдисон. Багами он называл недочеты и ошибки в его изобретениях, на исправление которых уходили порой месяцы.

Во время Второй мировой войны багами называли проблемы возникавшие с электроникой: телеграфами, радарами и тд.

Однако есть «официальная», но ошибочная версия появления этого термина. 9 сентября, далекого 1947 года, когда сердцами компьютеров были не микрочипы, а их прабабушки лампы и электромагнитные реле, ученые из Гарвардского университета, проводили тестирование машины  Mark II Aiken Relay Calculator. В результате чего, были обнаружены ошибки в ее работе. После тщательного разбирательства, был найден жук, застрявший между контактов реле и мешавший работе ЭВМ. Именно этот момент можно считать настоящим рождением термина «баг» (почти в том контексте, в котором мы его используем сейчас). Ну а «баг», потому что bug с английского «жук» (именно тот которого нашли).

С тех дремучих лет прошло немало времени; и компьютеры и программисты сделали немалый шаг вперед. «Внуки пришли на смену прабабушкам», а программисты в это время успели написать кучу программ. Многие из них (а точнее почти все) изобилуют багами, порой, такими разнообразными, что их авторы некоторым сходным дали свои имена. В результате появился некий табель или классификация багов, но не буду приводить ее отдельно, а расскажу по порядку о каждом из них отдельно. Перед непосредственным рассмотрением каждого отдельного вида мира «компьютерных жуков», хочется сделать одно любопытное замечание: почти все багги названы в честь известных физиков, никакого отношения к информатике не имевших.Первый в истории баг

Итак, первый в ней это «альфабаг». Альфабагами называют ошибки, которые возникали единожды и обычно были вызваны отказом аппаратного обеспечения из-за действия сильного электромагнитного излучения, альфа-частиц (отсюда и название) и т. д.. Судя из определения, альфабажность в районе Чернобыля резко возрастает.

Следующим в нашем параде идет «бозебаг». Бозебагом называют не отдельный «косяк» в коде, а скоплениеи (часто большое) ошибок. Бозебаг говорит о том, что в этом месте программист уже валился с ног от усталости, но стоически продолжал писать код.

«Борбаг». Это классический баг, обычная ошибка, которую довольно легко обнаружить и исправить. Часто совершается из-за обычной невнимательности и тп.

Другое дело «гейзенбаг». Это полная противоположность борбага. Его сложно обнаружить, сложно исправить и он может менять свои свойства. Гейзенбаг — это «хитрый самообучающийся жук с обостренным инстинктом самосохранения». Чтобы его ликвидировать, нужно очень постараться.

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

Мандельбаг — это борбаг с очень сложным поведением. Некое подобие женщины (да простят меня наши читательницы за такое сравнение, но сложнее поведения женщин, наверное, в мире ничего нет).

Некое подобие дзенбага, это — метабаг – грамматическая ошибка в комментарии.

Еще один очень проблемный баг — фермабаг. Свое, название, как вы понимаете, он получил благодаря Пьеру Ферма и его великой теореме. Не смотря на простую формулировку [теоремы], над ее доказательством бились многие умы на протяжении нескольких столетий. Так и этот баг является сложно доказуемым, так как, по закону подлости или еще чего-либо, проявляет себя только на машинах заказчиков.

Следующий номер нашей программы названием похож на предыдущий, но по сути багом не является, а является характеристикой бажности кода. Фермибаг — это ситуация, когда количество ошибок на строку кода превышает 1-2 штуки.

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

И на последок, по-моему самый интересный экземпляр, дамы и господа, представляю вашему вниманию шредингбаг. Шредингбаг — критическая ошибка, никоим образом не проявляющая себя до тех пор, пока на нее кто-либо не наткнется, но после «встречи» с ней программа полностью перестает работать.

Вот, пожалуй, и все, экскурс в мир «программных жуков» на сегодня окончен.

neudoff.net

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

Войти с помощью: 

*

*


ВКонтакте