Что такое параметризация в тестировании?

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

Ответ

Параметризация тестов — это подход, при котором один тестовый метод выполняется многократно с разными наборами входных данных и ожидаемых результатов. Это позволяет избежать дублирования кода и повысить покрытие.

Пример параметризованного теста в pytest (Python):

import pytest

# Декоратор @pytest.mark.parametrize задает аргументы и наборы данных
@pytest.mark.parametrize("test_input, expected", [
    ("3+5", 8),
    ("2+4", 6),
    ("6*9", 54),
])
def test_eval(test_input, expected):
    assert eval(test_input) == expected

Ключевые преимущества:

  • Сокращение кода: Один тест вместо многих похожих.
  • Удобство поддержки: Добавление нового тест-кейса — это добавление одной строки данных.
  • Ясность: Все тестовые данные видны в одном месте.

Типичные сценарии использования:

  • Тестирование API с различными параметрами запроса.
  • Валидация полей формы с граничными значениями.
  • Проверка бизнес-логики на множестве входных комбинаций.