Как часто применяется smoke-тестирование в процессе разработки?

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

Ответ

Smoke-тестирование (санити-чек) — это регулярная, часто ежедневная практика. Оно выполняется для быстрой проверки стабильности сборки перед запуском более глубокого тестирования.

Типичные триггеры для запуска smoke-тестов:

  1. После каждой успешной сборки (build) в CI/CD-пайплайне.
  2. Перед началом регрессионного тестирования новой версии.
  3. После развертывания (деплоя) на тестовое или staging-окружение.
  4. После установки «горячего» фикса (hotfix).

Пример набора smoke-тестов для веб-приложения (псевдокод):

import requests

# 1. Проверка доступности главной страницы
response = requests.get("https://app.com")
assert response.status_code == 200

# 2. Проверка критического API-эндпоинта
api_response = requests.get("https://api.app.com/health")
assert api_response.status_code == 200 and api_response.json()["status"] == "OK"

# 3. Проверка базового функционального потока (например, логин)
login_data = {"username": "test", "password": "test"}
login_response = requests.post("https://app.com/login", data=login_data)
assert login_response.status_code == 200 or 302  # Успех или редирект

В современных DevOps-практиках smoke-тесты часто полностью автоматизированы и интегрированы в пайплайн как gate (проверка) для продвижения сборки дальше.