Ответ
Приемочное тестирование (Acceptance Testing, UAT) — это финальная проверка, что реализованный продукт соответствует бизнес-требованиям и готов к использованию конечным пользователем. Фокус на валидацию (правильный ли продукт мы сделали?).
Регрессионное тестирование (Regression Testing) — это проверка, что новые изменения (фичи, багфиксы) не нарушили существующий, ранее работавший функционал. Фокус на верификацию (старая функциональность всё ещё работает правильно?).
Сравнительная таблица:
| Критерий | Приемочное тестирование | Регрессионное тестирование |
|---|---|---|
| Цель | Подтвердить соответствие бизнес-требованиям. | Обнаружить регрессионные дефекты после изменений. |
| Кто выполняет | Заказчик, продукт-оунер, бизнес-аналитик, иногда QA. | Преимущественно QA-инженеры (ручное/авто). |
| Основа | User Stories, критерии приемки (Acceptance Criteria), бизнес-сценарии. | Набор регрессионных тест-кейсов, чек-листы, автотесты. |
| Уровень | Системный, часто сквозные (end-to-end) сценарии. | Все уровни (юнит, интеграционные, системные). |
| Идеальный подход | Ручное выполнение реальных пользовательских сценариев. | Автоматизированное для скорости и повторяемости. |
Практический пример для интернет-магазина:
- Приемочный тест:
- Сценарий: "Как зарегистрированный пользователь, я хочу применить промокод 'SUMMER10' к корзине, чтобы получить скидку 10% на заказ свыше 1000 рублей."
- Выполнение: Продукт-оунер вручную создаёт заказ, применяет промокод и проверяет, что итоговая сумма корректно пересчиталась, а скидка отобразилась в чеке.
- Регрессионный тест:
- Сценарий: После внедрения новой функции "подарочные карты" необходимо убедиться, что:
- Старый промокод 'SUMMER10' по-прежнему работает.
- Промокод и подарочная карта не могут быть применены одновременно, если это запрещено логикой.
- Оформление заказа без промокода работает как прежде.
- Выполнение: QA запускает набор автотестов, покрывающих эти и другие ключевые сценарии работы с корзиной и заказами.
- Сценарий: После внедрения новой функции "подарочные карты" необходимо убедиться, что:
Связь: Успешное приемочное тестирование часто добавляет новые сценарии в регрессионную базу для защиты от будущих регрессий.
Ответ 18+ 🔞
Давай разжую, в чём разница, а то у некоторых в голове уже каша, ёпта. Представь, что ты заказал у прораба баню. Вот он её построил, выкатывает тебе ключи и говорит: «Принимай работу!»
Приемочное тестирование (UAT) — это когда ты, как хозяин, приходишь и начинаешь проверять. Топишь печь, паришься, льёшь квас на каменку — в общем, делаешь всё, для чего баню и строил. Цель одна: валидация. То есть, правильную ли баню тебе, сука, построили? Та ли, что в договоре? Или вместо парной у тебя холодильник получился? Выполняет ли она своё главное предназначение — греть и чтоб душа радовалась? Вот это и есть UAT. Делает его заказчик (ты) или твой доверенный представитель (бизнес-аналитик, например).
Регрессионное тестирование — это совсем другая история. Допустим, через месяц ты прорабу звонишь: «Мужик, тут у меня полок треснул, почини!». Он приезжает, меняет полок. И вот тут начинается регрессия. Потому что после его «ремонта» может оказаться, что:
- Печь перестала топить (ёперный театр!).
- Дверь в предбанник не закрывается.
- Вода из шайки теперь выливается сама по себе, будто её кот, сука, собака, опрокинул.
Цель регресса — верификация. То есть, убедиться, что починив одну херню (полок), ты не сломал к хуям десять других, которые до этого работали. Делает это обычно сам прораб (наш QA-инженер) по своему чек-листу: проверил печь, проверил дверь, проверил шайки. Идеально, если у него это автоматизировано — приехал, нажал кнопку, и система сама проверила, не протекает ли крыша после замены полка. Овердохуища скорости и надёжности.
Короче, таблица, чтоб вообще мозг не взорвался:
| Критерий | Приемочное тестирование | Регрессионное тестирование |
|---|---|---|
| Суть вопроса | Это та баня, которую я заказывал? (Валидация) | Чиня полок, ты не разъебал печь? (Верификация) |
| Кто мучает | Я, хозяин (Заказчик/PO). | Прораб со своей бригадой (QA-инженеры). |
| На что смотрит | На договор и мои хотелки (User Stories, Acceptance Criteria). | На свою техническую документацию и прошлые работы (регресс-тест-кейсы). |
| Как тырит | По-человечески, пытается попариться (сквозные сценарии). | По-рабочему, методично долбит все узлы (все уровни тестов). |
| Идеал | Ручной осмотр и использование. | Автоматическая проверка всего и вся после каждого чиха. |
Пример из жизни, чтобы стало совсем ясно, как дважды два:
Допустим, у нас интернет-магазин.
-
Приемочный тест (заказчик проверяет фичу):
- Сценарий: «Хочу ввести промокод
SUMMER10в корзину и получить свои 10% скидочки». - Действие: Продукт-оунер (или ты) заходит, тыкает в корзину, вводит этот самый промокод и смотрит — упала ли цена. Если упала — афигенно, принято! Если нет — иди ты нахуй, разработчик, переделывай! Всё просто и по делу.
- Сценарий: «Хочу ввести промокод
-
Регрессионный тест (QA страхует от пиздеца):
- Сценарий: Через месяц программисты добавили возможность оплаты подарочными картами. Классно? Классно. Но теперь надо проверить, не сломали ли они при этом всё остальное, я тебя умоляю. Запускаем автотесты, которые проверяют:
- Старый промокод
SUMMER10всё ещё работает? (Вдруг его хуй с горы снёс?) - А если я попробую и промокод, и подарочную карту впихнуть, система не пизда рулю? Ведёт ли себя как задумано?
- Оформление заказа вообще без всяких акций — живое ещё?
- Старый промокод
- Действие: QA не сидит и не тыкает это всё руками каждый раз. Он жмёт кнопку, и пачка автотестов сама всё прогоняет. Нашёл баг — кричит: «Э, шалава, что ты там накодил? Регресс повалился!».
- Сценарий: Через месяц программисты добавили возможность оплаты подарочными картами. Классно? Классно. Но теперь надо проверить, не сломали ли они при этом всё остальное, я тебя умоляю. Запускаем автотесты, которые проверяют:
Связь между ними проще простого: как только приемочный тест проходит и фича летит в продакшн, её сценарий тут же добавляют в регрессионную базу. Чтобы в следующий раз, когда будут чинить дверь в предбанник, автоматика проверила и печь, и полок, и этот новый промокод. Волнение ебать отступает, и все спят спокойно. Ну, почти.