Ответ
Позитивное и негативное тестирование — это два взаимодополняющих подхода, отличающихся целью и типом входных данных.
| Критерий | Позитивное тестирование | Негативное тестирование |
|---|---|---|
| Цель | Проверить, что система корректно выполняет заявленные функции при валидных данных. | Проверить, что система корректно обрабатывает ошибки и не ломается при невалидных данных или действиях. |
| Фокус | Проверка «пути успеха» (happy path). | Проверка граничных условий, исключений и нестандартного поведения. |
| Входные данные | Данные, соответствующие спецификации. | Данные вне спецификации: пустые значения, неверные форматы, превышение лимитов. |
Примеры:
-
Позитивный тест для функции логина: Ввод зарегистрированного email и правильного пароля должен приводить к успешной авторизации.
# Pytest пример позитивного теста def test_positive_login(valid_user_credentials): result = authenticate(valid_user_credentials) assert result.is_success() == True assert result.get_session() is not None -
Негативный тест для функции логина: Ввод неправильного пароля должен возвращать понятную ошибку без создания сессии.
# Pytest пример негативного теста def test_negative_login_wrong_password(valid_username): result = authenticate(username=valid_username, password="wrong") assert result.is_success() == False assert "Invalid credentials" in result.get_error_message() assert result.get_session() is None # Важно: сессия не создана
Вывод: Позитивное тестирование подтверждает, что система работает. Негативное тестирование подтверждает, что система стабильна и защищена от ошибочных сценариев. Оба типа необходимы для всесторонней проверки.