Что такое ошибка дефект баг

пятница, 29 мая 2015 г.

Ошибка, дефект и сбой — чем отличаются

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

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

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

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

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

Что такое ошибка дефект баг. Смотреть фото Что такое ошибка дефект баг. Смотреть картинку Что такое ошибка дефект баг. Картинка про Что такое ошибка дефект баг. Фото Что такое ошибка дефект баг


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

Что такое ошибка дефект баг. Смотреть фото Что такое ошибка дефект баг. Смотреть картинку Что такое ошибка дефект баг. Картинка про Что такое ошибка дефект баг. Фото Что такое ошибка дефект баг

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

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

Что такое ошибка дефект баг. Смотреть фото Что такое ошибка дефект баг. Смотреть картинку Что такое ошибка дефект баг. Картинка про Что такое ошибка дефект баг. Фото Что такое ошибка дефект баг

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

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.

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

Источник

Ошибка, дефект и сбой

Чем же они отличаются? Почитайте веселую историю и вспомнить отличие будет легко без подсматривания в гугл!

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

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

Что такое ошибка дефект баг. Смотреть фото Что такое ошибка дефект баг. Смотреть картинку Что такое ошибка дефект баг. Картинка про Что такое ошибка дефект баг. Фото Что такое ошибка дефект баг

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

Что такое ошибка дефект баг. Смотреть фото Что такое ошибка дефект баг. Смотреть картинку Что такое ошибка дефект баг. Картинка про Что такое ошибка дефект баг. Фото Что такое ошибка дефект баг

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

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

Что такое ошибка дефект баг. Смотреть фото Что такое ошибка дефект баг. Смотреть картинку Что такое ошибка дефект баг. Картинка про Что такое ошибка дефект баг. Фото Что такое ошибка дефект баг

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

Официальное определение

А под конец немножко официоза — версия из ISTQB:

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.

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

Источник

Словарь тестировщика

Что такое ошибка дефект баг. Смотреть фото Что такое ошибка дефект баг. Смотреть картинку Что такое ошибка дефект баг. Картинка про Что такое ошибка дефект баг. Фото Что такое ошибка дефект баг

Баг (bug, дефект) — отклонение фактического результата (actual result) от ожидаемого результата (expected result).

Если проще, то это ошибка.

◓ Пример из жизни.
Смотрим мы прогноз погоды и слышим, что сейчас на улице тепло и солнечно. Мы ожидаем, что при выходе на улицу будет тепло и солнечно (ожидаемый результат). Выходим на улицу, а там холодно и все небо затянуто тучами (фактический результат). То есть мы ждали одного (ожидаемый результат), а получили совсем другое (фактический результат).

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

◆ Пример из работы.
Возьмем форму авторизации на сайте. Мы ожидаем, что введя в поле “Имя” и в поле “Пароль” те данные, под которыми мы регистрировались, произойдет вход в систему. Если этого не случается, то мы имеем дело с багом.

Что такое ошибка дефект баг. Смотреть фото Что такое ошибка дефект баг. Смотреть картинку Что такое ошибка дефект баг. Картинка про Что такое ошибка дефект баг. Фото Что такое ошибка дефект баг

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

Если проще, то это процесс проверки работоспособности продукта и его пригодности к использованию. То есть это не просто поиск багов.

◓ Пример из жизни.
Нам дали на проверку кружку. Что мы будем делать? Сначала продумаем, как именно ее можно проверить и набросаем себе план. И только затем присудим к делу. Осмотрим ее снаружи, проверим на трещины, оценим качество рисунка. Уроним ее на пол, чтобы проверить на прочность. Нальем в нее холодную воду, теплую, кипяток, чтобы посмотреть не лопнет ли она. Возьмем ее в руки, оценим, удобно ли держать. После расскажем о результатах нашей работы создателю кружки.

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

◆ Пример из работы.
Есть задача проверить корзину покупок. Опять же начинаем с планирования. Мы пробуем положить в нее товар, удалить, изменить количество, оцениваем удобство и так далее. После заносим все найденные баги в специальные документы (баг-репорты) и отправляем разработчику (программисту).

Обычно тестирование осуществляется на основании документации, но не всегда.

Что такое ошибка дефект баг. Смотреть фото Что такое ошибка дефект баг. Смотреть картинку Что такое ошибка дефект баг. Картинка про Что такое ошибка дефект баг. Фото Что такое ошибка дефект баг

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

Если проще, то это то, что пишет заказчик, когда хочет получить продукт.

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

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

Что такое ошибка дефект баг. Смотреть фото Что такое ошибка дефект баг. Смотреть картинку Что такое ошибка дефект баг. Картинка про Что такое ошибка дефект баг. Фото Что такое ошибка дефект баг

Спецификация (specialization, спек) — детальное описание того, как должно работать ПО.

Если проще, то это описание технических свойств своего продукта (размеры, различные параметры, материалы, функции, etc).

◓ Пример из жизни.
Зять читает желания тестя и на их основании уже рисует чертежи, выбирает материал, просчитывает его количество, продумывает как именно технически будет проведены коммуникации (вода, электричество, канализация) и так далее. И уже по этим готовым схемам строители начинают строить дом.

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

(!) Все что не соответствует ТЗ и спецификации как раз и будет багом.

Что такое ошибка дефект баг. Смотреть фото Что такое ошибка дефект баг. Смотреть картинку Что такое ошибка дефект баг. Картинка про Что такое ошибка дефект баг. Фото Что такое ошибка дефект баг

Отчет о дефекте (bug report) — документ, содержащий отчет о любом недостатке в компоненте или системе, который может привести компонент или систему к невозможности выполнить требуемую функцию.
Его еще называют отчет об ошибке, баг-репорт.

Если проще, то это документ, в котором мы фиксируем найденный баг.

◓ Пример из жизни.
Вернемся к нашему забагованному прогнозу погоды. Что делать? Кому и как сообщить, что погода-то совсем не такая, как говорят? Надо просто написать отчет. Причем написать так, чтобы они поняли про какой именно район речь и что именно с этой погодой не так.

◆ Пример из работы.
На каждую найденную ошибку (баг) составляется отчет об ошибке. Данный отчет имеет определенный шаблон. У каждой компании может быть свой шаблон, но основные поля остаются неизменными. Именно этот шаблон позволяет разработчикам быстро ориентироваться и находить ошибку в коде.

Что такое ошибка дефект баг. Смотреть фото Что такое ошибка дефект баг. Смотреть картинку Что такое ошибка дефект баг. Картинка про Что такое ошибка дефект баг. Фото Что такое ошибка дефект баг

Система отслеживания ошибок (bug tracking system) — программа учета и/или контроля багов.
Ее обычно называют баг-трекер или баг-трекинг.

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

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

Что такое ошибка дефект баг. Смотреть фото Что такое ошибка дефект баг. Смотреть картинку Что такое ошибка дефект баг. Картинка про Что такое ошибка дефект баг. Фото Что такое ошибка дефект баг

Пофиксить — внести изменения, а именно исправления, в код программы.

Если проще, то это правка.

◓ Пример из жизни.
Жена сломала дверцу шкафа. Пошла к мужу, привела к дверце за руку, все показала (считайте, что предоставила баг-репорт с прикрепленным видео). Муж сел, там покрутил, тут постучал и дверца опять начала работать как положено. То есть муж исправил (пофиксил) шкаф.

◆ Пример из работы.
Мы создали баг-репорт и отправили в наш баг-трекер. Разработчик взял баг-репорт в работу, изучил его и внес изменения в код. То есть он исправил (пофиксил) код так, чтобы в продукте больше не было бага.

Что такое ошибка дефект баг. Смотреть фото Что такое ошибка дефект баг. Смотреть картинку Что такое ошибка дефект баг. Картинка про Что такое ошибка дефект баг. Фото Что такое ошибка дефект баг

Билд — версионированная сборка программного обеспечения.

Если проще, то это продукт или кусок продукта, который можно тестировать.

◓ Пример из жизни.
Зять строит дом для тещи. Уже готов каркас и пару комнат. Эти комнаты уже можно показать жене на проверку. Именно эти пару комнат, которые ей уже можно смотреть и оценивать — это и есть билд, который будет тестировать жена.

◆ Пример из работы.
Разработчик создает продукт. Часть кода уже написана и готова к проверки. Именно эту часть он и отдает тестировщикам на проверку.

Что такое ошибка дефект баг. Смотреть фото Что такое ошибка дефект баг. Смотреть картинку Что такое ошибка дефект баг. Картинка про Что такое ошибка дефект баг. Фото Что такое ошибка дефект баг

Релиз или RTM (англ. Release to manufacturing — промышленное издание) — издание продукта, готового к тиражированию.

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

◓ Пример из жизни.
Зять закончил строить дом для тещи. Жена все протестировала. Теперь можно привозить тещу и поздравлять ее с новосельем. То есть готовый дом — это и есть релиз.

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

◆ Пример из работы.
Разработчик создал продукт. Тестировщик его проверил. Если все хорошо, то принимается решение отдать продукт конечному потребителю.

Источник

говориМ о тестировании
простым языком

Что такое ошибка дефект баг. Смотреть фото Что такое ошибка дефект баг. Смотреть картинку Что такое ошибка дефект баг. Картинка про Что такое ошибка дефект баг. Фото Что такое ошибка дефект баг

Что такое ошибка дефект баг. Смотреть фото Что такое ошибка дефект баг. Смотреть картинку Что такое ошибка дефект баг. Картинка про Что такое ошибка дефект баг. Фото Что такое ошибка дефект баг

Основы тестирования. Жизненный цикл бага

Какой же путь проходит баг и какую роль в его жизненном цикле играет тестировщик? Давайте разбираться.

Ошибка, дефект, но чаще всего баг. Именно так называется то, что находят тестировщики в процессе работы.

Определение бага

Bug в переводе означает “жук, насекомое”. Первая ошибка, которая была задокументирована, возникла как раз из-за жука. В середине 40-х годов 20 века ученых Гарвардского университета вызвали для того, чтобы определить причину сбоя в работе вычислительной машины Mark II. Покопавшись в этой громадной куче приборов, соединенных проводами, они обнаружили бабочку, застрявшую между контактами электромеханического реле. Стало ясно, что именно она и явилась причиной сбоя. Одна из сотрудниц университета, Грейс Хоппер, так и сформулировала результат исследований: «неполадку вызвал баг». Извлеченное насекомое было вклеено скотчем в технический дневник, с соответствующей сопроводительной надписью. Ее, как говорят, до сих пор можно увидеть в этом журнале, хранящемся в университетском научном музее.

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

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

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

Что еще интересно, что программ, не содержащих ошибок, не бывает. По статистике на каждую тысячу строк программного кода, который пишут программисты, приходится несколько ошибок, а количество строк в сложном программном обеспечении достигает нескольких миллионов. Поэтому поиск и исправление этих ошибок – очень трудоемкое дело, составляющее до 45% всех затрат на разработку программного обеспечения.

Жизненный цикл бага

Давайте вкратце разберем каждый этап жизненного цикла

Данную схему можно изобразить в текстовом виде. Вот несколько вариантов прохождения багов (можно просто нарисовать на листочке на собеседовании):
1. Новый (new) —> Отклонен (rejected) —> Закрыт (closed)
2. Новый (new) —> Назначен (аssigned) —> Решен (fixed) —> Закрыт (closed)
3. Новый (new) —> Назначен (аssigned) —> Решен (fixed) —> Закрыт (closed) —> Переоткрыт (re-opend)

Жизненный цикл бага с точки зрения команды

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

Сначала тестировщик находит баг. Далее заносит его в систему учета ошибок. После этого программист начинает изучать отчет о дефекте. Именно на этом этапе он решает баг это или нет.

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

Если баг больше не воспроизводится, то тестировщик закрывает баг.
Если баг снова воспроизводится, то мы возвращаем его программисту. И снова проходим все шаги, начиная с 3-го шага (рассмотрения проблемы программистом).

Теперь другой сценарий — разработчик не принял баг. Если баг не принят, то разработчик возвращает его нам. Наша задача — рассмотреть проблему. Если баг вернули из-за некорректного описания, то значит переписываем его. Если невозможно воспроизвести дефект, то заново проверяем все шаги, может мы что то упустили при описании. Если разработчик прав и бага нет, то мы закрываем баг. А если баг все же есть, то вносим необходимые коррективы и опять возвращаемся на шаг 3.

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

Источник

Это нормально!

The programmer’s worst friend

Разница между ошибкой (багом) и дефектом (тоже багом)

Очередной сайт «Software Quality Assurance Interview Questions and Answers» подкинул то, над чем я когда-то искренне смеялся:

A fault in a program which causes the program to perform in an unintended or unanticipated manner.

If software misses some feature or function from what is there in requirement it is called as defect.

Причина смеха: это же взаимозаменяемые понятия.

Но, с точки зрения грамматики, разница есть.

Толковый словарь говорит, что разница в терминах есть:

По этим выкладкам, наиболее близкий перевод для ‘bug’ > ‘ошибка’.

Нет. Сам по себе дефект не ошибка. Дефект возникает как следствие ошибки. Но они сопутствуют друг другу, поэтому могут быть восприняты совместно.

В чем же их синонимность?

Ошибка:

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

Недостаток:

Рассматривать эти термины совместно — можно. Подменять — нет.

Баг = ошибка = дефект — в зависимости от контекста.

Добавим перцу

и поговорим как английские лорды с милордами о той же пошаговой стратегии определения терминов:

Mistake

Сказал бы «неожиданного», но это уводит нас в другой контекст.

В широком смысле — непреднамеренное отклонение от истины или правил.

Оригинал: A human action that produces an incorrect result.

Fault

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

Оригинал: An incorrect step, process, or data definition in a computer program. The outgrowth of the mistake, potentially leads to failure.

Failure

Неисправность. Неправильный результат. Собственно, результат дефекта.

Оригинал: An incorrect result. The result of the fault (e.g. a crash).

Error

Невозможность выполнить задачу (или получить верный результат) вследствие того, что где-то случилась ошибка, которая привела к дефекту, который вызвал неисправность, которая привела к невозможности сделать то, чего мы тут намеревались (евангелие от Антивируса, стих 256, строка 00).

Оригинал: A failure to complete a task, usually involving a premature termination.

Есть еще один распространенный вариант» The amount by which the result is incorrect, но внятно перевести это на русский я не могу. Что-то вроде «насколько неправилен результат»…

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *