Что такое Test Suite (тест-сьют) в автоматизации?

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

Ответ

Test Suite (тест-сьют) — это набор тестовых случаев, сценариев или классов, объединённых для выполнения общей цели и запускаемых как единое целое.

Основные цели создания сьютов:

  1. Логическая группировка: Объединение тестов по функциональности (например, LoginSuite), типу (SmokeSuite, RegressionSuite) или приоритету.
  2. Управление выполнением: Возможность запускать только определённые группы тестов (например, только критичные смоук-тесты перед деплоем).
  3. Оптимизация CI/CD: Интеграция в пайплайны для этапов сборки, приёмочного тестирования и регрессии.
  4. Параллельный запуск: Распределение сьютов по разным исполнителям для ускорения прогона.

Пример создания и запуска сьюта в Python (pytest):

# test_login.py
import pytest

def test_valid_login():
    assert login("user", "pass123") is True

def test_invalid_password():
    assert login("user", "wrong") is False

# test_search.py
import pytest

def test_search_by_name():
    results = search("John")
    assert "John Doe" in results

# Создание сьюта через маркировку (pytest)
# Запуск: pytest -m "smoke"
@pytest.mark.smoke
def test_critical_login():
    assert login("admin", "admin123") is True

Пример создания сьюта в Java (JUnit):

import org.junit.runner.RunWith;
import org.junit.runners.Suite;

@RunWith(Suite.class)
@Suite.SuiteClasses({
    TestLogin.class,
    TestSearch.class,
    TestCheckout.class
})
public class RegressionTestSuite {
    // Класс-контейнер для сьюта
}

Сьют может включать модульные, интеграционные и end-to-end тесты.