Ответ
Деструктивное тестирование (Destructive Testing) — это метод проверки устойчивости системы в экстремальных, нештатных или ошибочных условиях с целью выявления критических сбоев и уязвимостей.
Основные цели:
- Проверить поведение системы за пределами заявленных лимитов.
- Найти точки отказа, которые могут привести к потере данных или полной недоступности.
- Оценить механизмы восстановления после сбоев.
Типичные примеры и методы:
- Некорректные входные данные:
- Ввод SQL-инъекций (
' OR '1'='1), XSS-скриптов, специальных символов, очень длинных строк.
- Ввод SQL-инъекций (
- Экстремальные нагрузки:
- Нагрузочное тестирование с пиковой нагрузкой, значительно превышающей планируемую.
- Нарушение зависимостей:
- Отключение сети, баз данных или внешних сервисов во время работы приложения.
- Повреждение данных:
- Коррупция файлов конфигурации или передача битых данных в API.
Пример проверки обработки некорректного ввода (Python):
def test_destructive_invalid_input():
"""Проверяем, что система корректно отклоняет нечисловой ввод."""
try:
# Метод calculate ожидает число
result = calculate("abc123!@#")
# Если исключения не было — это дефект
assert False, "ОШИБКА: Система приняла некорректные строковые данные"
except (ValueError, TypeError):
# Ожидаемое поведение — выброс исключения
assert True, "Система корректно отклонила невалидный ввод"