Возможно ли довести проект до полного отсутствия багов?

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

Ответ

Нет, это невозможно и не является целью тестирования.

Причины:

  1. Бесконечное пространство состояний — невозможно протестировать все комбинации входных данных, окружения и действий пользователя.
  2. Экономическая нецелесообразность — стоимость поиска каждого следующего бага стремительно растет (принцип убывающей отдачи).
  3. Изменчивость — новые баги появляются при изменениях в коде, обновлениях сторонних библиотек или инфраструктуры.

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

def calculate_discount(price, discount_percent):
    # Нет проверки на отрицательные значения или discount > 100
    return price * (1 - discount_percent / 100)

Правильная цель QA — управление рисками:

  • Выявление и устранение критических и блокирующих багов.
  • Доведение количества известных дефектов до приемлемого уровня для релиза.
  • Смещение фокуса с "нахождения всех багов" на предотвращение серьезных сбоев и улучшение пользовательского опыта.