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


10

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


Можем ли мы иметь некоторый контекст? Вы говорите с чисто технической точки зрения или об ошибках, о которых сообщают на сайтах отслеживания?
Джереми

5
Все ошибки просто скрытые функции :)
Марко Сеппи

2
Я склонен говорить «недокументированные особенности», а не скрытые :-)
Маленькая Джава,

Ответы:


14

Ошибка заключается в следующем:

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

Вот еще одно хорошее определение того, что представляет собой ошибка. Либо:

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

Сообщество Ubuntu имеет отличное определение ошибки в этой вики , особенно подчеркивая разницу между ошибкой и отсутствующими функциями :

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

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

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

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

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

Спасибо!


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

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

Пожалуйста, также обратитесь к руководству Ubuntu BugSquad по ошибкам: wiki.ubuntu.com/Bugs
Thomas Ward

2

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

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


1

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


1

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

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

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

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

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

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

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

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.