Что является ожидаемым поведением системы при негативном тестировании?

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

Ответ

Ожидаемое поведение системы при негативном тестировании (ввод невалидных данных или создание нештатных условий) — это корректная и безопасная обработка ошибок, а не выполнение основной функции.

Критерии корректного поведения:

  1. Стабильность: Приложение не должно аварийно завершаться (crash), зависать или допускать утечки памяти.
  2. Защита данных: Некорректный ввод не должен приводить к повреждению, потере или несанкционированному доступу к данным.
  3. Понятная ошибка: Система должна возвращать информативное сообщение об ошибке (желательно на языке пользователя/клиента), а не сырой стектрейс или пустой ответ.
  4. Соответствие спецификации: Ответ должен соответствовать договоренностям (например, HTTP 400 для неверного запроса, валидационная ошибка в JSON-ответе API).

Пример (тест API):

# Негативный тест: попытка логина с пустым именем пользователя
response = api_client.post('/login', data={'username': '', 'password': '123'})

# Ожидаемое поведение:
assert response.status_code == 400  # или 422
assert "username" in response.json()  # поле с ошибкой указано
assert "required" in response.json()["username"][0].lower()  # понятное сообщение

Негативные тесты проверяют граничные значения, неожиданные типы данных, экстремальные объемы и попытки нарушить бизнес-логику.