Ответ
Негативное тестирование — это проверка поведения системы при невалидных входных данных, нештатных условиях или ошибочных действиях пользователя. Его цель — убедиться, что система устойчива к сбоям и корректно обрабатывает ошибки.
Ожидаемое поведение системы в негативных сценариях:
- Отказоустойчивость: Система не должна полностью падать, допускать утечки памяти или данных.
- Защита данных: Критические данные не должны быть повреждены или потеряны.
- Корректная обработка ошибок: Возвращается понятный и безопасный для пользователя ответ (сообщение об ошибке, код состояния HTTP).
- Восстановление состояния: После ошибки система возвращается в стабильное, предсказуемое состояние.
- Логирование: Информация об ошибке (стектрейс, контекст) должна записываться в логи для последующего анализа разработчиками.
Пример теста на Python для проверки валидации возраста:
import pytest
def test_negative_age_input():
"""Проверяем, что система отвергает отрицательный возраст с понятной ошибкой."""
invalid_age = -5
# Попытка выполнить операцию с невалидными данными
with pytest.raises(ValidationError) as exc_info:
process_user_age(invalid_age)
# Проверяем текст ошибки
expected_error_msg = "Возраст должен быть положительным числом."
assert str(exc_info.value) == expected_error_msg,
f"Ожидалось: '{expected_error_msg}', Получено: '{exc_info.value}'"