Ответ
Различие лежит в цели тестирования и ожидаемом результате.
Позитивный сценарий (Positive Testing):
- Цель: Проверить, что система корректно работает при валидных входных данных и ожидаемом поведении пользователя.
- Ожидаемый результат: Система выполняет целевое действие успешно ("счастливый путь").
- Пример: Успешная авторизация с правильным логином и паролем.
Негативный сценарий (Negative Testing):
- Цель: Проверить устойчивость системы и корректность обработки ошибок при невалидных данных или нестандартных/ошибочных действиях.
- Ожидаемый результат: Система корректно обрабатывает ошибку — выдает понятное сообщение, не падает, сохраняет стабильность.
- Пример: Попытка авторизации с неправильным паролем, пустыми полями, вводом SQL-инъекции в поле логина.
Пример на Python (pytest):
def login(username: str, password: str) -> bool | str:
# Упрощенная логика
if username == "user@test.com" and password == "Secret123":
return True
else:
return "Invalid credentials"
# Позитивный тест
def test_positive_login():
result = login("user@test.com", "Secret123")
assert result is True # Ожидаем успех
# Негативный тест
def test_negative_login_wrong_password():
result = login("user@test.com", "WrongPass")
assert result == "Invalid credentials" # Ожидаем сообщение об ошибке
Вывод: Позитивные тесты проверяют, что система делает то, что должна. Негативные тесты проверяют, что система не ломается и правильно реагирует на то, чего делать не должна.