Что такое UAT (User Acceptance Testing)?

Ответ

UAT (User Acceptance Testing) — это финальная фаза тестирования, в ходе которой конечные пользователи или заказчики проверяют, соответствует ли готовое программное обеспечение их бизнес-требованиям и готово ли оно к использованию в реальных условиях.

Цель: Убедиться, что система решает правильную бизнес-задачу, а не просто технически корректна.

Пример сценария (Gherkin-нотация):

Feature: Оформление заказа
  Scenario: Успешное добавление товара в корзину
    Given Пользователь авторизован на сайте
    And Пользователь находится на странице товара "Книга"
    When Пользователь нажимает кнопку "В корзину"
    Then В шапке сайта отображается "1 товар в корзине"
    And Товар "Книга" появляется в корзине

Ключевые аспекты UAT:

  • Кто выполняет: Реальные пользователи, бизнес-аналитики или представители заказчика, а не команда разработки/тестирования.
  • Где выполняется: В среде, максимально приближенной к продакшену (staging/pre-production).
  • Что проверяется: Работоспособность ключевых бизнес-процессов (happy path), удобство использования, соответствие спецификациям.
  • Результат: Формальное подписание акта приемки (Sign-off), которое дает зеленый свет для выпуска продукта в продакшен.

Ответ 18+ 🔞

Давай я тебе на пальцах объясню, что за зверь такой UAT, а то в этих умных книжках так заумно пишут, что мозг набекрень можно поставить.

Представь, ты заказал себе новый диван. Мастера его собрали, покрасили, вроде всё ровно. Они-то своё дело знают — молотком стучать, шурупы закручивать. Это unit-тесты и интеграционные. Но ты-то, как заказчик, приходишь и проверяешь не шурупы, а садишься на него жопой. Удобно ли? Не скрипит? Не развалится, когда тёща приедет? Вот это и есть UAT, блядь — User Acceptance Testing. Проверка на своей, прости господи, заднице.

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

Вот смотри, как это выглядит на деле, на примере интернет-магазина:

Feature: Оформление заказа
  Scenario: Успешное добавление товара в корзину
    Given Пользователь авторизован на сайте
    And Пользователь находится на странице товара "Книга"
    When Пользователь нажимает кнопку "В корзину"
    Then В шапке сайта отображается "1 товар в корзине"
    And Товар "Книга" появляется в корзине

Теперь главные правила, чтобы не облажаться:

  • Кто рулит: Это делают не технари. Никаких тестировщиков, которые знают, где спрятаны костыли. Только реальные юзеры, бизнес-аналитики или сам заказчик — те, кому потом этим пользоваться. Иначе получится "о, да тут кнопка на 2 пикселя съехала, давайте две недели фиксить!", а бизнес-процесс нихуя не работает.
  • Где рулит: Не на локальном компе какого-нибудь Виталика из отдела тестирования. Нужна среда, один в один как боевая. Чтобы все интеграции, все письма, все платежи летели как надо. Иначе в продакшене вылезет такое, что волосы дыбом встанут — "ёпта, а мы это не проверяли!".
  • Что проверяют: Счастливый путь (happy path), ёбушки-воробушки! Основные сценарии: заказ оформить, отчёт получить, документ создать. Не надо ковыряться в дебрях настроек — проверяют, решает ли система ту самую бизнес-проблему, из-за которой всё и затевалось.
  • Чем заканчивается: Самое важное — подписание акта приёмки (Sign-off). Это как роспись в паспорте. Заказчик говорит: "Да, мужики, я своей жопой проверил, диван меня устраивает, везите в дом". После этого можно запускать в продакшен и спать спокойно (ну, почти). Если акта нет — всё, пиздец, можно бесконечно дорабатывать и править, потому что "а вот нам ещё вот это хочется".

Короче, UAT — это последний и самый важный рубеж. Когда все технари уже выдохлись и думают, что сделали шедевр, приходят нормальные люди и проверяют, можно ли этим шедевром пользоваться без желания разбить монитор об стену.