Зелёный тест, подтверждение провайдера и приёмка отвечают на три разных вопроса.
Тест прошёл: реализация соответствует сценарию, который мы закодировали.
Провайдер подтвердил действие: внешний сервис принял запрос или создал объект.
Человек принял результат: пользовательский исход соответствует тому, ради чего задача вообще была поставлена.
Эти статусы нельзя заменять друг другом.
В одном из наших разборов код и CI были зелёными, но live-контур оставался заблокирован, а UAT ещё не начинался. Позже сама публикация получила отдельное подтверждение и канонический публичный URL. Это не оценка надёжности всей системы. Это пример того, зачем хранить разные доказательства отдельно.
Критерий приёмки нужен до реализации: он называет наблюдаемый результат, который должен получить пользователь. Тест проверяет закодированную часть этого критерия. Подтверждение провайдера доказывает внешний эффект. UAT оставляет последнее решение человеку.
Разбор четырёх состояний релиза: https://dzen.ru/a/asvdioZFzXeQEO5O
Какой из этих трёх статусов ваша команда чаще всего называет словом «готово»?