В каких ситуациях и как вы проводите Smoke-тестирование?

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

Ответ

Smoke-тестирование (санитарная проверка, Build Verification Test) проводится после каждой новой сборки (билда) приложения перед запуском полного цикла тестирования. Его цель — быстро проверить работоспособность критически важных функций и определить, стабильна ли сборка для дальнейшего, более глубокого тестирования.

Типичный процесс:

  1. Цель: Проверить, что основные пользовательские пути (happy paths) работают.
  2. Объем: 5-15 высокоуровневых тестов (чек-лист или автоматизированные скрипты).
  3. Критерий прохождения: Все smoke-тесты должны быть пройдены. В случае падения хотя бы одного — сборка отклоняется, и разработчики получают уведомление.

Пример автоматизированного smoke-теста для веб-приложения (Python + pytest + Selenium):

import pytest
from selenium import webdriver

def test_smoke_check():
    """Базовый smoke-тест для веб-приложения."""
    driver = webdriver.Chrome()
    try:
        # 1. Проверка доступности главной страницы
        driver.get("https://app.example.com")
        assert "My App" in driver.title

        # 2. Проверка критического API-эндпоинта (здоровье системы)
        # (Используем requests для API-проверки)
        import requests
        health_resp = requests.get("https://api.example.com/health")
        assert health_resp.status_code == 200
        assert health_resp.json()["status"] == "OK"

        # 3. Проверка базового функционала (например, отображение формы логина)
        login_button = driver.find_element("id", "login-btn")
        assert login_button.is_displayed()

    finally:
        driver.quit()

# Если тест падает, сборка считается нестабильной.

Инструменты: Для smoke-тестов часто используют Postman/Newman (API), Selenium/Playwright/Cypress (UI), или простые скрипты на pytest/JUnit.