Что такое баг (дефект) в программном обеспечении?

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

Ответ

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

Пример бага в коде:

# Ожидается функция сложения
def add(a, b):
    return a - b  # Баг: вместо сложения выполняется вычитание

print(add(2, 3))  # Ожидаемый результат: 5, Фактический результат: -1

Ключевые аспекты бага:

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

Важное различие:

  • Баг (Defect) — это ошибка, влияющая на функциональность.
  • Дефект (Fault/Flaw) — более широкое понятие, включающее нефункциональные проблемы (например, опечатка в тексте интерфейса, не влияющая на работу).

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