Ответ
Критерии выбора направлены на максимизацию ROI (возврата на инвестиции) от автоматизации. Автоматизировать стоит тесты, которые:
- Часто выполняются: Регрессионные, smoke-тесты, проверки перед каждым билдом.
- Требуют больших данных или комбинаций: Тесты с множеством входных значений (например, проверки валидации полей).
- Покрывают стабильный функционал: Функции, требования к которым не меняются в каждом спринте.
- Критичны для бизнеса: Основные пользовательские сценарии (оплата, регистрация, создание основного контента).
- Сложны для ручного выполнения: Проверки, требующие точных расчетов, нагрузочные тесты или тесты на разных конфигурациях.
Хороший кандидат для автоматизации — тест логина:
# Автоматизированный тест покрывает множество сценариев быстро
def test_login_scenarios():
# Позитивный сценарий
assert login("valid_user@example.com", "StrongPass123") == SUCCESS
# Негативные сценарии
assert login("", "password") == ERROR_EMPTY_USERNAME
assert login("user", "weak") == ERROR_WEAK_PASSWORD
assert login("wrong@email.com", "WrongPass") == ERROR_INVALID_CREDENTIALS
Не стоит автоматизировать:
- Одноразовые или исследовательские тесты.
- UI с нестабильными или часто меняющимися селекторами (без применения паттернов типа Page Object).
- Тесты, требующие человеческого восприятия (проверка дизайна, удобства использования).
- Функционал в активной стадии разработки (часто меняются требования).