Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
К вопросу о классификации программных ошибок.doc
Скачиваний:
7
Добавлен:
14.11.2019
Размер:
169.98 Кб
Скачать

Классификация программных ошибок (багов) с точки зрения субъективного восприятия их программистами

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

В Интернете можно найти несколько вариантов такого рода классификаций программных ошибок. Вот некоторые фрагменты, взятые из классификации статьи [10].

«Бозебаг - это скопление ошибок в каком-то конкретном месте исполняемого кода, бесконечное их число.

Борбаг - ошибка, которая, в противоположность гейзенбагу, не исчезает и не меняет своих свойств при попытке её обнаружения. Данный тип ошибки характеризуется как устойчивый и поэтому назван в честь атомной модели, разработанной Нильсом Бором.

Гейзенбаг - тип ошибки, которая исчезает или меняет свои свойства при попытке её обнаружения.

Примером могут являться ошибки, которые проявляются в окончательном варианте программы (релизе), однако не видны в режиме отладки, или ошибки синхронизации в многопоточном приложении. Данное название является игрой слов и происходит от физического термина «Принцип неопределённости Гейзенберга», который на бытовом уровне понимается как изменение наблюдаемого объекта в результате самого факта наблюдения, происходящее в квантовой механике.

Дзенбаг - это такая ошибка, которая, в общем-то, ни на что не влияет, но при этом ошибкой всё же является.

Шрёдинбаг - один из самых интересных типов ошибок, который никак не проявляет себя, однако внезапно возникает, если кто-то наткнётся на него в исходном коде или попытается использовать программу в необычных условиях и осознаёт, что система вообще не могла работать при наличии такой ошибки. После этого программа перестаёт работать вообще до тех пор, пока ошибка не будет исправлена. Хотя это звучит невероятно, некоторые программы содержат в себе латентные шрёдинбаги. Слово «шрёдинбаг» происходит от мысленного эксперимента с котом Шрёдингера. Забавным примером можно считать историю о старике и бороде (хотя само название «шрёдинбаг» в ней, разумеется, не упомянуто). Некоторого старика с длинной бородой спросили, куда он кладет бороду, когда спит — под одеяло или на одеяло. Он понял, что не знает, а когда лег спать, попытался выяснить это опытным путем. Попробовал положить под одеяло — очень неудобно, на одеяло — тоже очень неудобно. Поскольку оба варианта не подходили, старик больше не мог заснуть, и через некоторое время скончался от недостатка сна».

В статье [11] дается, например, такое «определение» программных ошибок и весьма оригинальная метрика качества программы:

«Баг - Маленький зверёк, обитает обычно в программистах и в моске некоторых юзверей (естественно, если у них есть моск). Чем больше багов, тем злее программист. В процессе программирования баги переносятся из организма программиста посредством рук и других частей тела непосредственно в тело программы. Также баг — в международной системе СИ мера измерения правильности программы и прямости рук программиста. Формула для нахождения бажености программы :

(e2+2w)/(l+k), где e — количество матерных сообщений компилятора об ошибках, w — количество матерных сообщений компилятора о предупреждениях, l — количество символов в программе, k — коэффицент красноты глаз программиста».

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]