Ответ
Латентный дефект — ошибка, которая присутствует в коде, но еще не проявила себя, так как не были выполнены условия для ее срабатывания.
Замаскированный дефект — ошибка, которая уже активировалась, но ее симптомы скрыты другим поведением системы (например, перехватом исключения без логирования).
Ключевое отличие: Латентный баг еще не активен, замаскированный — уже активен, но неочевиден.
Пример латентного бага:
def calculate_discount(total, discount_rate):
# Упадет, если discount_rate = 0, но это условие пока не встретилось
return total / discount_rate
Пример замаскированного бага:
def calculate_discount(total, discount_rate):
try:
return total / discount_rate
except ZeroDivisionError:
# Ошибка перехвачена, но возвращается некорректное значение
return total # Симптом скрыт, логика нарушена
Почему это важно: Поиск латентных багов требует анализа кода и покрытия всех ветвлений, а замаскированных — проверки обработки ошибок и побочных эффектов.