Что такое Sanity-тестирование (проверка работоспособности)?

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

Ответ

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

Ключевые характеристики:

  • Узкая направленность: Проверяется только измененный модуль или функция.
  • Неглубокое погружение: Нет детального тестирования всех сценариев.
  • Быстрое выполнение: Занимает минуты или часы.
  • Цель: Решить, можно ли передавать сборку на более глубокое (регрессионное) тестирование.
Отличие от Smoke-тестирования: Smoke-тестирование Sanity-тестирование
Проверка стабильности сборки в целом. Проверка рациональности конкретного изменения (логики).
Ответ на вопрос: "Запускается ли билд?" Ответ на вопрос: "Работает ли исправленная функция?"
Выполняется перед sanity-тестированием. Выполняется после успешного smoke-теста.

Пример: После исправления бага с расчетом скидки в корзине:

# Sanity-тест для проверки фикса
def test_cart_discount_sanity():
    cart = Cart()
    cart.add_item(price=1000, quantity=1)
    cart.apply_promo_code("SUMMER10")
    # Проверяем, что скидка применилась
    assert cart.total_price == 900  # 10% скидка
    # Проверяем, что базовая функциональность не сломана
    assert cart.items_count == 1