Різниця між дефектом та помилкою в тестуванні?


35

Чим відрізняється дефект від помилки?



1
Існують помилки, які насправді кажуть, що чогось не вистачає, це означає, що вони є запитом на функції, а не помилками.
m3th0dman

Відповідь залежить від мети, чому ви питаєте.
max630

Подивіться на етимологію дефекту слова. Де = ні, ун. Facere = робити. Значить, не робить (як очікувалося), не виконує, ламається, капут. Тоді як помилка означає "щось у творах, що перешкоджають роботі". Зрештою, вам доведеться щось виправити, тож це все академічно. Я проголосував за закриття, чи не маєте виправлених помилок ?!
Мартін Мейт

Відповіді:


59
  • Помилка - результат помилки кодування

  • Дефект - це відхилення від вимог

Тобто: Дефект не обов'язково означає, що в коді є помилка , це може бути функція, яка не була реалізована, але визначена в вимогах програмного забезпечення.


На сторінці Вікіпедії про тестування програмного забезпечення :

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


15
Обидва - це "відхилення від вимог", як я бачу.
Мартін Вікман

2
Дефект не повинен бути помилкою. Крім того, помилка не повинна означати, що вимога не виконується, а значить, не є "відхиленням від вимоги"
Ден МакГрат

5
Здається, вам не вистачає точки @Martin. Так, помилка може бути дефектом. Так, дефект може бути помилкою. Але це не обов'язково завжди так. Тільки тому, що є якесь перекриття, не означає, що вони однакові! Venn Diagram Bug & Defect -> (())
Ден МакГрат

8
@Dan McGrath: в основному те, що ви тут зробили, - це власне визначення помилки. Але загалом немає жодного визначеного значення, це лише інженерний жаргон!
МаР

3
@DanMcGrath: Ваша діаграма Венна марна. Це може означати або ({}), або ({)} . Я припускаю, що ти мав на увазі друге.
Брайан

21

Цитуючи Ілен Бернштейн з книги « Практичне тестування програмного забезпечення» (рекомендується), яка розділяє визначення у «Колекції стандартів IEEE для інженерії програмного забезпечення» (1994) та «Стандартному словнику IEEE для термінології інженерії програмного забезпечення» (стандарт 610.12, 1990):

Помилка

Помилка - це помилка, неправильне уявлення або непорозуміння з боку розробника програмного забезпечення

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

Несправності (дефекти)

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

Помилки або дефекти іноді називають «помилками». Використання останнього терміна породжує вплив на якість програмного забезпечення. Використання терміна "дефект" також пов'язане з програмними артефактами, такими як вимоги та проектні документи. Дефекти, що виникають у цих артефактах, також викликані помилками і зазвичай виявляються в процесі огляду.

Невдачі

Невдача - це нездатність програмної системи або компонента виконувати необхідні функції в межах визначених вимог до продуктивності.

Під час виконання програмного компонента чи системи тестер, розробник чи користувач зауважує, що він не дає очікуваних результатів. У деяких випадках певний тип неправильної поведінки вказує на певний тип несправності. Можна сказати, що тип неправильної поведінки є симптомом вини. Досвідчений розробник / тестер матиме базу знань про випадки несправності / симптомів / збоїв (моделі несправностей, як описано в главі 3), що зберігаються в пам'яті. Неправильна поведінка може включати створення неправильних значень для вихідних змінних, неправильну відповідь з боку пристрою або неправильне зображення на екрані. Під час розробки тестери зазвичай спостерігають збої, а розробники виявляють і усувають несправності.

Ви можете прочитати повну главу в Книгах Google тут .


12

Існують деякі різні терміни, пов'язані з програмними помилками. Витяг з курсу, який я взяв:

  • Помилка : дія або упущення людини, що призводить до помилки.

  • Помилка : Помилка - це програмний дефект (неправильний крок, процес чи визначення даних), який спричиняє збій.

  • Помилка : Те саме, що помилка.

  • Збій : неможливість програмного забезпечення виконувати необхідні функції в межах визначених вимог до продуктивності.

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

Я не міг протистояти опублікуванню відомого "першого фактичного випадку виявлення помилки".

alt текст


Нарешті, хтось читав: testingstandards.co.uk/bs_7925-1_online.htm
StuperUser

Це не звідки я його взяв, але вони можуть мати спільне джерело (або це може бути джерелом).
Tamás Szelei

Так, багато, багато років тому я витратив якийсь час, намагаючись виправити помилку. У мене в одному осередку на екрані було якесь дратівливе мерехтіння, і це не мало сенсу. Це нарешті відлетіло. (Це було в епоху білого тексту на чорному екрані. Розглянуте місце було досить далеко праворуч завжди бути чорним під час редагування, тому я помітив це лише тоді, коли програма поставила за ним трохи білого кольору.)
Лорен Pechtel

7

О Боже.

Ще в старі часи - несправна робота комп’ютера була викликана всілякими речами - в тому числі щурами, що жували електропроводку, і справжніми помилками (тріщинами), що потрапляли в твори.

Термін BUG затримався як термін, який означає, що щось працює не так, як очікувалося.

БУГ слід розглядати як термін жаргону, що означає дефект.

Дефект - це технічно правильний термін, що означає, що річ робить не так, як слід.

Де тільки можливо, використання DEFECT замість BUG насправді містить у собі відмітку про те, що ми визнаємо наші відмови (наші дефекти, наше нерозуміння вимог користувачів чи речі, які ми не помітили при впровадженні) замість того, щоб одягати це як більш тривіальне звучання "помилка ".

Використовуйте DEFECT.

Намагайтеся не використовувати термін BUG. Дурне, неактуальне, історичне та тривіальне.


2
Чому ви хочете вилучити з використання добре зрозумілий технічний термін? Вибачте ... так, помилка є історичною, але якщо ви вважаєте, що програмісти вважають помилки (загалом, а не конкретні) як тривіальні лише тому, що їх називають помилками або термін як нерелевантний через його джерела, то я боюся, що моє перетворення на бурхливого середнього віку цілком виправдано. О, і як зазначає @Dan, помилки є дефектами, але дефекти - це не обов'язково помилки, що ще більше говорить про те, що термін має значення.
Мерф

3
@Murph, "помилка" - це евфемізм помилки програмування. Підсвідомо це натякає на вид гремліну, над яким розробник не має контролю. Це не правильно - це є помилкою , і визнаючи , що це крок до більш професійної поведінки. (Імхо, звичайно :-))
rsp

1
Ем, ясно не погоджуюся (-: я точно знаю, хто відповідає за помилки - кодування та логічні помилки - що я маю в своєму коді. (Я також в змозі визначити збої в чужому коді.) Усі програмісти, яких я знаю чітко розуміють, що означає цей термін - що вони (ну якийсь програміст), а не якийсь гремлін помилилися.
Мерф

2
У взаємодії зі своїми клієнтами ви можете назвати ці помилки або дефекти. Клопи - це жаргон. Дефекти - це визнання поза жаргоном, що це не так, як слід. "Дефекти" - це термін, який є, і заохочує до чіткого спілкування - як поза програмою братства, так і всередині. (Я також не погоджуюся, що між помилкою та дефектом є різниця.)
швидко_значення

Дефекти - це належний термін. Скільки програм випускається з помилками в них, і ми всі це приймаємо? Але скільки програм випускається з дефектами? Ми б не прийняли це, оскільки цей термін передбачає більшу суворість, і ми знаємо, що це наша вина за помилку, а не помилка, в якій ми можемо звинувачувати погоду чи час доби.
Рудольф Олах

7

З Стандартного словника IEEE з термінології інженерії програмного забезпечення, який цитується в Інженерії програмного забезпечення KA для тестування програмного забезпечення та якості програмного забезпечення:

помилка. Див .: помилка; вина.


помилка. (1) Різниця між обчисленою, спостережуваною або вимірюваною величиною або умовою та справжнім, заданим або теоретично правильним значенням або умовою. Наприклад, різниця в 30 метрів між обчисленим результатом і правильним результатом. (2) Невірний крок, процес або визначення даних. Наприклад, неправильна інструкція в комп'ютерній програмі. (3) Неправильний результат. Наприклад, обчислений результат 12, коли правильний результат дорівнює 10. (4) Дія людини, яка дає неправильний результат. Наприклад, неправильна дія програміста чи оператора. Примітка: Хоча всі чотири визначення зазвичай використовуються, одне розрізнення присвоює визначення 1 слову "помилка", визначення 2 - слову "помилка", визначення 3 - слову "помилка", а визначення 4 - слову "помилка". Дивіться a2so: динамічна помилка; фатальна помилка; корінна помилка; смислова помилка; синтаксична помилка; статична помилка; минуща помилка.


невдача. Нездатність системи або компонента виконувати необхідні функції в межах визначених вимог до продуктивності. Примітка. Дисципліна відмовостійкості розрізняє дію людини (помилка), її прояв (помилка апаратного чи програмного забезпечення), результат несправності (збій) та величину, на яку результат невірний (помилка). Дивіться також: крах; залежний збій; виняток; режим відмови; рівень відмов; важкий збій; початкова недостатність; самостійний збій; випадковий збій; м'який збій; застрягла невдача.


вина. (1) Дефект апаратного пристрою чи компонента; наприклад, коротке замикання або розірваний провід. (2) Неправильне визначення кроку, процесу чи визначення даних у комп'ютерній програмі. Примітка. Це визначення використовується в основному дисципліною відмовок. Зазвичай, для вираження цього значення використовуються терміни "помилка" та "помилка". Див. Також: чутливість до даних; програмно-чутливий несправність; еквівалентні несправності; маскування несправностей; переривчаста несправність.


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

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


3

Відповідь Ден МакГрат прибив його правильно.

  • Помилка - результат помилки кодування
  • Дефект - це відхилення від вимог

Можливо, приклад зробить це зрозумілішим.

Приклад: Клієнт хотів, щоб веб-форма змогла зберегти і закрити вікно.

Сценарій №1: у веб-формі є кнопка збереження та ще одна кнопка закриття. Результат: Дефект, оскільки клієнт хотів зберегти і закрити вікно кнопкою 1. Розробник неправильно зрозумів і створив окремо. Оскільки обидві кнопки виконали свої вимоги, це не помилка, а дефект, оскільки він не відповідав вимогам клієнта.

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

Не впевнений, чи це робить це зрозумілішим.

p / s: з точки зору розробника (я був колись), і дефекти, і помилки так само важливі. Ми все-таки це виправимо.

Ми навіть стикалися з дивними аномаліями, які ми класифікували під помилками і постійно намагаємося з’ясувати, в чому причина та як її усунути. Визначення помилок не робить його банальним порівняно з дефектами.


Що ми називаємо несправними вимогами?
gnasher729

@ gnasher729 якщо ви неправомірно вимагаєте, щоб програмісти не зрозуміли вимоги, то я б подумав, що це дефект. Але якщо ви мали на увазі несправні вимоги, оскільки користувач, що надає неправильні вимоги, що призводить до остаточної роботи, не вирішує початкову проблему, то це виходить за межі помилок і дефектів, оскільки це проблема не з розробкою сесії, а з розробкою.
tctham

0

Різниця полягає в тому, що термін «жучок» звучить магічно. Наче програма може випадково мати в ній помилки після того, як ви закінчите програмування. Якщо у нього випадкові помилки, то це означає, що ви не відповідали специфікаціям і ваша програма помиляється.

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

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

Наслідки віддати перевагу одному терміну над іншим впливають на нас щодня.


0

Відповідно до залежності: основні поняття та термінологія :

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

Я розумію дефект лише як іншу назву з вини.

Помилка заплутана і може представляти помилку чи збій залежно від контексту.

Зауважте, що специфікація не згадується: навіть специфікація може бути несправною.


0

Ось я зробив раніше для свого роботодавця Q-LEAP на основі словника ISTQB, і я також перевірив лексику IEEE. Насолоджуйтесь.

Помилка і дефект? Те саме, хоча можна говорити про це нескінченно. У нас є справді інші речі, про які потрібно турбуватися, життя вже досить складне тощо.

введіть тут опис зображення

Приклад того, як цей термін використовується в дикій природі, з розділу "Як Google Tests Software" на стор. 113. Відкрийте статтю "Програмне забезпечення IEEE", і вона використовується так само. Дійсно, в реальному житті рідко зустрічається слово «дефект».

Життя жучка

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

Народжується клоп. Усі помилки знаходять і надсилають у Google усі. Менеджери продуктів подають помилки, коли вони виявляють проблеми в ранній збірці, які відрізняються від їх специфікацій / думок. Розробники виправляють помилки, коли вони розуміють, що випадково перевірили проблему, або знаходять проблему десь в кодовій базі або під час випробування продуктів Google. Помилки також надходять з поля, з тестових джерел тестування, тестування зовнішніх постачальників, і подаються менеджерами спільноти, які контролюють специфічні для Google групи Google. У багатьох внутрішніх версіях додатків також є швидкі способи подання помилок, як-от Google. І іноді програмні програми створюють помилки через API.


0

Поза специфічною помилкою / завданням / квитком / дефектом / проблемою / будь-яким екземпляром системи відстеження ці слова не мають точного значення, тому обговорювати різницю між ними безглуздо. Коли ви регулюєте свій робочий процес, вам слід узгодити термінологію та надати описи.

У моєму сьогоднішньому середовищі «дефектом» є будь-який предмет у Джирі. Схоже, Джира сам використовує термін "питання". Ми, можливо, успадкували це від якоїсь попередньої системи. "Помилка" - це тип проблеми, коли щось не працює, як очікувалося, і описано в документації. "Запит на функцію", коли щось працює так, як очікувалося, але бажано домогтися (це може бути очевидним і важливим, але якщо описано поточну поведінку, це все-таки запит на функцію). Існує більше типів, але ці 2 використовуються людьми, які не знаходяться в команді розробників, щоб щось запитати.

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

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