В чем разница между регрессионным тестированием и ретестом?

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

Ответ

Ретест (Re-test) — это точечная проверка, направленная на подтверждение того, что конкретный ранее обнаруженный дефект был успешно исправлен. Это проверка одного сценария.

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

Сравнение в таблице:

Критерий Ретест Регрессионное тестирование
Цель Подтвердить исправление конкретного дефекта Убедиться, что изменения не сломали существующий функционал
Объем Узкий (один или несколько связанных тест-кейсов) Широкий (затронутые модули или вся система)
Объект Исправленный баг Измененный код и связанные с ним области
Автоматизация Чаще выполняется вручную Часто автоматизировано (набор регрессионных тестов)
Когда выполняется После получения фикса от разработчика После сборки, перед выпуском версии, после значительных изменений

Пример: В форме регистрации был баг: поле email принимало адрес без символа @.

  1. Ретест: Тестировщик проверяет только это поле, вводя валидные и невалидные email, чтобы убедиться, что валидация теперь работает.
  2. Регрессия: После этого фикса запускается набор тестов для всей формы регистрации (поля имени, пароля, кнопки отправки), а также для связанных функций (логин, восстановление пароля), чтобы убедиться, что исправление не повлияло на них.