Встречается на 37% собеседований по QA Manual

Расскажи что такое Smoke тестирование

Smoke-тестирование (дымовое тестирование) — это короткий цикл тестов, выполняемый на начальном этапе проверки продукта, чтобы убедиться, что приложение запускается и его основные функции работают, прежде чем передавать его на полное тестирование. Оно отвечает на вопрос: «Готов ли продукт к более глубокой проверке?» и позволяет быстро выявить критические и блокирующие дефекты, экономя время и ресурсы команды.

Как это работает

Smoke-тесты покрывают наиболее важные модули и сценарии использования приложения. Обычно это проверка:

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

Тесты выполняются поверхностно, без глубокого изучения функциональности. Их цель — не найти все ошибки, а подтвердить, что продукт в принципе работает. Если smoke-тесты проходят, продукт передают на полный цикл тестирования. Если нет — возвращают на доработку.

Пример

Пример smoke-теста для интернет-магазина на Python с использованием pytest и Selenium:

python
import pytest
from selenium import webdriver

def test_smoke_purchase():
    driver = webdriver.Chrome()
    driver.get("https://example-shop.com")

    # Проверка, что главная страница загрузилась
    assert "Магазин" in driver.title

    # Поиск товара
    search = driver.find_element_by_name("q")
    search.send_keys("ноутбук")
    search.submit()

    # Добавление в корзину
    driver.find_element_by_css_selector(".add-to-cart").click()

    # Переход к оформлению заказа
    driver.find_element_by_css_selector(".checkout").click()

    # Проверка, что страница оформления открылась
    assert "Оформление" in driver.page_source

    driver.quit()

Этот тест проверяет основной путь покупателя: открытие сайта, поиск, добавление в корзину и переход к оформлению. Если любой шаг падает — smoke-тест не пройден.

Подводные камни

  • Не путать с другими видами тестирования. Smoke-тесты отличаются от смоук-тестов (проверка конкретной сборки) и от регрессионного тестирования (проверка, что изменения не сломали существующую функциональность). Smoke — это быстрая проверка «живучести» продукта.
  • Автоматизация. Smoke-тесты почти всегда одинаковы, поэтому их выгодно автоматизировать. Но важно поддерживать их в актуальном состоянии — иначе они перестанут отражать реальные критические сценарии.
  • Ложная уверенность. Прохождение smoke-тестов не гарантирует отсутствие дефектов в менее критичных модулях. Это лишь фильтр для отбраковки заведомо нерабочих сборок.
  • Время выполнения. Smoke-тесты должны быть быстрыми (минуты, а не часы). Если они становятся медленными, их перестают запускать регулярно, и ценность теряется.

Когда использовать

Smoke-тестирование применяется:

  • при каждой новой сборке перед передачей в тестирование;
  • после крупных изменений в коде, чтобы убедиться, что основные сценарии не сломаны;
  • в CI/CD пайплайнах как первый этап проверки перед более полными наборами тестов.

Это обязательная часть процесса тестирования в большинстве проектов, особенно при частых релизах.

Коротко

  • Smoke-тестирование — быстрая проверка готовности продукта к полному тестированию.
  • Покрывает основные функции и критические сценарии, выявляет блокирующие дефекты.
  • Тесты должны быть автоматизированы и выполняться регулярно.
  • Прохождение smoke-тестов — условие для передачи продукта на полный цикл тестирования.
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы