Ответ
Баг-провод (или пропущенный дефект) — это ситуация, когда тест проходит успешно, но не обнаруживает ошибку, потому что проверяет не ту логику или использует данные, которые её маскируют.
Пример на Python:
def calculate_total(items):
total = 0
for item in items:
# Потенциальный баг: не учтена скидка или налог
total += item['price'] * item['quantity']
return total
# Тестовые данные
items = [
{'price': 10, 'quantity': 2},
{'price': 5, 'quantity': 0} # Количество = 0
]
# Результат: 20. Тест проходит.
# Баг-провод: тест не выявляет, что логика не обрабатывает
# случай quantity=0 (например, не должна добавлять товар в отчёт).
Почему это происходит:
- Тест проверяет только итоговую сумму, а не бизнес-правила.
- Данные
quantity=0не влияют на сумму, но могут влиять на другие процессы (наличие товара в чеке, расчёт скидок). Как избежать: Писать тесты, которые проверяют не только выходные данные, но и побочные эффекты, состояние системы и соблюдение бизнес-правил.