Що являє собою помилку?


10

Насправді, що таке помилка? будь-які заздалегідь визначені правила?


Чи можемо ми мати якийсь контекст? Ви говорите з чисто технічної точки зору або про помилки, про які повідомлятиметься на сайтах відстеження?
Джеремі

5
Усі помилки - це просто приховані функції :)
Marco Ceppi

2
Я схильний говорити "недокументовані функції", а не приховані :-)
Маленька Ява

Відповіді:


14

Помилка:

Помилка програмного забезпечення - це загальний термін, який використовується для опису помилки, помилки, помилки, відмови чи несправності в комп'ютерній програмі чи системі, яка дає невірний або несподіваний результат або викликає поведінку ненавмисно. (З Вікіпедії )

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

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

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

Помилка програмного забезпечення - це помилка або помилка в комп'ютерній програмі, через що вона не працює так, як належить. Це може бути настільки просто, як не працювати взагалі, або настільки ж складно, як тонко неправильний результат [...] Деякі речі не є помилками, але відсутні функції, які слід розумно включати. Про відсутніх функцій не слід повідомляти про помилки, замість них потрібно записати FeatureSpecifications.

Хоча важко провести лінію, що розділяє два визначення та відповісти на питання , це помилки чи відсутні функції? , можна дати деякі рекомендації:

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

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

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

Дякую!


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

Ні, є помилки через перегони. Чому б вам не хотілося також їх виконувати? Буде важко, якщо програміст не зможе відтворити помилку, але це не впливає на бажання зробити це, чи не так?
користувач невідомий

Також зверніться до посібника Ubuntu BugSquad про помилки: wiki.ubuntu.com/Bugs
Thomas Ward

2

Я буду гойдатися. Перш за все, поведінка, не призначена дизайнером / програмістом (знижка поганого дизайну). Щодо помилок, про які слід повідомляти людям, що завгодно, що змушує програму використовувати хердер та відповідає вищеописаному опису. Сюди входять від найгірших до найважчих системних збоїв, збоїв X, збоїв програми та будь-яких внутрішніх помилок програми.

Помилки, які спричиняють збої або закриття вікон, зазвичай спричиняють певний вихід до stderror, якщо ви запускаєте програму з терміналу, це може бути корисно. Також дивіться системні журнали для звітів про помилки.


1

Помилка - це помилка в комп'ютерній програмі чи системі, тому програма не працює належним чином або взагалі не працює. Отже, помилки можуть бути результатом неправильного коду програмування або коду програмування, який недостатньо надійний і не може обробляти певні винятки (наприклад: поділ на 0)


1

У всіх практичних цілях слід уникати терміну "помилка" як занадто нечіткого терміну.

Найкраща відповідь на ваше запитання заповнює цілу книгу: "Чому програми провалюються" Андреаса Зеллера. Книга, яка має бути на книжковій полиці кожного програміста. Автор також докладає великих зусиль, щоб не називати їх "помилками" (читайте далі). Тому що, як відповідь crncosta вже говорить про "помилку", це не просто помилка програмування. Ось чому деякі люди віддають перевагу замість терміна "випуск" (що призводить до "проблема трекера", а не "помилка трекера").

Тому що те, що сприймається кінцевим користувачем як помилка, зовсім не повинно бути помилкою. Це може бути - навіть якщо це часто використовується як кульгавий привід - просто дизайном. Однак деякі помилки, виявлені після помилок, класифікуються як "помилки", хоча вони є відсутністю функції.

Автор згаданої книги витрачає кілька сторінок на визначення таких термінів, як відмова та дефект, та описуючи, чому «помилка» не є відповідним терміном (занадто нечіткий).

Короткий зміст його термінології:

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

Як бачимо, автор розрізняє причину та наслідки, які у випадку "помилки" майже завжди змішуються. Велику частину часу термін «помилка» прикладається до дефекту , до інфекції і на провал .

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.