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


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.