В чем разница между дефектом и ошибкой?
В чем разница между дефектом и ошибкой?
Ответы:
Ошибка является результатом ошибки кодирования
Дефект - это отклонение от требований
То есть: дефект не обязательно означает, что в коде есть ошибка , это может быть функция, которая не была реализована, но определена в требованиях программного обеспечения.
Со страницы Википедии о тестировании программного обеспечения :
Не все программные дефекты вызваны ошибками кодирования. Один из распространенных источников дорогостоящих дефектов вызван пробелами в требованиях, например непризнанными требованиями, которые приводят к ошибкам упущения разработчиком программы. [14] Распространенным источником пробелов в требованиях являются нефункциональные требования, такие как тестируемость, масштабируемость, ремонтопригодность, удобство использования, производительность и безопасность.
Цитирую Илин Бернштейн из книги « Практическое тестирование программного обеспечения» (рекомендуется), которая разделяет определение из «Коллекции стандартов IEEE для разработки программного обеспечения» (1994) и «Стандартного глоссария IEEE по терминологии разработки программного обеспечения» (стандарт 610.12, 1990):
Ошибка - это ошибка, неправильное представление или недоразумение со стороны разработчика программного обеспечения
В категорию разработчиков входят разработчики программного обеспечения, программисты, аналитики и тестировщики. Например, разработчик может неправильно понять нотацию проекта или программист может неправильно ввести имя переменной.
Ошибка (дефект) вводится в программное обеспечение в результате ошибки. Это аномалия в программном обеспечении, которая может привести к его неправильному поведению, а не в соответствии с его спецификацией.
Ошибки или дефекты иногда называют «ошибками». Использование последнего термина упрощает влияние ошибок на качество программного обеспечения. Использование термина «дефект» также связано с программными артефактами, такими как требования и проектная документация. Дефекты, возникающие в этих артефактах, также вызваны ошибками и обычно обнаруживаются в процессе проверки.
Отказ - это неспособность программной системы или компонента выполнять свои требуемые функции в соответствии с заданными требованиями к производительности.
Во время выполнения программного компонента или системы тестировщик, разработчик или пользователь замечает, что они не дают ожидаемых результатов. В некоторых случаях определенный тип неправильного поведения указывает на наличие определенного типа неисправности. Мы можем сказать, что тип неправильного поведения является признаком ошибки. Опытный разработчик / тестировщик будет хранить в памяти базу знаний о неисправностях / симптомах / случаях неисправности (модели неисправностей, как описано в Главе 3). Неправильное поведение может включать в себя создание неправильных значений для выходных переменных, неправильный ответ со стороны устройства или неправильное изображение на экране. Во время разработки сбои обычно наблюдаются тестерами, а сбои обнаруживаются и устраняются разработчиками.
Вы можете прочитать полную главу в Google Книгах здесь .
Там несколько разные термины, связанные с ошибками программного обеспечения. Выдержка из курса я взял:
Ошибка : человеческое действие или упущение, которое приводит к ошибке.
Сбой : Сбой - это программный дефект (неверный шаг, определение процесса или данных), который вызывает сбой.
Ошибка : так же, как ошибка.
Отказ : неспособность программного обеспечения выполнять необходимые функции в соответствии с заданными требованиями к производительности.
Согласно этому, нет никакой разницы между дефектом и ошибкой. Тем не менее, некоторые люди утверждают, что ошибка является ошибкой, которая обнаруживается до выпуска программного обеспечения, в то время как дефект обнаруживается клиентом.
Я не мог удержаться от публикации знаменитого «первого фактического случая обнаружения ошибки».
О, Боже.
В прежние времена - неисправная работа компьютера была вызвана всевозможными вещами - включая крыс, пережевывающих проводку, и реальных насекомых (тварей), попадающих в работу.
Термин «ошибка» застрял как термин, который означает, что что-то работает не так, как ожидалось.
БАГ должен рассматриваться как жаргонный термин, означающий дефект.
Дефект - это технически правильный термин, означающий, что вещь не делает то, что должна.
Везде, где это возможно, использование DEFECT вместо BUG фактически означает, что мы признаем наши неудачи (наши дефекты, наше непонимание требований пользователей или вещи, которые мы упустили из виду при реализации) вместо того, чтобы называть это «более тривиально звучащей» ошибкой ».
Используйте ДЕФЕКТ.
Старайтесь не использовать термин «ошибка». Это глупо, неактуально, исторически и банально.
Из стандартного глоссария IEEE терминологии разработки программного обеспечения, который цитируется в Своде знаний по разработке программного обеспечения KA для тестирования программного обеспечения и качества программного обеспечения:
ошибка. Смотрите: ошибка; неисправность.
ошибка. (1) Разница между вычисленным, наблюдаемым или измеренным значением или условием и истинным, заданным или теоретически правильным значением или условием. Например, разница в 30 метров между вычисленным результатом и правильным результатом. (2) Неправильный шаг, процесс или определение данных. Например, неверная инструкция в компьютерной программе. (3) Неверный результат. Например, вычисленный результат 12, когда правильный результат равен 10. (4) Человеческое действие, которое дает неправильный результат. Например, неправильное действие со стороны программиста или оператора. Примечание. Хотя обычно используются все четыре определения, одно различие присваивает определение 1 слову «ошибка», определение 2 - слову «ошибка», определение 3 - слову «ошибка», а определение 4 - слову «ошибка». Смотрите a2so: динамическая ошибка; фатальная ошибка; местная ошибка; семантическая ошибка; синтаксическая ошибка; статическая ошибка; временная ошибка.
отказ. Неспособность системы или компонента выполнять свои требуемые функции в рамках указанных требований к производительности. Примечание. Дисциплина отказоустойчивости различает действия человека (ошибка), их проявление (аппаратная или программная ошибка), результат ошибки (сбой) и величину, на которую результат является неправильным (ошибка). Смотрите также: сбой; зависимый сбой; исключение; режим отказа; интенсивность отказов; тяжелый сбой; начинающийся отказ; независимый отказ; случайный сбой; мягкий сбой; застрял сбой.
неисправность. (1) дефект в аппаратном устройстве или компоненте; например, короткое замыкание или обрыв провода. (2) Неправильный шаг, процесс или определение данных в компьютерной программе. Примечание: это определение используется в основном дисциплиной отказоустойчивости. В общепринятых терминах термины «ошибка» и «ошибка» используются для выражения этого значения. Смотрите также: ошибка, чувствительная к данным; программно-чувствительный сбой; эквивалентные неисправности; маскировка неисправностей; прерывистая ошибка
Я думаю, что определение отказа является наиболее актуальным. Все начинается с ошибки, будь то требования, дизайн, реализация или контрольный пример / процедура. Если эта ошибка проявляется в программном обеспечении, она становится ошибкой. Сбой вызван наличием одного или нескольких сбоев в программном обеспечении.
Однако я не заинтересован в формальном определении ошибки. Я очень предпочитаю определение, предоставленное dukeofgaming в его ответе , однако в этом ответе приводится стандартное определение ошибки IEEE.
Дэн МакГрат ответил правильно.
Может быть, пример прояснит ситуацию.
Пример: Клиент хотел, чтобы веб-форма могла сохранять и закрывать окно.
Сценарий № 1: в веб-форме есть кнопка сохранения и еще одна кнопка закрытия. Результат: Дефект, потому что клиент хотел, чтобы кнопка 1 сохраняла и закрывала окно. Разработчик неправильно понял и создал отдельно. Поскольку обе кнопки выполняли свои требования, это не ошибка, а дефект, потому что она не отвечала требованиям клиента.
Сценарий № 2: Веб-форма имеет кнопку сохранения и закрытия, но только сохраняет, но не закрывает. Результат: ошибка. Потому что кнопка не работает как требуется / ожидается. Разработчик знает, что это должно привести к такому результату, но в конечном итоге это не так. (возможно ошибка кодирования)
Не уверен, что это проясняет ситуацию.
p / s: с точки зрения разработчика (я был когда-то), дефекты и ошибки одинаково важны. Мы все еще исправим это.
Мы даже столкнулись со странными аномалиями, которые мы классифицировали как ошибки, и мы постоянно пытаемся выяснить, в чем причина и как ее исправить. Обозначение ошибок не делает его тривиальным по сравнению с дефектами.
Разница в том, что термин «жук» звучит волшебно. Как будто программа может случайно содержать ошибки после завершения программирования. Если в нем есть случайные ошибки, это означает, что вы не соответствовали спецификациям и ваша программа содержит ошибку.
Дефект означает ошибку, когда программа не соответствует спецификациям. Это более серьезно и в основном говорит, что любая ошибка - огромная проблема с программой, и это означает, что программа не подходит для выпуска.
Разница заключается в отношении программистов, которые используют термины. Существуют миллионы программ, которые выпускаются с ошибками, и людям это нравится, потому что они по какой-то причине признают, что ошибка является магической и случайной, и что каждая программа содержит хотя бы одну ошибку. Однако программисту, который использует термин «дефект», может быть неудобно выпускать программу с дефектом, поскольку этот термин подразумевает большую серьезность.
Последствия предпочтения одного термина над другим влияют на нас ежедневно.
Согласно Надежности: основные понятия и терминология :
Системный сбой происходит, когда предоставляемая услуга отклоняется от выполнения функции системы, причем последняя является тем, для чего предназначена система. Ошибка в том , что часть состояния системы , которая несет ответственность привести к последующей неудаче: ошибка влияет на обслуживание является показателем того, что происходит сбой или произошел. Предполагаемая или предполагаемая причина ошибки является ошибкой .
Я понимаю дефект как просто другое имя для ошибки.
Ошибка сбивает с толку и может представлять собой ошибку или сбой в зависимости от контекста.
Обратите внимание, что в спецификации нет упоминаний: даже спецификация может быть неисправна.
Вот то, что я сделал ранее для своего работодателя Q-LEAP на основе словаря ISTQB, и я также проверил словарь IEEE. Наслаждаться.
Ошибка и дефект? То же самое, хотя об этом можно говорить бесконечно. Нам действительно есть о чем беспокоиться, жизнь уже достаточно сложна и т. Д.
Пример того, как термин используется в дикой природе, из «Как Google Tests Software» с. 113. Откройте статью «Программное обеспечение IEEE», и она будет использоваться точно так же. Действительно, редко встречается слово «дефект» в реальной жизни.
Жизнь жука
Ошибки и отчеты об ошибках - это тот артефакт, который понимает каждый тестировщик. Поиск ошибок, сортировка ошибок, исправление ошибок и их устранение - это сердцебиение и рабочий процесс для обеспечения качества программного обеспечения. Это та часть тестирования, которая является самой обычной в Google, но есть еще несколько интересных отклонений от нормы. В этом разделе мы игнорируем ошибки, которые регистрируются для отслеживания рабочих элементов, и используем термин для определения фактического неработающего кода. Таким образом, ошибки часто представляют собой ежедневные рабочие процессы для инженерных команд.
Ошибка рождается. Ошибки найдены и зарегистрированы всеми в Google. Менеджеры продуктов регистрируют ошибки, возникающие в ранних сборках, которые отличаются от их спецификаций / идей. Разработчики сообщают об ошибках, когда они понимают, что они случайно зарегистрировались в проблеме, или нашли проблему где-то еще в базе кода, или во время собачьего поиска продуктов Google. Ошибки также поступают с места, из краудсорсинга, внешнего поставщика и регистрируются менеджерами сообщества, которые следят за группами Google для конкретных продуктов. Во многих внутренних версиях приложений также есть быстрые способы одним нажатием кнопки, например, карты Google. И иногда программы создают ошибки через API.
Эти слова не имеют точного значения, кроме конкретного сообщения об ошибке / задачи / тикета / дефекта / проблемы / какого-либо другого экземпляра системы слежения, и поэтому обсуждать разницу между ними бессмысленно. Когда вы настраиваете свой рабочий процесс, вы должны согласовать терминологию и предоставить описания.
В моей нынешней среде «дефект» - это любой предмет в Jira. Похоже, сама Джира использует термин «проблема». Возможно, мы унаследовали это от какой-то более ранней системы. «Ошибка» - это тип проблемы, когда что-то работает не так, как ожидалось и описано в документации. «Запрос функции», когда что-то работает, как ожидалось, но желательно улучшение (это может быть очевидно и важно, но если описывается текущее поведение, это все еще запрос функции). Есть и другие типы, но эти 2 используются людьми вне команды разработчиков, чтобы что-то спросить у них.
Если вы выбираете имена для типов проблем, «ошибка» и «дефект» звучат похоже на меня. Разница между ними стилистическая. Поскольку английский не является моим родным языком, я не могу видеть много его и не уверен, что то, что я вижу, правильно.