Разница между дефектом и ошибкой в ​​тестировании?


35

В чем разница между дефектом и ошибкой?


2
Прочитайте testingstandards.co.uk/bs_7925-1_online.htm для получения дополнительной информации
StuperUser

1
Есть ошибки, которые на самом деле говорят, что чего-то не хватает, что означает, что это запрос функции, а не ошибки.
m3th0dman

Ответ зависит от цели, почему вы спрашиваете.
max630

Посмотрите этимологию слова «дефект». Де = нет, ун. Facere = делать. Следовательно, не делает (как ожидалось), не выполняет, сломан, капут. Принимая во внимание, что ошибка означает «что-то в работах, препятствующих производительности». В конце дня вам нужно будет что-то исправить, так что все это академично. Я проголосовал, чтобы закрыть, у вас нет ошибок, чтобы исправить ?!
Мартин Маат

Ответы:


59
  • Ошибка является результатом ошибки кодирования

  • Дефект - это отклонение от требований

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


Со страницы Википедии о тестировании программного обеспечения :

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


15
Оба - "отклонения от требований", поскольку я вижу это.
Мартин Уикман,

2
Дефект не должен быть ошибкой. Кроме того, ошибка не должна означать, что требование не было выполнено, и, следовательно, не является «отклонением от требования»
Дэн МакГрат,

5
Кажется, вы упускаете суть @Martin. Да, ошибка может быть дефектом. Да, дефект может быть ошибкой. Но это не всегда так. То, что они частично совпадают, не означает, что они идентичны! Диаграмма ошибок и дефектов Венна -> (())
Дэн МакГрат,

8
@Dan McGrath: в основном то, что вы сделали здесь, это ваше собственное определение ошибки. Но в целом нет никакого определенного значения, это просто технический жаргон!
MaR

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

21

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

ошибка

Ошибка - это ошибка, неправильное представление или недоразумение со стороны разработчика программного обеспечения

В категорию разработчиков входят разработчики программного обеспечения, программисты, аналитики и тестировщики. Например, разработчик может неправильно понять нотацию проекта или программист может неправильно ввести имя переменной.

Неисправности (Дефекты)

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

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

Отказы

Отказ - это неспособность программной системы или компонента выполнять свои требуемые функции в соответствии с заданными требованиями к производительности.

Во время выполнения программного компонента или системы тестировщик, разработчик или пользователь замечает, что они не дают ожидаемых результатов. В некоторых случаях определенный тип неправильного поведения указывает на наличие определенного типа неисправности. Мы можем сказать, что тип неправильного поведения является признаком ошибки. Опытный разработчик / тестировщик будет хранить в памяти базу знаний о неисправностях / симптомах / случаях неисправности (модели неисправностей, как описано в Главе 3). Неправильное поведение может включать в себя создание неправильных значений для выходных переменных, неправильный ответ со стороны устройства или неправильное изображение на экране. Во время разработки сбои обычно наблюдаются тестерами, а сбои обнаруживаются и устраняются разработчиками.

Вы можете прочитать полную главу в Google Книгах здесь .


12

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

  • Ошибка : человеческое действие или упущение, которое приводит к ошибке.

  • Сбой : Сбой - это программный дефект (неверный шаг, определение процесса или данных), который вызывает сбой.

  • Ошибка : так же, как ошибка.

  • Отказ : неспособность программного обеспечения выполнять необходимые функции в соответствии с заданными требованиями к производительности.

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

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

альтернативный текст


Наконец, кто - то прочитал: testingstandards.co.uk/bs_7925-1_online.htm
StuperUser

Это не то, откуда я это взял, но у них может быть общий источник (или этот может быть источником).
Тамас Селеи

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

7

О, Боже.

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

Термин «ошибка» застрял как термин, который означает, что что-то работает не так, как ожидалось.

БАГ должен рассматриваться как жаргонный термин, означающий дефект.

Дефект - это технически правильный термин, означающий, что вещь не делает то, что должна.

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

Используйте ДЕФЕКТ.

Старайтесь не использовать термин «ошибка». Это глупо, неактуально, исторически и банально.


2
Почему вы хотите удалить из употребления хорошо понятный технический термин? Извините ... да, БАГ исторический - но если вы думаете, что программисты считают ошибки (в общем, а не конкретные) тривиальными только потому, что они называются ошибками, или этот термин не имеет значения из-за его происхождения боюсь, что мое превращение в сварливого среднего возраста вполне оправдано. Да, и, как указывает @Dan, ошибки - это дефекты, но дефекты не обязательно являются ошибками, что еще раз говорит о том, что термин имеет значение.
Murph

3
@ Murph, «ошибка» - это эвфемизм ошибки программирования. Бессознательно это завлекает своего рода гремлина, который разработчик не может контролировать. Это не правильно - это является ошибкой , и признавая , что это шаг к более профессиональному поведению. (Imho конечно :-))
rsp

1
Хм, ясно, что я не согласен (-: я точно знаю, кто несет ответственность за ошибки - ошибки кодирования и логики - которые у меня есть в моем коде. (Я также могу выявлять ошибки в коде других людей.) Все программисты, которых я знаю понятно, что означает этот термин - что они (ну, конечно, какой-то программист), а не какой-то гремлин, допустили ошибку
Murph

2
Имея дело с вашими клиентами, вы можете назвать эти вещи ошибками или дефектами. Жуки это жаргон. Дефекты - это признание вне жаргона, что это не так, как должно быть. «Дефекты» - это термин, который поощряет и поддерживает ясную связь - как за пределами братства программистов, так и внутри. (Я также не согласен с тем, что между ошибкой и дефектом есть разница.)
quick_now

Дефекты это правильный термин. Сколько программ выпущено с ошибками, и мы все это принимаем? Но сколько программ выпущено с дефектами? Мы не приняли бы это, потому что термин подразумевает большую серьезность, и мы знаем, что это наша вина за ошибку, а не за ошибку, в которой мы можем винить погоду или время суток.
Рудольф Олах

7

Из стандартного глоссария IEEE терминологии разработки программного обеспечения, который цитируется в Своде знаний по разработке программного обеспечения KA для тестирования программного обеспечения и качества программного обеспечения:

ошибка. Смотрите: ошибка; неисправность.


ошибка. (1) Разница между вычисленным, наблюдаемым или измеренным значением или условием и истинным, заданным или теоретически правильным значением или условием. Например, разница в 30 метров между вычисленным результатом и правильным результатом. (2) Неправильный шаг, процесс или определение данных. Например, неверная инструкция в компьютерной программе. (3) Неверный результат. Например, вычисленный результат 12, когда правильный результат равен 10. (4) Человеческое действие, которое дает неправильный результат. Например, неправильное действие со стороны программиста или оператора. Примечание. Хотя обычно используются все четыре определения, одно различие присваивает определение 1 слову «ошибка», определение 2 - слову «ошибка», определение 3 - слову «ошибка», а определение 4 - слову «ошибка». Смотрите a2so: динамическая ошибка; фатальная ошибка; местная ошибка; семантическая ошибка; синтаксическая ошибка; статическая ошибка; временная ошибка.


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


неисправность. (1) дефект в аппаратном устройстве или компоненте; например, короткое замыкание или обрыв провода. (2) Неправильный шаг, процесс или определение данных в компьютерной программе. Примечание: это определение используется в основном дисциплиной отказоустойчивости. В общепринятых терминах термины «ошибка» и «ошибка» используются для выражения этого значения. Смотрите также: ошибка, чувствительная к данным; программно-чувствительный сбой; эквивалентные неисправности; маскировка неисправностей; прерывистая ошибка


Я думаю, что определение отказа является наиболее актуальным. Все начинается с ошибки, будь то требования, дизайн, реализация или контрольный пример / процедура. Если эта ошибка проявляется в программном обеспечении, она становится ошибкой. Сбой вызван наличием одного или нескольких сбоев в программном обеспечении.

Однако я не заинтересован в формальном определении ошибки. Я очень предпочитаю определение, предоставленное dukeofgaming в его ответе , однако в этом ответе приводится стандартное определение ошибки IEEE.


3

Дэн МакГрат ответил правильно.

  • Ошибка является результатом ошибки кодирования
  • Дефект - это отклонение от требований

Может быть, пример прояснит ситуацию.

Пример: Клиент хотел, чтобы веб-форма могла сохранять и закрывать окно.

Сценарий № 1: в веб-форме есть кнопка сохранения и еще одна кнопка закрытия. Результат: Дефект, потому что клиент хотел, чтобы кнопка 1 сохраняла и закрывала окно. Разработчик неправильно понял и создал отдельно. Поскольку обе кнопки выполняли свои требования, это не ошибка, а дефект, потому что она не отвечала требованиям клиента.

Сценарий № 2: Веб-форма имеет кнопку сохранения и закрытия, но только сохраняет, но не закрывает. Результат: ошибка. Потому что кнопка не работает как требуется / ожидается. Разработчик знает, что это должно привести к такому результату, но в конечном итоге это не так. (возможно ошибка кодирования)

Не уверен, что это проясняет ситуацию.

p / s: с точки зрения разработчика (я был когда-то), дефекты и ошибки одинаково важны. Мы все еще исправим это.

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


Что мы называем ошибочными требованиями?
gnasher729

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

0

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

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

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

Последствия предпочтения одного термина над другим влияют на нас ежедневно.


0

Согласно Надежности: основные понятия и терминология :

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

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

Ошибка сбивает с толку и может представлять собой ошибку или сбой в зависимости от контекста.

Обратите внимание, что в спецификации нет упоминаний: даже спецификация может быть неисправна.


0

Вот то, что я сделал ранее для своего работодателя Q-LEAP на основе словаря ISTQB, и я также проверил словарь IEEE. Наслаждаться.

Ошибка и дефект? То же самое, хотя об этом можно говорить бесконечно. Нам действительно есть о чем беспокоиться, жизнь уже достаточно сложна и т. Д.

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

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

Жизнь жука

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

Ошибка рождается. Ошибки найдены и зарегистрированы всеми в Google. Менеджеры продуктов регистрируют ошибки, возникающие в ранних сборках, которые отличаются от их спецификаций / идей. Разработчики сообщают об ошибках, когда они понимают, что они случайно зарегистрировались в проблеме, или нашли проблему где-то еще в базе кода, или во время собачьего поиска продуктов Google. Ошибки также поступают с места, из краудсорсинга, внешнего поставщика и регистрируются менеджерами сообщества, которые следят за группами Google для конкретных продуктов. Во многих внутренних версиях приложений также есть быстрые способы одним нажатием кнопки, например, карты Google. И иногда программы создают ошибки через API.


0

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

В моей нынешней среде «дефект» - это любой предмет в Jira. Похоже, сама Джира использует термин «проблема». Возможно, мы унаследовали это от какой-то более ранней системы. «Ошибка» - это тип проблемы, когда что-то работает не так, как ожидалось и описано в документации. «Запрос функции», когда что-то работает, как ожидалось, но желательно улучшение (это может быть очевидно и важно, но если описывается текущее поведение, это все еще запрос функции). Есть и другие типы, но эти 2 используются людьми вне команды разработчиков, чтобы что-то спросить у них.

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

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