Какие ошибки допускают программисты, и что происходит после

Содержание:

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

Какие ошибки допускают программисты, и что происходит после

Что означает слово и как оно появилось

Начинающие разработчики часто интересуются у опытных: «Что такое баги?». Существует две версии появления этого устойчивого выражения, когда говорят об ошибках в приложении, коде или программе.

Первая версия гласит, что придумал это слово Томас Эдисон. Да, это тот человек, который изобрел фонограф. Когда был разработан фонограф и во время воспроизведения возник шум в устройстве, ученый подумал, что в девайс залез большой таракан. Поэтому ему пришлось раскрутить крышку и осознать, что на самом деле в нем никакого таракана не было. А помехи были в самой начинке устройства.

Вторая версия переносит нас в 1945 год, в университет Гарвард. Ученые в то время проводили опыты над ЭВМ — электронной вычислительной машиной. Называлась она Mark II Aiken Relay Calculator. Гаджет работал со сбоями, поэтому ученым пришлось вскрыть устройство, и они нашли застрявшего между микросхем мотылька. Они посчитали, что именно это насекомое стало причиной сбоев. С тех пор слово «баг» прочно вошло в обиход всех, имеющих дело с электронной техникой, и стало означать компьютерную ошибку.

Важно! Слово «баг» в переводе с английского значит «жук», «жучок».

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

Какие ошибки допускают программисты, и что происходит после

Какие типы ошибок существуют

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

Например, ошибки подразделяют по размеру влияния на работу приложения:

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

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

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

Баги в программировании возникают часто и становятся причиной неправильной работы целого приложения. По частоте их тоже делят на три типа:

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

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

У всех ошибок есть названия собственные или клички, которые навешивают им программисты. Некоторые из них входят в обиход, и пользуются ими разработчики из Америки, Европы, России.

Некоторые имена собственные таких ошибок приведены ниже:

  • мандельбаг. Это ошибка, которую нельзя предугадать;
  • шрединбаг. Такой баг является очень опасным. Приложение прекратит функционировать, если программист допустит эту ошибку. Хитрость заключается в том, что такие баги никак себя не выдают до тех пор, пока не начнется нагрузочное тестирование. Иногда ошибки настолько хорошо маскируются, что завершают успешно тесты. Проявляются только тогда, когда пользователь запустит программу у себя на рабочем столе. А она просто схлопнется и выдаст ошибку;
  • гейзенбаг. Такой тип ошибки тоже считается трудно обнаруживаемым. Она может исчезнуть и снова появиться;
  • борбаг — это самая простая ошибка. Ее легко обнаружить и исправить. Такие ошибки вылезают каждый раз при написании кода.

А теперь давайте посмотрим на те ошибки, которые привели к катастрофическим результатам.

Баги, ставшие катастрофой для людей

Опытные программисты старшего поколения рассказывают, что в 1962 году один из разработчиков программного обеспечения для ракеты Mariner 1 прописал код с ошибкой. Он допустил пропуск черты над символом.

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

В семидесятых годах один из программистов инженерного программного обеспечения предположил, что колонны не рухнут и будут только сжиматься. В результате исполненный чертеж на созданной им программе был взят в работу. Построено огромное здание в Харфорде, Цивик Центр.

Какие ошибки допускают программисты, и что происходит после

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

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

На Транссибирской магистрали произошел взрыв труб, по которым подавался газ. Случился он из-за ошибки в программном обеспечении, благодаря которому давление должно было всегда оставаться в норме. А так как программист допустил ошибку, то давление стало все время нагнетаться, пока не рванула конструкция.

Российские исследователи говорят, что виной тому стал металл, который использовали для труб. Он не выдержал общего подаваемого давления. Но многие, в том числе ЦРУ, указывают на ошибку в программном обеспечении.

В 1987 году крах Wall Street произошел по ошибке… программиста. Хотя до сих пор мнения разнятся. Так, многие утверждают, что мыльный пузырь должен был давно лопнуть. Этот крах начался еще в Гонконге, когда там произошел экономический кризис. А ведь в Гонконге в то время программирование не было распространено.

Другие винят программное обеспечение, которое начало бесконтрольно сбрасывать ценные бумаги в рынок, из-за чего те стали быстро обесцениваться.

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

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

Случались проблемы и в медицинской практике. Так, в 1999 году программное обеспечение, которое должно было лечить людей от рака, подавало усиленное облучение. В результате ошибки погибло 8 человек.

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

Врачи были осуждены за халатное отношение к своей работе.

В 2007 году произошли проблемы и с операционной системой Windows XP. Все пользователи тогда получили сообщение, что ОС, которой они пользуются, пиратская. У многих отключились такие функции ОС, что никто из людей не смог работать на ней.

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

Орфографические ошибки в программировании

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

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

Пользователи, которые изучают английский язык, сейчас увидят хорошо знакомое слово: cooperation — «сотрудничество». Английский дает право писать его еще и по-другому. Например, так — co-operation. Вы найдете в словаре Lingvo две версии одного и того же слова. Это классно. Но вот то, что случилось дальше, не покажется никому смешным.

Утилиты проверки орфографии англоязычных текстов имеют в словаре оба варианта. Интересное начинается потом: правительства Европы и Америки узнали о неправильном написании этого слова только в последние годы. А ведь этот неправильный вариант появился еще в далеком 1989 году и присутствовал во всех программах типа Microsoft Word.

Умная замена всегда предлагала пользователям написать Cupertino — название города в Калифорнии — вместо нужного Cooperation. Так, многие государственные органы, не только обычные люди, полагались на автозамену и после написания не прочитывали документ заново на проверку от ошибок.

Если вы заглянете в архивы ООН, НАТО, Евросоюза, то обнаружите большое количество документов со словом «Купертино» вместо «сотрудничество».

Давайте посмотрим на некоторые известные примеры, которые были вынесены государствами на общий обзор:

  • «Купертино с нашими итальянскими товарищами было очень плодотворным».
  • «Азиатская ассоциация регионального Купертино».
  • «Презентация афро-немецкого Купертино».

Из-за большой распространенности данного бага программисты обозвали ошибку эффектом Купертино. Однако это не единственный баг, которым грешат автозамены. Их много не только в русском, но и английском языках.

Так, лингвист из Соединенных Штатов Америки Бенджамин Зиммер выявляет такие случаи и заносит их в свою коллекцию. Например, у него в коллекции есть баг из газеты New York Times, где вместо Voldemort прописано Voltmeter.

Есть повод задуматься над быстрым набором слов. Опытные программисты советуют всегда проверять автозамену и не полагаться всерьез на нее.

Какие ошибки допускают программисты, и что происходит после

Есть и ошибки в играх. Например, многие говорят, что в игре Sid Miere’s Civilizations такая ошибка привела к тому, что один из миролюбивых лидеров превращался в агрессора. Звали его Махатма Ганди. Он на своих противников сбрасывал ядерные боеголовки.

Заключение

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

Если же вы хотите стать опытным программистом и постараться избавить мир от ошибок, приходите на IT-курсы от DevEducation. Здесь вы получите все необходимые знания в выбранной вами профессии.

Присоединяйся к DevEducation — стань востребованным специалистом и построй карьеру в IT!