Ответ
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