Зачем выполнять Sanity-тестирование перед регрессионным?

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

Ответ

Sanity-тестирование (или проверка «здравомыслия») выполняется для быстрой валидации базовой работоспособности ключевых функций сборки после внесения изменений (например, фикса бага или добавления новой фичи). Его цель — определить, стабильна ли система для начала более глубокого и затратного регрессионного тестирования.

Почему это важно:

  • Экономия времени и ресурсов: Если Sanity-тест обнаруживает критическую ошибку в основной функциональности (например, невозможность входа в систему), то запуск полного регресса бессмыслен до её исправления.
  • Раннее обнаружение блокеров: Позволяет быстро отклонить нестабильную сборку и отправить её на доработку.

Пример Sanity-теста для функции входа (Python/pytest):

def test_login_sanity():
    # Проверяем только самый базовый счастливый путь
    result = login(username="valid_user@example.com", password="correct_password_123")
    assert result.is_success() == True
    assert result.get_user_session() is not None

Если этот тест падает, нет смысла проверять сложные сценарии (восстановление пароля, двухфакторная аутентификация) — сначала необходимо исправить фундаментальную проблему.