Что такое Regression и Confirmation тестирования, какая между ними разница?qa-10

Regression Testing

Регрессионное тестирование — это тип тестирования, направленный на проверку того, что внесенные изменения в код (например, исправление бага, добавление новой функциональности или оптимизация) не повлияли на уже работающую функциональность.

Ключевые особенности:

  • Цель: Убедиться, что существующие функции работают корректно после изменений.
  • Когда выполняется: После каждого изменения кода, перед выпуском новой версии.
  • Методы выполнения:
    • Полный регресс (все тесты) — ресурсоемко, но надежно.
    • Частичный регресс (только затронутые модули) — быстрее, но требует анализа влияния изменений.
    • Автоматизированный регресс — идеальный вариант для частых проверок.
  • Пример:
def test_login_regression():
    # Проверяем, что старый функционал входа работает
    assert login("user", "password") == True

Confirmation Testing

Подтверждающее тестирование (или Re-testing) — это повторное тестирование конкретного функционала после исправления дефекта, чтобы убедиться, что баг действительно устранен.

Ключевые особенности:

  • Цель: Проверить, что конкретный дефект исправлен.
  • Когда выполняется: Только после фикса бага, перед включением в регрессию.
  • Отличие от регрессионного: Confirmation testing фокусируется только на одном исправлении, а Regression — на всей системе.
  • Пример:
def test_fixed_bug_confirmation():
    # Баг #1234: Кнопка "Отправить" не работала при пустом поле
    assert submit_form("") == "Поле обязательно для заполнения"

Разница между Regression и Confirmation тестированием

Критерий Regression Testing Confirmation Testing
Область проверки Вся система или модули Только исправленный функционал
Частота выполнения Регулярно (после изменений) Только после фикса бага
Автоматизация Часто автоматизировано Может быть ручным или автоматическим
Цель Общая стабильность системы Подтверждение исправления бага

Резюмируем

  • Regression — широкий контроль работоспособности системы после изменений.
  • Confirmation — узконаправленная проверка исправления конкретного дефекта.
    Оба типа тестирования критически важны для поддержания качества продукта, но решают разные задачи.