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

«В чем разница между багом и фичей в разработке ПО?» — вопрос из категории Основы тестирования, который задают на 10% собеседований QA Тестировщик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Баг (ошибка) — это отклонение фактического поведения программы от ожидаемого, описанного в требованиях, спецификациях или общепринятых стандартах. Он ухудшает качество и требует исправления.

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

Ключевые отличия:

  • Источник: Баг возникает из-за ошибки в реализации. Фича — из-за намеренного решения (продуктового или архитектурного).
  • Обработка: Баги фиксируются. Фичи — разрабатываются и тестируются.
  • Восприятие: Баг — это проблема. Фича — это улучшение.

Пример:

  • Баг: Кнопка "Сохранить" в модальном окне не реагирует на клик, хотя по ТЗ должна сохранять данные.
  • Фича: В то же модальное окно добавили новую кнопку "Сохранить и выйти", которой не было в изначальных требованиях, но она упрощает workflow пользователя.

Важный нюанс: Иногда одно и то же поведение может трактоваться по-разному в зависимости от контекста и ожиданий ("It's not a bug, it's a feature").