Какой приоритет у smoke-тестирования и почему?

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

Ответ

Smoke-тестирование имеет наивысший приоритет среди всех видов проверок после сборки (build).

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

Критерии smoke-теста:

  • Проверяет критический путь приложения (например: запуск, авторизация, открытие главной страницы).
  • Выполняется быстро (несколько минут).
  • Неглубокий — проверяет наличие, а не корректность всех деталей.

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

import requests

def test_smoke_critical_path():
    """Smoke-тест: проверка доступности основных эндпоинтов."""
    base_url = "https://api.example.com"
    critical_endpoints = [
        "/health",          # Проверка здоровья сервиса
        "/api/v1/login",    # Критичный функционал авторизации
        "/api/v1/products"  # Основной публичный эндпоинт
    ]
    for endpoint in critical_endpoints:
        response = requests.get(f"{base_url}{endpoint}", timeout=5)
        # Ожидаем любой успешный или корректный клиентский код ответа
        assert response.status_code in [200, 401, 403], 
               f"Smoke test failed for {endpoint}: {response.status_code}"