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

Ответ

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

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

Ответ 18+ 🔞

А, слушай, вот эта вся история с "sanity-тестированием" — это ж, блядь, чистая правда жизни, как в том анекдоте про Герасима! Ну, представляешь: приходит новая сборка, а ты такой — "Муму? Муму?".

В общем, суть в чём, ёпта. Это не про то, чтобы всё проверить досконально, как на регрессе. Это быстрая, блядь, проверка на вшивость. Типа, система ещё дышит после наших правок или уже накрылась медным тазом? Запустил пять ключевых тестов — и всё понятно.

Зачем это, на хуй, нужно?

  • Время — деньги, а ресурсы — не резиновые. Зачем тратить три часа на полный регресс, если после фикса бага с кнопкой "Отправить" пользователь вообще залогиниться не может? Санька-тест это выловит за две минуты, и ты такой: "Всё, ребята, несите обратно, тут фундамент треснул". Экономия — овердохуища!
  • Ловля блокеров на ранней. Это как почувствовать, что сосед сверху опять серит на твоей крыше. Не ждёшь, пока с потолка полится, а сразу идёшь разбираться. Сборка упала на базовом сценарии? Всё, дальше можно не смотреть, пусть разработчики сначала свою Муму утопят... то есть, багу пофиксят.

Вот, смотри, как это выглядит в коде (проверка входа):

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

Вот если этот тест, сука, падает — это пиздец и тревога. Какое уж тут восстановление пароля или двухфакторка, если система даже на "привет, я свой" отвечает "иди нахуй". Сначала надо, чтобы этот базовый кусок заработал, а потом уже можно о высоком думать. Чистая логика, блядь!