Что такое Test Suite (Набор тестов)?

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

Ответ

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

Цели создания Test Suite:

  • Регрессионное тестирование: Запуск всех тестов, проверяющих, что новая функциональность не сломала существующую.
  • Дымовое тестирование (Smoke Suite): Быстрая проверка критически важных функций системы после сборки.
  • Наборы по функциональности: Все тесты для конкретного модуля (например, LoginTestSuite) или пользовательского сценария.
  • Селективный запуск: Выполнение только определённых категорий тестов (например, медленных интеграционных тестов — ночью).

Способы создания (на примере Python unittest):

import unittest

class TestMath(unittest.TestCase):
    def test_add(self):
        self.assertEqual(1 + 1, 2)
    def test_multiply(self):
        self.assertEqual(2 * 3, 6)

class TestString(unittest.TestCase):
    def test_upper(self):
        self.assertEqual('foo'.upper(), 'FOO')

# Способ 1: Автоматическое создание сьюты из всех тестовых классов
suite = unittest.TestLoader().loadTestsFromTestCase(TestMath)
suite.addTest(unittest.TestLoader().loadTestsFromTestCase(TestString))

# Способ 2: Ручное добавление конкретных тестовых методов
manual_suite = unittest.TestSuite()
manual_suite.addTest(TestMath('test_add'))
manual_suite.addTest(TestString('test_upper'))

# Запуск сьюты
runner = unittest.TextTestRunner(verbosity=2)
runner.run(suite)

На практике Test Suite часто определяются конфигурационными файлами фреймворков (например, pytest через маркеры @pytest.mark.smoke) или в CI/CD пайплайнах для разных стадий.