Дефект это ошибка

После того, как разработчик получил баг-репорт, он приступает к исправлению бага. Но, прежде чем ошибку исправить, нужно ее воспроизвести, понять, как она происходит и где ее найти в коде. Дебаг, буквально “de”+”bug” — это и есть процесс поиска и устранения ошибок в коде. Специальная debug-версия билда приложения может иметь расширенный вывод для более информативных логов или любые другие модификации для упрощения понимания проблемы. Тактика отладки может включать интерактивную отладку, анализ потока управления, модульное тестирование, интеграционное тестирование, анализ логов, мониторинг на уровне приложения или системы, дампы памяти и профилирование. Многие языки программирования и инструменты разработки программного обеспечения также предлагают программы для помощи в отладке, известные как отладчики/дебаггеры.

Так много вещей, которые могут пойти не так

Ошибка, Проблема, Сбой, Ошибка и Дефект часто используются как синонимы, но есть различия:

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

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

Источники: 360logica.com, Материал базового уровня ISQTB, Понимание того, что означает ошибка, ошибка и отказ, Разница между ошибкой, дефектом и недостатком, Ошибки безопасности и недостатки

Давайте используем все эти слова в одном сценарии: представьте себе водителя автомобиля, который идет к механику и жалуется, что машина не едет. Пользователь сообщает об ошибке. Машина не завелась. Техник осматривает автомобиль и подтверждает это. Он выяснил, что в бензиновом двигателе есть дизельное топливо — и определил причину: вина пользователей — причина сбоя в том, что они залили дизельное топливо в бензиновый двигатель! Теперь пытаемся найти причину, по которой была допущена ошибка. Это была человеческая ошибка — водитель не обращал внимания. Но проблема в том, что вы вообще можете поставить дизель в бензиновый двигатель.

Давайте рассмотрим несколько примеров интересных или распространенных ошибок программирования!

Ошибки единиц измерения — имперские против метрических

Когда вы имеете дело с физическими системами, единицы измерения имеют значение. Имеет значение, если ехать 100 миль или 100 км в час. Это опыт, который пришлось пройти команде Mars Climate Orbiter: одна команда использовала имперские единицы, а другая – метрические. Это несоответствие связи между двумя программными компонентами привело к взрыву космического корабля. Это убыток в размере 327,6 млн долларов США.

Этот тип ошибок можно предотвратить, используя библиотеки единиц измерения, такие как Python’s pint, которые выполняют преобразование единиц измерения за вас. И снова сильные типы выручают 😉

Ошибки по отдельности

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

Ошибки «один за другим» можно обнаружить с помощью хороших модульных тестов. Мутационное тестирование может помочь набору тестов обнаружить:

Условия гонки

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

  • Грязное чтение
  • Неповторяющиеся чтения
  • Фантомное чтение

В мире баз данных вы можете выбирать между различными уровнями изоляции транзакций, чтобы предотвратить такие, как REPEATABLE-READ или SERIALIZABLE.

Эти ошибки, как известно, трудно найти, потому что они зависят от времени нескольких систем. По этой причине их также иногда называют Heisenbugs: если вы их осмотрите, они исчезнут.

Неинициализированные ресурсы

Я думаю, что неинициализированные ресурсы (например, исключение Nullpointer Exception или KeyError в Python) в основном покрываются строковым покрытием в модульных тестах и ​​инструментах проверки типов, таких как mypy.

Нефункциональные проблемы

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

Еще одна проблема, которую я часто вижу в браузерах, заключается в том, что они слишком интенсивно используют память. Я думаю, что это проблема и для смартфонов.

Говоря о смартфонах, слишком энергоемкие, безусловно, еще один.

Человеческая ошибка

Утверждать, что основной причиной сбоя является человеческая ошибка, на мой взгляд, лень. Часто это означает, что мы отказываемся от улучшения системы. Однако я думаю, что выделение четырех типов «человеческих ошибок» может привести к более интересным выводам:

  • Ошибки — нарушения внимания. Возможно, нам нужно сделать предупреждение более заметным, убрать беспорядок в интерфейсе или привлечь больше людей для работы.
  • Провалы — сбои в памяти. Если люди забыли что-то сделать, возможно, им нужно помнить слишком много вещей или это было слишком давно. Может помочь более частое обучение или упрощение работы.
  • Ошибки — непреднамеренные ошибки при принятии решений. Если люди нарушают правило или процедуру, им может не хватать знаний или понимания процесса.
  • Нарушение –преднамеренное выполнение неправильного действия: если люди намеренно нарушают правила процедуры, они могут не знать о последствиях или их обычный рабочий процесс будет значительно медленнее, если они все время будут следовать правилам.

Управление здравоохранения и безопасности Великобритании подготовило обзор Понимание человеческой неудачи.

Вопрос

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

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

Решение / Ответ

Dan McGrath

15-го января 2011 в 10:07

#39740625

    • Ошибка — это результат ошибки в коде.
  • Дефект — это отклонение от требований

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


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

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

Software testing — Wikipedia

en.wikipedia.org

 dukeofgaming

Ответ на вопрос

15-го января 2011 в 10:28

#39740627

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

Ошибка

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

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

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

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

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

Отказы

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

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

Полностью главу можно прочитать в Google Books, здесь.

Practical Software Testing: A Process-Oriented Approach — Ilene Burnstein — Google C?rți

Software testing is rapidly evolving as a critical sub-discipline of software engineering. The industry needs professionals educated in the modern methods and tools of software testing and quality assurance. Based on the needs of software professionals, "Practical Software Testing" takes a unique approach to teaching readers how to effectively plan for testing, design test cases, test at multiple levels, organize a testing team, and optimize use of testing tools. It introduces testing concepts that are managerial-, technical-, and process-oriented, using the Testing Maturity Model (TMM) as a framework. Features: *includes a sample test plan, comprehensive exercises, and definitions for software testing and quality *introduces both technical and managerial aspects of testing in a clear and precise style, for integrated learning *balanced perspective and comprehensive view of all testing aspects *uses the TMM framework to introduce testing in a systematic, evolutionary way, and describes industrial TMM applications *covers testing topics with either procedurally based or object-oriented programming code With its accessible, practical, and well-focused framework, this new resource provides an integrated presentation of software-testing processes and practices. Professionals and practitioners in software testing, software quality assurance, or software validation and verification will benefit greatly from using this essential resource.

books.google.com

Tamás Szelei

Ответ на вопрос

15-го января 2011 в 10:08

#39740626

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

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

  • Неисправность: Неисправность — это дефект программного обеспечения (неправильный шаг, процесс или определение данных), который приводит к сбою.

  • Ошибка: То же самое, что и неисправность.

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

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

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

alt text

Thomas Owens

Ответ на вопрос

11-го сентября 2011 в 5:29

#39740630

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

ошибка. Смотрите: ошибка; ошибка.


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


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


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


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

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

terminology — Difference between a defect and a bug in testing? — Software Engineering Stack Exchange

What is the difference between a defect and a bug?

softwareengineering.stackexchange.com

 quickly_now

Ответ на вопрос

15-го января 2011 в 10:42

#39740628

О, Боже.

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

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

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

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

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

Используйте DEFECT .

Старайтесь не использовать термин BUG. Это глупо, неактуально, исторически и тривиализирующе.

 tctham

Ответ на вопрос

12-го сентября 2011 в 8:52

#39740632

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

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

Может быть, пример сделает это яснее.

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

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

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

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

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

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

Rudolf Olah

Ответ на вопрос

11-го сентября 2011 в 5:04

#39740629

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

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

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

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

 mouviciel

Ответ на вопрос

12-го сентября 2011 в 8:02

#39740631

Согласно Доступность: основные понятия и терминология:

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

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

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

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

David Tonhofer

Ответ на вопрос

7-го сентября 2014 в 8:57

#39740633

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

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

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

  • Жизнь жука *

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

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

 max630

Ответ на вопрос

23-го мая 2019 в 3:13

#39740634

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

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

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

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

В чем разница между дефектом, багом, ошибкой и сбоем — это один из вопросов на собеседовании при приеме на работу новичка.

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

РАЗНИЦА МЕЖДУ ДЕФЕКТОМ, ОШИБКОЙ, ОШИБКОЙ И НЕИСПРАВНОСТЬЮ

Примечание. И дефект, и ошибка являются проблемами в приложении, но общая разница заключается в том, на каком этапе SDLC они были обнаружены.

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

Что такое дефект?

Разница между фактическими и ожидаемыми результатами называется дефектом.

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

Что такое ошибка?< /strong>

Если тестировщики обнаруживают какие-либо несоответствия в приложении/системе на этапе тестирования, они называют это ошибкой.

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

Что такое ошибка?

Мы не можем скомпилировать или запустить программу из-за ошибки кода в программе. Если разработчик не может успешно скомпилировать или запустить программу, он называет это ошибкой.

Что такое ошибка?

После того, как продукт развертывается, и клиенты обнаруживают какие-либо проблемы, после чего они называют продукт неудачным продуктом. После выпуска, если конечный пользователь обнаруживает проблему, эта конкретная проблема называется сбоем

Важно знать:

Если аналитик качества (QA) обнаруживает ошибку, он должен воспроизвести и записать его, используя шаблон отчета об ошибке.

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

Кроме того, вы можете скачать Образец шаблона отчета об ошибках/Шаблон отчета о дефектах отсюда.

Не забудьте поделиться этим сообщением со всеми, кому оно может быть полезно эту информацию, включая ваших друзей в Facebook, подписчиков в Twitter, подписчиков в LinkedIn и участников вашей группы Google+!

TAG: qa

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

Практика показывает, что нет Smile :)

Три года назад (кошмар, сколько времени прошло!) я была в летней школе тестировщиков. Алексей Баранцев вел тренинг для продвинутых, как искать баги и исследовать приложение. Он задал простой вопрос → «Чем отличаются ошибка, дефект и сбой?». Предположения были самыми разнообразными, но уловить тонкую грань отличий никто не смог.

Алексей мог зачитать умные слова из справочника ISTQB, но предпочел рассказать историю. Три года прошло! Я помню историю до сих пор и могу назвать отличия без подглядывания в гугл :)

Вступление от Алексея — придумал историю не сам. На одном из тренингов я задал этот вопрос. Девочки посовещались между собой и сказали: «Мы не можем объяснить это с точки зрения ПО, но можем на примере шитья». Я удивился и сказал: «Давайте!».

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



Результатом ошибки стал дефект. Платье висело на вешалке и выглядело абсолютно нормально, но оно было с дефектом.

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


Девочка опустила руку в карман, отпустила ключ… У-у-у-упс, ключ выпал на пол! Произошел сбой в системе — проявился ранее скрытый дефект.

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

Такие дела! Smile :)
Надеюсь, эта история поможет вам запомнить разницу так же, как она помогла мне. И помните — не всегда надо зубрить, иногда достаточно придумать знакомую и понятную альтернативу :)

А под конец немножко официоза — версия из ISTQB, которую мне любезно процитировали мои студенты. А ведь ради них я и пишу эти статьи! Smile :)

A human being can make an error (mistake), which produces a defect (fault, bug) in the code, in software or a system, or in a document. If a defect in code is executed, the system will fail to do what it should do (or do something it souldn’t), causing a failure. Defects in software, systems or documents may result in failures, but not all defects do so.

Человек может допустить ошибку, которая приводит к дефекту (к неисправности, багу) в коде, в софте или системе, или документе. Если дефект в коде исполняется, система не сможет сделать то, что должна (или то, что не должна), что вызовет сбой. Дефекты в программном обеспечении, системах или документах, могут вызвать неисправности, но не все дефекты вызывают их.

Понравилась статья? Поделить с друзьями:
  • Джан яман мистер ошибка актеры
  • Дефект или ошибка
  • Джилбарго коды ошибок
  • Джакузи интекс ошибка е90
  • Джилбарго ошибка 8029