Что представляет собой ошибка?

На самом деле, что это за ошибка? какие-либо предопределенные правила?

10
задан 13 June 2012 в 18:41

4 ответа

Ошибка:

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

Вот другое хорошее определение того, что составляет ошибку. Также:

  1. Программа не вела себя согласно намерениям программиста. или
  2. Намерения программиста не выполнили общие и разумные пользовательские ожидания.

У сообщества Ubuntu есть превосходное определение для ошибки в этой Wiki, особенно выделяя различие между ошибкой и недостающими возможностями:

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

В то время как трудно чертить линию, разделяя эти два определения и ответить на вопрос, это ошибки или недостающие возможности?, возможно дать некоторые инструкции:

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

Различие между этими двумя утверждениями: первое более широко распространено (поддерживайте современные окна FS), и таким образом может быть представление как Недостающая возможность, в то время как другой подчеркивает уникальную проблему (не может записать в ReiserFS) - определенная ошибка.

Если Вам интересно, я рекомендую Вам смотреть на команду BugSquad Wiki. Борьба с ошибками является одной из самых интересных операций, вовлеченных в цикл разработки программного обеспечения помимо того, чтобы быть большой возможностью изучения :-)

Спасибо!

14
ответ дан 13 June 2012 в 18:41

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

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

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

Автор вышеупомянутой книги тратит несколько страниц на определение терминов, таких как сбой и дефект , и описывает, почему «ошибка» не является подходящим термином (слишком нечетким). [ 1122]

Краткое изложение его терминологии:

  1. программист создает дефект
  2. дефект вызывает инфекцию ( «ошибочное состояние программы»)
  3. заражение распространяется
  4. заражение вызывает сбой («наблюдаемое плохое / непреднамеренное поведение»)
  5. Наблюдатель (обычно конечный пользователь) видит сбой

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

0
ответ дан 13 June 2012 в 18:41

Я сделаю качели. В первую очередь, поведение, не предназначенное для дизайнера / программиста (исключая плохой дизайн). Что касается ошибок, о которых вы должны сообщать людям, обо всем, что заставляет программу работать, и соответствует приведенному выше описанию. Это включает в себя, от худшего до наименее серьезного, системные сбои, сбои Х, программные сбои и любые внутренние программные ошибки.

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

0
ответ дан 13 June 2012 в 18:41

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

0
ответ дан 13 June 2012 в 18:41

Другие вопросы по тегам:

Похожие вопросы: