Что такое дефект (баг) в тестировании ПО?

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

Ответ

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

Ключевые характеристики:

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

Пример кода с дефектом:

def calculate_discount(price, discount_percent):
    # Ожидается: price - (price * discount_percent / 100)
    return price * discount_percent / 100  # Дефект: возвращает только сумму скидки, а не итоговую цену

Важные нюансы:

  • Отличие от отказа: Дефект — это внутренняя причина, а отказ (failure) — её внешнее проявление для пользователя.
  • Скрытые дефекты: Могут не проявляться годами до наступления специфических условий.
  • Приоритет и серьезность: Оцениваются отдельно (насколько срочно чинить vs. насколько сильно влияет на систему).