Перейти к содержимому

Баг и фича в чем разница

  • автор:

Фича

Ольга Голубова

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

Слово пришло к нам от английского «feature» — особенность.

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

Чаще всего термин употребляется в сленге, но сегодня он уже перекочевал в обычную жизнь. Фичами называют необычные функции бытовой техники, уникальный дизайн, не стандартную функциональность. Часто слово фича в сфере, не связанной с IT заменяют на созвучную «фишка». От фичи образовалось словосочетание fetch request, хорошо известное программистам, а также появилось крылатое выражение-неологизм: «Это не баг, а фича».

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

YouTube

Свяжите сервисы между собой без программистов за 5 минут!

Подключение Simvoly

Подключение Simvoly

Подключение MailerLite

Подключение MailerLite

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

Баг или фича?

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

Как отличить баг от фичи? Если у вас что-то не работает или работает не корректно, то это точно баг. А если работает, но не совсем так как ожидалось, то возможно это фича 🙂 Понять это можно при тестировании продукта.

Настроить интеграцию без программистов ApiX-Drive

Статьи о маркетинге, автоматизации и интеграциях в нашем Блоге

Баг и фича. В чем разница? Классификация и жизненный цикл дефектов.

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

Начнем с терминологии (определения из ISTQB ):

  • Просчет (mistake): См. ошибка;
  • Недочет (fault): См. дефект;
  • Помеха (bug): См. дефект;
  • Дефект (defect): Изъян в компоненте или системе, который может привести компонент или систему к невозможности выполнить требуемую функцию, например неверный оператор или определение данных. Дефект, обнаруженный во время выполнения, может привести к отказам компонента или системы;
  • Отказ (failure): Отклонение компонента или системы от ожидаемого выполнения, эксплуатации или результата.
  • Ошибка (error): Действие человека, которое приводит к неправильному результату;

Тестировщиков или разрабов?

Однако же на практике редко кто используют именно эту терминологию. Как правило, тестировщики в России пользуются следующими терминами:

  • Ошибка (Error) возникает из-за просчета (Mistake) в написании кода разработчиком;
  • Дефект (Defect) это скрытый недостаток в ПО, возникший из-за ошибки в написании кода;
  • Когда дефект (Defect) обнаруживается тестировщиком, он называется багом (Bug);
  • Если тестировщики упустили дефект и его нашел пользователь, то это сбой (Failure);
  • Если программа в итоге не выполняет свою функцию, то это отказ (Fault).

Баг и фича. В чем разница?

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

Шуточная картинка, которая отлично передает разницу между понятиями

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

На своей первой работе в компании, которая занималась развитием социальной сети для соседей и УК, мне приходилось чуть ли не постоянно уточнять, действительно ли я нашла баг. Но в этом нет ничего страшного. Запомните одно правило — лучше не бояться и несколько раз спросить, но знать потом наверняка. Чем полагаться на собственные силы и допустить кучу ошибок.

Серьезный тестировщик. December 25, 2020

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

Это баг, если: — работало, но вдруг перестало;

— работает, но неправильно;

– реализация не соответствует описанию и в задаче в явном виде не зафиксированы корректировки;

– нужно изменить название кнопки/страницы/раздела, потому что в них есть опечатка или “Отменить отмену” (классика!);

– опечатки в принципе (легко может иметь разный приоритет в зависимости от целей и задач проекта);

– после сохранения информация не появляется на странице, даже если в консоли �� 200 ОК ;

Так выглядит Сhrome DevTools

– не все указанные при сохранении поля отображаются на странице, но поля неизменно показываются при редактировании;

– при нажатии на кнопку “УДАЛИТЬ ВООБЩЕ ВСЕ ДАННЫЕ КЛИЕНТА” нет модального окна с подтверждением Да/Нет, да и сделать это может любой пользователь без авторизации, который нашел ссылку;

– по переходу по прямой ссылке на услугу не проверяется какой пользователь сейчас авторизован и таким образом можно посмотреть чужие профили или детали услуг, если подобран валидный id ;

– можно c URL’ом заказать услугу другому клиенту или в Elements через DevTools изменить стоимость в корзине;

– информация торчит за границами своего блока или “наслаивается” на другой (ж-ж-ж-жуть, но на некоторых проектах этим можно легко пренебречь);

– страница очень долго открывается, ну о-о-очень долго — секунд 30 на стабильном интернете (взбешённый клиент гарантирован);

– система делает что-то, что она не должна делать согласно изначальной задумке. Например, закрытие аккаунта не только переводит его в статус “Закрыто”, но и возвращает клиенту все деньги, которые он принёс проекту за всё время сотрудничества за уже оказанные услуги (о-о-ой!);

– неудобно пользоваться. Например, чтобы посмотреть детали услуги клиента, нужно зайти на три вкладки вглубь аккаунта, а смотреть нужно 2–3 раза в день. Или неудобно копировать информацию со страницы, а по рабочим вопросам это нужно делать несколько раз в день — это баг интерфейса и он должен быть исправлен.

Это фича-реквест, если:

– нужно изменить название кнопки/страницы/раздела, потому что есть ощущение, что оно не отражает действительности;

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

– знаете как улучшить ту или иную часть системы, чтобы было удобней. Например, меню необоснованно занимает 30% ширины экрана, а полезная информация ютится на оставшихся 70%;

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

– на странице не хватает какой-то информации или возможности её добавить;

– на странице не хватает фильтров и пагинации, когда информации много и трудно найти нужное или отображение 1000+ элементов существенно сказывается на скорости загрузки страницы;

– пользователь ведёт дополнительную отчетность в блокноте/экселе, когда проблему можно решить выводом ID на странице и несколькими фильтрами.

Хорошо если в команде есть UX/UI дизайнер, а если нет? Тестировщику стоит различать что в дизайне баг, который может привести к печальным последствиям, а что запрос на улучшение, который сделает взаимодействие пользователей с системой более гладким и удобным, но может быть реализован позднее.

Поговорите с Главным По Проекту, узнайте кто ваш пользователь, спросите про критичные для пользователя и бизнеса фичи, запишите что будет “шоу-стоппером” для релиза (кроме очевидных “ничего-не-работает-памагити”), скорректируйте свои проверки в соответствии с этими знаниями и не бойтесь предлагать улучшения.

Классификация дефектов

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

Классы дефектов:

Дефекты требований и спецификаций (Requirements and Specifications Defects):

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

— Двусмысленными
— Противоречивыми
— Непонятными
— Избыточными
— Неточными

Некоторые специфические дефекты требований / спецификаций:

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

Дефекты дизайна. Дефекты дизайна возникают когда неправильно спроектированы:

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

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

К дефектам дизайна относятся:

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

Дефекты кода: Дефекты кодирования возникают из-за ошибок при реализации кода. Классы дефектов кодирования аналогичны классам дефектов дизайна. Некоторые дефекты кодирования возникают из-за непонимания конструкций языка программирования и недопонимания с разработчиками.

  • Алгоритмические дефекты и дефекты обработки:
    1. Непроверенные условия overflow and underflow;
    2. Сравнение несоответствующих типов данных;
    3. Преобразование одного типа данных в другой;
    4. Неправильный порядок арифметических операторов;
    5. Неправильное использование или пропуск круглых скобок;
    6. Потеря точности (Precision loss);
    7. Неправильное использование знаков.
  • Дефекты управления, логики и последовательности: этот тип дефектов включает неправильное выражение операторов case, неправильное повторение циклов и пропущенные пути;
  • Типографические дефекты: в основном это синтаксические ошибки, например неправильное написание имени переменной, которые обычно обнаруживаются компилятором, self-reviews, or peer reviews;
  • Дефекты инициализации: этот тип дефектов возникает, когда операторы инициализации пропущены или неверны. Это может произойти из-за недопонимания или отсутствия связи между программистами или программиста и дизайнера, небрежности или непонимания среды программирования;
  • Дефекты потока данных: дефекты потока данных возникают, когда код не следует необходимым условиям потока данных;
  • Дефекты данных: на это указывает неправильная реализация структур данных;
  • Дефекты интерфейса модуля: возникают из-за использования неправильных или несовместимых типов параметров, неправильного количества параметров или неправильного порядка параметров;
  • Дефекты документации кода: когда документация по коду не описывает, что программа на самом деле делает, либо является неполной или двусмысленной;
  • Внешнее оборудование, дефекты программных интерфейсов: эти дефекты возникают из-за проблем, связанных с Системными вызовами, Ссылками на базы данных, Последовательностью ввода / вывода, Использованием памяти, Использованием ресурсов, Обработкой прерываний и исключений, Обменом данными с оборудованием, Протоколами, Форматами, Интерфейсами с файлами сборки, Временными последовательностями.

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

  • Дефекты тестовой обвязки: Для тестирования программного обеспечения на уровне модулей и интеграции необходимо разработать вспомогательный код. Это называется Test Harness или scaffolding code . Test Harness должен быть тщательно спроектирован, реализован и протестирован, поскольку это рабочий продукт, и этот код можно повторно использовать при разработке новых версий программного обеспечения;
  • Дизайн тестового случая и дефекты процедуры тестирования: сюда входят неправильные, неполные, отсутствующие, несоответствующие тестовые примеры и процедуры тестирования.

Жизненный цикл дефекта (Defect/Bug Life Cycle)

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

https://www.guru99.com/images/1-2015/012715_0802_BugLifeCycl1.png

Статусы дефекта

  • Новый (New): когда новый дефект регистрируется и публикуется впервые;
  • Назначен (Assigned): после публикации бага тестировщиком руководитель тестировщика утверждает ошибку и передает ее команде разработчиков;
  • Открыт (Open): разработчик начинает анализ и работает над исправлением бага;
  • Исправлен (Fixed): разработчик внес необходимое изменение в код и проверил его;
  • Ожидает повторного тестирования (Pending retest): как только дефект будет исправлен, разработчик предоставляет тестировщику конкретный код для повторного тестирования кода. Поскольку тестирование программного обеспечения остается незавершенным со стороны тестировщиков, ему присваивается статус «ожидает повторного тестирования»;
  • Повторное тестирование (Retest): на этом этапе тестировщик выполняет повторное тестирование кода, чтобы проверить, исправлен ли дефект разработчиком;
  • Проверен (Verified): тестировщик повторно тестирует баг после его исправления разработчиком. Если баг исправлен, то присваивается статус «проверено»;
  • Переоткрыт (Reopen): если баг сохраняется даже после того, как разработчик исправил баг, тестировщик меняет статус на «повторно открыт». И снова баг проходит жизненный цикл.
  • Закрыт (Closed): если баг больше не существует, тестировщик присваивает статус «Закрыто».
  • Дубль (Duplicate): если дефект повторяется дважды или дефект соответствует той же концепции ошибки, статус изменяется на «дублировать».
  • Отклонен (Rejected): если разработчик считает, что дефект не является таковым, он меняет статус на «отклонен»;
  • Отложен (Deferred): если текущий баг не является приоритетным и ожидается, что он будет исправлен ​​в следующем выпуске, таким багам присваивается статус «Отложено»;
  • Не является багом (Not a bug): если это не влияет на функциональность приложения, то багу присваивается статус «Не является багом».

https://www.guru99.com/images/defectcyclechart.png

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

Утечка дефектов и релиз бага (Bug Leakage & Bug Release)

Утечка бага (Bug Leakage): возникает когда пропускается баг в билде, который вышел в Production. Если баг был обнаружен конечным пользователем или заказчиком, мы называем это утечкой ошибок.

Выпуск бага (Bug release): выпуск программного обеспечения в Production с некоторыми известными багами. Эти известные баги следует включить в примечания к выпуску (release notes). Другой вариант — передача программного обеспечения группе тестирования с некоторыми известными багами, серьезность и приоритет которых невысоки. Эти ошибки можно исправить перед выпуском в Production.

Что такое фича и чем она отличается от бага

Что такое фича? Это слово, как и другие термины в программировании, заимствовано из английского языка. Feature в переводе означает «особенность». И программисты стали применять это слово для обозначения необычных свойств своих программ.

На что обратить внимание? Забавно то, что такие необычные свойства могут иметь и негативный подтекст, который, тем не менее, вызывает гордость своего «создателя». Из этого родилась знакомая многим поговорка «Это не баг, а фича». И вот как она может стать полезной для вашего продукта.

В статье рассказывается:

  1. Что такое фича простыми словами
  2. Основные отличия бага от фичи
  3. иды фич
  4. 5 задач, которые выполняет фича продукта
  5. Как внедрить фичу в продукт
  6. Где искать идеи для фичи

Пройди тест и узнай, какая сфера тебе подходит:
айти, дизайн или маркетинг.
Бесплатно от Geekbrains

Что такое фича простыми словами

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

Чаще всего это слово можно услышать применительно к играм, сайтам, программам и прочим продуктам IT-сферы. Именно оттуда понятие «фича» вошло в молодежный сленг.

Разберем, что такое фича на компьютерном сленге. Здесь есть два оттенка значения.

Фича в программировании игр

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

Приведем в пример ошибку из игры StarCraft от Blizzard. По задумке, Муталиск (моб Зергов) должен в определенный момент оставаться на месте, но вместо этого он двигался в направлении атаки. Этот баг оказался полезным, так как оживлял игру, которая стала подвижней и насыщенней. Поэтому во второй части игры эта ошибка была допущена специально, то есть баг превратился в фичу.

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

Узнай, какие ИТ — профессии
входят в ТОП-30 с доходом
от 210 000 ₽/мес
Павел Симонов
Исполнительный директор Geekbrains

Команда GeekBrains совместно с международными специалистами по развитию карьеры подготовили материалы, которые помогут вам начать путь к профессии мечты.

Подборка содержит только самые востребованные и высокооплачиваемые специальности и направления в IT-сфере. 86% наших учеников с помощью данных материалов определились с карьерной целью на ближайшее будущее!

Скачивайте и используйте уже сегодня:

Павел Симонов - исполнительный директор Geekbrains

Павел Симонов
Исполнительный директор Geekbrains

Топ-30 самых востребованных и высокооплачиваемых профессий 2023

Поможет разобраться в актуальной ситуации на рынке труда

Подборка 50+ бесплатных нейросетей для упрощения работы и увеличения заработка

Только проверенные нейросети с доступом из России и свободным использованием

ТОП-100 площадок для поиска работы от GeekBrains

Список проверенных ресурсов реальных вакансий с доходом от 210 000 ₽

Получить подборку бесплатно
Уже скачали 25510

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

Фича в IT-сфере

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

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

Работники IT-сферы иногда первым делом сообщают заказчику о фичах, чтобы он понял, какими особенностями обладает данный продукт.

Итак, под термином «фича» в IT скрывается оригинальное дополнение к продукту, которое отличает его от других и делает узнаваемым.

Основные отличия бага от фичи

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

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

Пример из игры «Марио»: прыгая на первом уровне, можно случайно наткнуться на невидимый грибок. В результате у игрока появится дополнительная жизнь. Подобные невидимые фичи есть в разных играх. Найти их можно как случайно, так и изучив намеки авторов (вспомните подсказки от IT-романтика из фильма «Первому игроку приготовиться»).

Итак, отличие бага от фичи очень простое. Когда мы не видим помех или неприятностей от той или иной особенности, перед нами фича.

Вспомним несколько багов из компьютерных игр, ставших фичей:

  • пышные формы Лары Крофт возникли из-за ошибки оцифровки при создании персонажа;
  • случайное появление блоков с несколькими монетками в Super Mario, которые разработчики оставили как неплохую идею;
  • незапланированное комбо в Street Fighter перешло в другие файтинги, так как пользователи оценили эту функцию;
  • создавая свинью, разработчик случайно поменял в коде местами длину и высоту, и таким образом в Minecraft появился крипер.

Виды фич

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

Убойная, или «киллинг-фича» (killing feature)

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

Фича — что это такое? Определение, значение интересные истории из жизни тестирования

Фича — что это такое? Определение, значение интересные истории из жизни тестирования

Фича — на сленге айтишников это слово обозначает какую-то особенность программы или игры, дословно может звучать как “фишка”. Существует кочующее по просторам интернета выражение как “Не баг, а фича!”, зачастую оно только подтверждается, программисты разрабатывая приложение или игру могут допустить ошибку совсем незаметную на этапе разработки, возможно незаметную на этапе тестирования, однако когда конечный продукт получают пользователи, по случайности, из-за определенной последовательности действий могут обнаружить данный баг. Казалось бы в последующих обновлениях его исправят, но бывают случаи когда данный баг является доброкачественным, который при дальнейшем использовании проявляет себя как особенность данного приложения, такие баги и называют фичей.

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

От бага до целой игры!

Ярким примером такой фичи является серия игр Grand Thief Auto, она сама по себе является одной большой фичей, и вот почему. В самой ранней версии игры полицейские имели баг врезаться на машине в игрока и таранить его. Разработчикам данная особенность понравилась и они доработали игру, сделав персонажу возможность выходить из автомобиля, использовать различное оружие и устраивать в городе беспорядки нарушая закон.

Не менее известная история произошла с популярной серией игр в жанре файтинг Mortal Kombat. В данном случае игровое комьюнити способствовало развитию бага в фичу. Однажды игроками был замечен баг когда у персонажа Скорпиона цвет текстуры становился красным, а имя заменялось на ERMACS, что расшифровывалось как Error Macro — ошибка макросов, в будущем персонаж Ермак. Также игроками было замечено новое имя персонажа — Reptile, в отладочном меню игры, но самого персонажа не существовало и его нельзя было выбрать. Из-за влияния игрового и новостного сообщества разработчики приняли решение дать жизнь этим героям.

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

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