Jump to content

Программная ошибка

(Перенаправлено из известной ошибки )

Программная ошибка - это ошибка в компьютерном программном обеспечении .

Компьютерная программа со многими или серьезными ошибками может быть описана как багги .

Эффекты программных ошибок - от незначительных (таких как сферируемое слово в пользовательском интерфейсе ) до сильного (например, частых сбоев ).

Программные ошибки были связаны с бедствиями. Программные ошибки в Therac-25 машине радиационной терапии были непосредственно ответственны за смерть пациентов в 1980-х годах. В 1996 году прототип европейского космического агентства в 1 миллиард долларов США Ariane 5 была разрушена менее чем через минуту после запуска из-за ошибки в программе BORD GUINANCS Computer. [ 1 ] В 1994 году разбился вертолет RAF Chinook , убив 29; Первоначально был обвинен в ошибке пилота, но позже считался вызванной программной ошибкой на компьютере управления двигателем . [ 2 ] начала 21 -го века Программное обеспечение Buggy вызвало скандал с британским почтовым отделением . [ 3 ]

В 2002 году исследование, проведенное в эксплуатации торговли Министерства торговли Министерства США процент валового внутреннего продукта ». [ 4 ]

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

Терминология

[ редактировать ]

Метаморфизм ошибки (от греческой meta = "change", morph = "form") относится к эволюции дефекта на последнем этапе развертывания программного обеспечения. Трансформация «ошибки», совершенная аналитиком на ранних стадиях жизненного цикла разработки программного обеспечения, что приводит к «дефекту» на последней стадии цикла, была названа «метаморфизмом ошибки». [ 5 ]

Различные этапы ошибки в цикле развития могут быть описаны как ошибка, [ 6 ] : 31  аномалия, [ 6 ] : 10  вина, [ 6 ] : 31  отказ, [ 6 ] : 31  ошибка, [ 6 ] : 31  исключение, [ 6 ] : 31  крушение, [ 6 ] : 22  глюк, ошибка, [ 6 ] : 14  дефект, инцидент, [ 6 ] : 39  или побочный эффект.

Иногда использование ошибки для описания поведения программного обеспечения спорно из -за восприятия. Некоторые предполагают, что термин должен быть заброшен; заменен дефектом или ошибкой .

Некоторые утверждают, что ошибка подразумевает, что дефект возник сам по себе и стремится использовать дефект вместо этого, поскольку он более четко означает, вызванный человеком. [ 7 ]

Некоторые утверждают, что ошибка может быть использована для сокрытия преднамеренного проектного решения. В 2011 году, получив проверку от сенатора США Аль Франкена за запись и хранение местоположений пользователей в незашифрованных файлах, [ 8 ] Apple назвала поведение ошибкой. Тем не менее, Джастин Брукман из Центра демократии и технологий непосредственно бросил вызов этому изображению, заявив: «Я рад, что они исправляют то, что они называют ошибками, но я соблюдаю их сильное отрицание, что они отслеживают пользователей». [ 9 ]

Профилактика

[ редактировать ]
Ошибка, вызванная программной ошибкой, отображаемой на двух экранах на станции La Croix de Berny во Франции

Предотвращение ошибок как можно раньше в процессе разработки программного обеспечения является целью инвестиций и инноваций. [ 10 ] [ 11 ]

Языковая поддержка

[ редактировать ]

Новые языки программирования , как правило, предназначены для предотвращения общих ошибок на основе уязвимостей существующих языков. Уроки, извлеченные из более старых языков, таких как Basic и C, используются для информирования о дизайне более поздних языков, таких как C# и Rust .

Языки могут включать такие функции, как система статического типа , ограниченные пространства имен и модульное программирование . Например, для напечатанного, скомпилированного языка (например, C ):

float num = "3";

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

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

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

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

Методы программирования, такие как стиль программирования и защитное программирование, предназначены для предотвращения опечаток.

Например, ошибка может быть вызвана относительно незначительной типографской ошибкой (опечатка) в коде. Например, этот код выполняет функцию foo Только если conditionэто правда.

if (condition) foo();

Но этот код всегда выполняется foo:

if (condition); foo();

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

if (condition) {
  foo();
}

Применение конвенций может быть ручным (т.е. через обзор кода ) или с помощью автоматических инструментов.

Спецификация

[ редактировать ]

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

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

Программное тестирование

[ редактировать ]

Одна цель тестирования программного обеспечения - найти ошибки.

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

Гибкие практики

[ редактировать ]

Разработка Agile Software может включать частые программные выбросы с относительно небольшими изменениями. Дефекты раскрываются от отзывов пользователей.

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

Статический анализ

[ редактировать ]

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

Инструменты для мониторинга производительности программного обеспечения по мере его выполнения, специально для поиска таких проблем, как узкие места , либо для того, чтобы убедиться в корректировке работы, могут быть явно встроены в код (возможно, так же просто, как утверждение PRINT "I AM HERE"), или предоставляется в качестве инструментов. Часто неожиданно найти, где большую часть времени принимается куском кода, и это удаление предположений может привести к перезаписи кода.

Открытый исходный код

[ редактировать ]

Разработка с открытым исходным кодом позволяет любому изучить исходный код. Школа мышления, популяризированная Эриком С. Рэймондом в качестве закона Линуса, говорит, что популярное программное обеспечение с открытым исходным кодом имеет больше шансов иметь мало или нет ошибок или нет, чем в других программных делах, потому что «дава достаточно глазных яблок, все ошибки неглубокие». [ 12 ] Однако это утверждение оспаривалось: специалист по компьютерной безопасности Элиас Леви писал, что «легко скрыть уязвимости в сложном, мало понятом и незарегистрированном исходном коде», потому что «даже если люди просматривают код, это не означает, что они не значат «Квалифицирован для этого». [ 13 ] Примером программной ошибки с открытым исходным кодом была уязвимость OpenSSL 2008 года в Debian .

Отладка может быть значительной частью жизненного цикла разработки программного обеспечения . Морис Уилкс , пионер раннего вычислителя, описал свое осознание в конце 1940 -х годов, что «Большая часть оставшейся части моей жизни была потрачена на поиск ошибок в моих собственных программах». [ 14 ]

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

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

Некоторые утверждают, что поиск ошибки является чем -то вроде искусства.

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

Иногда наиболее сложной частью отладки является поиск причины ошибки. После того, как можно было найти, исправление проблемы иногда легко, если не тривиально.

Иногда ошибка не является изолированным недостатком, но представляет собой ошибку мышления или планирования со стороны программистов. Часто такая логическая ошибка требует, чтобы раздел программы была пересмотрена или переписана.

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

Как правило, первый шаг в поиске ошибки - это надежно воспроизводить ее. Если не может воспроизвести проблему, программист не может найти причину ошибки и, следовательно, не может ее исправить.

Некоторые ошибки раскрываются входными данными, которые могут быть затруднены для воссоздания программиста. Одной из причин смерти от радиационной машины Therac-25 была ошибка (в частности, условие гонки ), которая произошла только тогда, когда оператор машины очень быстро внес план лечения; Потребовались дни практики, чтобы сделать это, поэтому ошибка не проявлялась в тестировании или когда производитель попытался его дублировать. Другие ошибки могут перестать происходить всякий раз, когда настройка дополняется, чтобы помочь найти ошибку, например, запуск программы с отладчиком; Они называются Heisenbugs (с юмором назван в честь принципа неопределенности Гейзенберга ).

С 1990 -х годов, особенно после катастрофы Ariane 5 Flight 501 , интерес к автоматическим СПИДу для отладки Rose, такой как анализ статического кода с помощью абстрактной интерпретации . [ 15 ]

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

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

Управление

[ редактировать ]
Пример истории ошибок ( данные проекта GNU ClassPath ). Новая ошибка изначально не подтверждена. После того, как воспроизводимость подтверждена, это изменяется на подтверждение . Как только проблема будет решена, она изменяется на фиксированное .

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

Инструменты часто используются для отслеживания ошибок и других проблем с программным обеспечением. Как правило, разные инструменты используются командой разработки программного обеспечения для отслеживания их рабочей нагрузки, чем обслуживанием клиентов для отслеживания отзывов пользователей . [ 16 ]

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

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

Серьезность - это мера воздействия, которое оказывает ошибка. [ 19 ] Это влияние может быть потеря данных, финансовая, потеря гудвилла и потраченные впустую усилия. Уровни тяжести не стандартизированы, но различаются по контексту, таким как промышленность и инструмент отслеживания. Например, сбой в видеоигры оказывает другое влияние, чем сбой на банковском сервере. Уровни тяжести могут быть сбоем или повеса , без обходного пути (пользователь не может выполнить задачу), имеет обходной путь (пользователь все еще может выполнить задачу), визуальный дефект (например, ошибка) или ошибка документации . Другой пример набора тяжести: критический , высокий , низкий , блокатор , тривиальный . [ 20 ] Серьезность ошибки может быть отдельной категорией для его приоритета для исправления, или два могут быть определены количественно и управляются отдельно.

Ошибка достаточно серьезна, чтобы задержать выпуск продукта, называется Show Stopper . [ 21 ] [ 22 ]

Приоритет

[ редактировать ]

Приоритет описывает важность разрешения ошибки по отношению к другим ошибкам. Приоритеты могут быть численными, например, с 1 по 5 или названные, такие как критические , высокие , низкие и отложенные . Значения могут быть одинаковыми или идентичными рейтингам тяжести, даже если приоритет является другим аспектом.

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

Пластырь

[ редактировать ]

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

Выпуск обслуживания

[ редактировать ]

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

Известный вопрос

[ редактировать ]

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

  • Срок должен быть соблюден, и ресурсов недостаточно, чтобы исправить все ошибки в крайний срок [ 23 ]
  • Ошибка уже зафиксирована в предстоящем выпуске, и она не имеет высокого приоритета
  • Изменения, необходимые для исправления ошибки, слишком дороги или влияют на слишком много других компонентов, что требует крупного тестирования
  • Можно подозреваться или известно, что некоторые пользователи полагаются на существующее поведение багги; Предлагаемое исправление может ввести нарушающееся изменение
  • Проблема заключается в области, которая будет устареться с предстоящим релизом; исправить это ненужное

Подразумеваемое

[ редактировать ]

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

Помимо ущерба, причиненного ошибками, часть их стоимости связана с усилиями, вложенными в их исправление. В 1978 году Lientz et al. показали, что медиана проектов инвестирует 17 процентов усилий по разработке в исправление ошибок. [ 25 ] В 2020 году исследования по репозиториям GitHub показали, что медиана составляет 20%. [ 26 ]

НАСА В 1994 году центру космического полета в Годдарде удалось сократить их среднее количество ошибок с 4,5 на 1000 строк кода ( SLOC ) до 1 на 1000 SLOC. [ 27 ]

В другом исследовании в 1990 году сообщалось, что исключительно хорошие процессы разработки программного обеспечения могут достичь уровня отказов развертывания всего 0,1 на 1000 СЛОК. [ 28 ] Эта цифра повторена в литературе, такой как код, полный Стива Макконнелла , [ 29 ] и исследование НАСА по сложности программного обеспечения полета . [ 30 ] Некоторые проекты даже достигли нулевых дефектов: прошивка в пишущей машинке IBM Wheelwwriter , которая состоит из 63 000 SLOC, и программного обеспечения Space Shuttle с 500 000 SLOC. [ 28 ]

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

  • Шиф -марка Siemens
  • Многие бугны [ 31 ] является эталоном из 185 ошибок C в девяти программах с открытым исходным кодом.
  • Defects4j [ 32 ] является эталоном 341 Java Bugs из 5 проектов с открытым исходным кодом. Он содержит соответствующие патчи, которые охватывают различные типы патчей.

Некоторые заметные типы ошибок:

Ошибка проектирования

[ редактировать ]

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

Арифметика

[ редактировать ]

Численные операции могут привести к неожиданному выходу, медленной обработке или сбою. [ 33 ] Такая ошибка может быть из -за отсутствия осведомленности о качествах хранения данных, таких как точность из -за округления , численно нестабильных алгоритмов, арифметического переполнения и недостаточно потеря Такие языки, как разделение по ноль , которые на некоторых языках могут сделать исключение, а в других могут вернуть специальную ценность, такую ​​как NAN или Infinity .

Управление потоком

[ редактировать ]

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

Взаимодействие

[ редактировать ]
  • Неверное использование API.
  • Неправильная реализация протокола.
  • Неправильная обработка оборудования.
  • Неправильные предположения конкретной платформы.
  • Несовместимые системы. Новый API или протокол связи может показаться, когда две системы используют разные версии, но ошибки могут возникнуть, когда функция или функция, реализованная в одной версии, изменяются или отсутствуют в другой. В производственных системах, которые должны постоянно работать, закрытие всей системы для крупного обновления может быть невозможно, например, в телекоммуникационной отрасли [ 34 ] или Интернет. [ 35 ] [ 36 ] [ 37 ] В этом случае меньшие сегменты большой системы обновляются индивидуально, чтобы свести к минимуму нарушения большой сети. Тем не менее, некоторые разделы могут быть упущены и не обновляются, а также вызывают ошибки совместимости, которые могут быть трудно найти и восстановить.
  • Неправильные кодовые аннотации.

Параллелизм

[ редактировать ]

Синтаксис

[ редактировать ]
  • Использование неправильного токена , такого как выполнение назначения вместо теста на равенство . Например, на некоторых языках x = 5 установит значение от x до 5, в то время как x == 5 проверит, является ли X 5 или каким -либо другим номером. Интерпретируемые языки позволяют такому коду не терпеть неудачу. Скомпилированные языки могут поймать такие ошибки до начала тестирования.

Командная работа

[ редактировать ]
  • Невопагенные обновления; Например, программист меняет «myadd», но забывает изменить «mysubtract», который использует тот же алгоритм. Эти ошибки смягчаются философией «Не повторяйся» .
  • Комментарии устарели или неверно: многие программисты предполагают, что комментарии точно описывают код.
  • Различия между документацией и продуктом.

В политике

[ редактировать ]

«Ошибки в системе»

[ редактировать ]

Институт открытых технологий, управляемый группой, New America , [ 38 ] Выпустил отчет «Ошибки в системе» в августе 2016 года, в котором говорится, что политики США должны провести реформы, чтобы помочь исследователям определить и устранить программные ошибки. В отчете «подчеркивается необходимость реформы в области обнаружения и раскрытия уязвимости и раскрытия уязвимости программного обеспечения». [ 39 ] Один из авторов отчета заявил, что Конгресс не сделал достаточно для решения уязвимости кибер -программного обеспечения, хотя Конгресс принял ряд законопроектов для борьбы с более широкой проблемой кибербезопасности. [ 39 ]

Правительственные исследователи, компании и эксперты по кибербезопасности - люди, которые обычно обнаруживают недостатки программного обеспечения. В отчете требуется реформирование законов о преступности и авторских правах. [ 39 ]

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

[ редактировать ]
  • В видеои играх термин « глюк » иногда используется для обозначения программной ошибки. Примером является глюк и неофициальные виды покемонов, пропавшие.
  • Как в романе 1968 года 2001: «Космическая одиссея» и соответствующий фильм 1968 года 2001 года: Космическая Одиссея , встроенный компьютер космического корабля, HAL 9000 , пытается убить всех членов экипажа. В последующем романе 1982 года, 2010: Одиссея два , и сопровождающий фильм 1984 года, 2010 год , выясняется, что это действие было вызвано тем, что компьютер был запрограммирован с двумя противоречивыми целями: полностью раскрыть всю свою информацию и сохранить истинная цель секрета полета от экипажа; Этот конфликт заставил Хэла стать параноидальным и в конечном итоге убийственным.
  • В английской версии Nena Song 99 Luftballons Song 99 (99 красных воздушных шаров) в результате «Bugs in the Software» выпуск группы из 99 красных воздушных шаров ошибается за запуск ядерной ракеты противника, что требует эквивалентного отклика о запуске. , в результате чего катастрофа.
  • В американском офисном помещении 1999 года три сотрудника пытаются (безуспешно) использовать озабоченность своей компании компьютерной ошибкой Y2K, используя компьютерный вирус, который отправляет округлые добычи копейки на их банковский счет-давно известный метод, описанный как салями нарезка .
  • Роман 2004 года «Ошибка » Эллен Уллман о попытке программиста найти неуловимую ошибку в приложении базы данных. [ 40 ]
  • Canadian Film Control Alt Delete Control Alt Alt - это программист в конце 1999 года, пытающийся исправить ошибки в его компании, связанной с проблемой 2000 года.

Смотрите также

[ редактировать ]
  1. ^ «Ариан 5 рейс 501 Отчет о сбое с помощью совета по расследованию» . Европейское космическое агентство . Отчет Совета по расследованию Ariane 501 (33–1996). 23 июля 1996 г.
  2. ^ Саймон Роджерсон (апрель 2002 г.). «Бедствие на вертолете Чинук» . Imis Journal . 12 (2). Архивировано из оригинала 15 сентября 1993 года . Получено 27 мая 2024 года . Alt URL
  3. ^ «Скандал с почтовым отделением разрушил жизнь, запрос слышит» . BBC News . 14 февраля 2022 года.
  4. ^ «Программные ошибки стоят экономики США, дорогой» . 10 июня 2009 года. Архивировано с оригинала 10 июня 2009 года . Получено 24 сентября 2012 года .
  5. ^ «Опыт тестирования: TE: журнал для профессиональных тестеров». Опыт тестирования . Германия: TestingExperience: 42. Март 2012 г.. ISSN   1866-5705 . (требуется подписка)
  6. ^ Jump up to: а беременный в дюймовый и фон глин час я 610.12-1990: IEEE Standard Glossary of Software Engineering Terminology . IEEE . 31 декабря 1990 года. DOI : 10.1109/IEEESTD.1990.101064 . ISBN  978-0-7381-0391-4 .
  7. ^ «Новости в SEI сентябрь 1999 года» . SEI Interactive . 2 (3). Университет Карнеги -Меллона : Институт разработки программного обеспечения . 1 сентября 1999 года.
  8. ^ Грегг Кейзер (21 апреля 2011 г.). «Apple сталкивается с вопросами Конгресса о отслеживании iPhone» . Computerworld .
  9. ^ Грегг Кейзер (27 апреля 2011 г.). «Apple отрицает отслеживание пользователей iPhone, но обещает изменения» . Computerworld .
  10. ^ Дорота Хуизинге; Адам Колава (сентябрь 2007 г.). Автоматизированное предотвращение дефектов: лучшие практики в области управления программным обеспечением . Wiley-Ieee Computer Society Press. ISBN  978-0-470-04212-0 .
  11. ^ Макдональд, Марк; Муссон, Роберт; Смит, Росс (2007). Практическое руководство по предотвращению дефектов . Microsoft Press. п. 480 . ISBN  978-0-7356-2253-1 .
  12. ^ «Выпуск рано, часто выпуск» 14 мая 2011 года в The Wayback Machine , Эрик С. Рэймонд , Собор и Базар
  13. ^ «Широкий открытый исходный код» архив 29 сентября 2007 года, в The Wayback Machine , Elias Levy , SecurityFocus , 17 апреля 2000 г.
  14. ^ «Морис Уилкс цитирует» . Цитата . Получено 28 апреля 2024 года .
  15. ^ «История Polyspace Technologies» . Christele.faure.pagesperso-orange.fr . Получено 1 августа 2019 года .
  16. ^ Аллен, Митч (май -июнь 2002). «Основы отслеживания ошибок: руководство для начинающих по отчетности и отслеживанию дефектов» . Программное тестирование и качественный инженерный журнал . Тол. 4, нет. 3. С. 20–24 . Получено 19 декабря 2017 года .
  17. ^ Рекс Блэк (2002). Управление процессом тестирования (2 -е изд.). Wiley India Pvt. Ограничен. п. 139. ISBN  978-8126503131 Полем Получено 19 июня 2021 года .
  18. ^ Крис Вандер Мей (2012). Доставка величия - практические уроки по созданию и запуска выдающегося программного обеспечения, выучившись на работе в Google и Amazon . О'Рейли СМИ . С. 79–81. ISBN  978-1449336608 .
  19. ^ Солимани Нейсиани, Бехзад; Бабамир, Сейед Мортеза; Арицуги, Масайоши (1 октября 2020 г.). «Эффективная модель извлечения функций для улучшения производительности проверки дубликата обнаружения отчетов об ошибках в системах сортировки программных ошибок» . Информационная и программная технология . 126 : 106344. DOI : 10.1016/j.infsof.2020.106344 . S2CID   219733047 .
  20. ^ "5.3. Анатомия ошибки" . bugzilla.org . Архивировано из оригинала 23 мая 2013 года.
  21. ^ Джонс, Уилбур Д. младший, изд. (1989). "Show Stopper" . Глоссарий: аббревиатуры приобретения обороны (4 изд.). Форт Белвуар, Вирджиния: Министерство обороны, Колледж управления системами обороны . п. 123. HDL : 2027/MDP.39015061290758 - через Hathitrust.
  22. ^ Захари, Г. Паскаль (1994). Show-Stopper!: Головая гонка для создания Windows NT и следующего поколения в Microsoft . Нью -Йорк: свободная пресса . п. 158. ISBN  0029356717 - через archive.org.
  23. ^ «Следующее поколение Lexicon A до Z: выпуск Slipstream». Следующее поколение . № 15. Март 1996 г. с. 41
  24. ^ Карр, Николас (2018). « Это не ошибка, это функция». Банал - или просто правильно? " Полем Wired.com .
  25. ^ Lientz, BP; Свансон, Эб; Tompkins, GE (1978). «Характеристики обслуживания прикладного программного обеспечения» . Коммуникации ACM . 21 (6): 466–471. doi : 10.1145/359511.359522 . S2CID   14950091 .
  26. ^ Амит, Иган; Фейтельсон, Дрор Г. (2020). «Исправляющий метрика качества кода кода». Arxiv : 2007.10912 [ Cs.se ].
  27. ^ «Обзор лаборатории разработки программного обеспечения» (PDF) . Серия лаборатории программного обеспечения (SEL-94-005). Декабрь 1994.
  28. ^ Jump up to: а беременный Кобб, Ричард Х.; Миллс, Харлан Д. (1990). «Инженерное программное обеспечение под статистическим контролем качества» . Программное обеспечение IEEE . 7 (6): 46. doi : 10.1109/52.60601 . ISSN   1937-4194 . S2CID   538311 - Via Университета Теннесси - Харлан Д. Миллс Коллекция.
  29. ^ Макконнелл, Стивен С. (1993). Код завершен . Редмонд, Вашингтон: Microsoft Press. п. 611. ISBN  978-1556154843 - через archive.org. (Cobb and Mills 1990)
  30. ^ Джерард Хольцманн (5 марта 2009 г.). «Приложение D - сложность программного обеспечения» (PDF) . Окончательный отчет: исследование НАСА по сложности программного обеспечения полета (Даниэль Л. Дворак (ред.)) . НАСА ОФИС Главного инженера Программа технического совершенства.
  31. ^ Ле Гус, Клэр; Холцшульт, Нил; Смит, Эдвард К.; Брун, Юрий; Деванбу, Премкумар; Форрест, Стефани; Веймер, Уэстли (2015). «Многочисленные и интротрослевые тесты для автоматического ремонта программ C» . IEEE транзакции на разработке программного обеспечения . 41 (12): 1236–1256. doi : 10.1109/tse.2015.2454513 . ISSN   0098-5589 .
  32. ^ Просто Рене; Джалали, Дариус; Эрнст, Майкл Д. (2014). «Defects4j: база данных существующих разломов для обеспечения контролируемых исследований тестирования для программ Java». Материалы Международного симпозиума по тестированию и анализу программного обеспечения 2014 года - ISSTA 2014 . С. 437–440. Citeseerx   10.1.1.646.3086 . doi : 10.1145/26103884.2628055 . ISBN  9781450326452 Полем S2CID   12796895 .
  33. ^ Энтони Ди Франко; Хуэй Го; Синди Рубио-Гонсалес (23 ноября 2017 г.). Комплексное исследование реальных численных характеристик ошибок . 2017 32 -й IEEE / ACM Международная конференция по автоматической разработке программного обеспечения (ASE). IEEE . doi : 10.1109/ase.2017.8115662 .
  34. ^ Кимблер, К. (1998). Функции взаимодействия в телекоммуникациях и программных системах v . Ios press. п. 8. ISBN  978-90-5199-431-5 .
  35. ^ Сайед, Махбубур Рахман (2001). Мультимедийное сеть: технологии, управление и приложения: технологии, управление и приложения . Идея Group Inc (IGI). п. 398. ISBN  978-1-59140-005-9 .
  36. ^ Ву, Чван-Хва (Джон); Ирвин, Дж. Дэвид (2016). Введение в компьютерные сети и кибербезопасность . CRC Press. п. 500. ISBN  978-1-4665-7214-0 .
  37. ^ RFC 1263: «Расширения TCP, считающиеся вредными» цитаты: «Время для распространения новой версии протокола на все хосты может быть довольно длинным (навсегда на самом деле) ... если есть малейшая несовместимость между старыми и новыми версиями. , хаос может привести к ".
  38. ^ Уилсон, Анди; Шульман, Росс; Бэнкстон, Кевин; Герр, Трей. «Ошибки в системе» (PDF) . Институт открытой политики . Архивировано (PDF) из оригинала 21 сентября 2016 года . Получено 22 августа 2016 года .
  39. ^ Jump up to: а беременный в дюймовый Розенс, Трейси (12 августа 2016 г.). «Кибер -реформы, необходимые для укрепления обнаружения и раскрытия программных ошибок: отчет New America - новости о готовности на родине» . Получено 23 августа 2016 года .
  40. ^ Ульман, Эллен (2004). Ошибка Пикадор ISBN  978-1-250-00249-5 .
[ редактировать ]
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 3a99f260f45d17a2c35bef3d54350b65__1725960540
URL1:https://arc.ask3.ru/arc/aa/3a/65/3a99f260f45d17a2c35bef3d54350b65.html
Заголовок, (Title) документа по адресу, URL1:
Software bug - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)