Количество ошибок в программе. Последствия, исправление. Насколько это серьезно?

Общедоступные анализы сообщают от 20 до 30 ошибок на 1000 строк исходного кода , что является большим числом. В ядре Linux на 1000 строк исходного кода приходится 0,5 ошибки. С конца 1990-х годов во многих университетах учителя предметов, занимающихся этим вопросом, работали над упражнениями в ядре к упражнениям. Также существует автоматический инструмент, который ищет эти ошибки в коде. Напротив, в Windows, например, эта статистика неизвестна, потому что Microsoft никогда не делала свой исходный код доступным. Но в любом случае всегда есть закономерность, чем меньше используется программное обеспечение, тем больше ошибок.

Падение приложения — угроза

Любой неожиданный сбой приложения представляет собой угрозу и потенциально может быть использован. Как только приложение достигает состояния, в котором происходит так называемое «падение», оно входит в состояние потенциального злоупотребления, потому что это состояние, которое не должно происходить, и этим падением обычно можно злоупотреблять определенным образом. Если у нас нет исходного кода, тестирование сбоев приложения — самый простой способ выявить ошибку.

Последствия программных ошибок

Есть несколько типов этих ошибок, и они могут привести к эффекту домино с различными последствиями для пользователя. Некоторые ошибки минимально влияют на функциональность и поэтому не обнаруживаются. Более серьезные ошибки могут привести к зависанию программы и последующей потере данных. Самые серьезные ошибки могут быть использованы для получения несанкционированного доступа к данным. В 1996 году Европейское космическое агентство уничтожило ракету- носитель Ariane 5 , которая несла спутник Cluster за 500 миллионов долларов, через минуту после запуска из-за ошибки в компьютерной программе командного управления. Исследование, проведенное в Америке, показало, что ошибки в программном обеспечении обходятся экономике США примерно в 59 миллиардов долларов, или 0,6% ВВП

Возможные ошибки

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

Например: при создании относительно простой программы для сортировки слов в алфавитном порядке, что происходит, когда в слове стоит знак «-», может случиться так, что при кодировании в язык программирования может возникнуть ошибка нечеткости. Другой пример: при кодировании оператора в список можно перепутать «<» и «>», а затем они будут перечислены в обратном алфавитном порядке.

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

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

Отладка

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

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

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

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

С 1990 года и, в частности, после инцидента с Ariane 5 были предприняты значительные усилия по разработке инструментов для автоматической отладки кода, таких как методы статического анализа кода.

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

Советуем ознакомиться

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *