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

Ответ

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

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

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

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

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

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

Ответ 18+ 🔞

А, ну это классика, блядь! Вечная путаница у всех новичков, а иногда и у опытных, если они в говне не копались. Слушай сюда, сейчас разложу по полочкам, как в сортире после хорошего запоя.

Представь себе, ты живёшь в хрущёвке, и у тебя течёт, сука, кран на кухне. Ты вызвал сантехника — дядьку Васю. Он пришёл, почесал жопу, покрутил что-то ключом и ушёл.

Ретест — это когда ты, блядь, сразу идёшь и проверяешь ЭТОТ, ёпта, кран. Капает? Не капает? Всё, хуй с ним. Цель достигнута — конкретная проблема решена. Ты не проверяешь, не начал ли течь унитаз или не отвалился ли смеситель в ванной. Только кран, только хардкор.

Регрессионное тестирование — это, сука, паранойя высшей пробы. После того как дядька Вася ушёл, ты идёшь и проверяешь ВСЁ, нахуй. Потому что этот алкаш мог, чих-пых его в сраку, случайно гаечным ключом по трубе стукнуть, и теперь у тебя в туалете потоп. Или он, мудень, перекрыл общий стояк, и теперь во всей квартире воды нет. Регрессия — это проверка, не сломал ли его «фикс» чего-то ещё, что раньше работало.

Вот тебе таблица, чтобы вообще ни хуя не путать:

Критерий Ретест Регрессионное тестирование
Цель Убедиться, что конкретная дыра залатана Убедиться, что, латая дыру, не насрали на весь ковёр
Объем Точечно, в одно место Широко, по всей хате, а то и по всему подъезду
Объект Исправленный косяк Всё, до чего мог дотянуться криворукий разработчик
Автоматизация Чаще ручками, быстро Часто автоматом, потому что вручную всё проверить — это овердохуища работы
Когда Сразу после «починил» Перед тем как выпустить новую версию в мир, чтобы не осрамиться

Пример из жизни, блядь: Была у тебя форма входа. Пользователь мог вписать логин admin'; DROP TABLE users;-- и всё падало, пиздец.

  1. Ретест: Разработчик говорит: «Пофиксил, SQL-инъекции больше нет». Ты, ебать мои старые костыли, лезешь и пробуешь вставить ЭТУ ЖЕ, блядь, инъекцию. Не проходит? Отлично, ретест пройден. Можно выдохнуть.
  2. Регрессия: А теперь включается паранойя. А обычный-то логин vasya проходит? А с русскими буквами? А если пароль на 300 символов? А кнопка «Забыл пароль» работает? А после входа корзина товаров отображается? Вот эта ёбушки-воробушки, эта тотальная проверка всего, что могло задеть исправление, — это и есть регрессия. Потому что могло оказаться, что, защитившись от инъекции, они сломали кодировку, и теперь все кириллические логины не работают. Вот и весь сказ, блядь.