Когда сборка падает, важно не разбирать одно и то же по десять раз. Если на пятидесяти страницах отвалился один и тот же запрос, это одна причина, а не пятьдесят проблем. Поэтому падения сначала собираются в группы по причине, и уже каждая группа разбирается один раз. В интерфейсе этот раздел называется «Триаж» — разбор сбоев.
Группы по причине
Группа — это набор падений с общей причиной. Причины бывают такие:
- Сбой одного правила — одна и та же проверка не прошла везде, где встречалась.
- Расхождение в одном шаге — падает конкретный шаг теста, а не весь интерфейс.
- Сбой среды или сети — не поднялся стенд, отвалилось соединение, истекло время ожидания.
- Изменение DOM — поменялась структура страницы, и объявленные элементы больше не находятся.
- Смешанные причины — в группе собралось разное, разбирать придётся внимательнее.
- Причина не определена — данных не хватило.
У группы видно, сколько в ней элементов и какие снимки и шаги внутри. Порядок задаётся оценкой важности: она складывается из серьёзности, охвата (сколько затронуто), новизны и того, какой слой интерфейса задет. Есть и простой порядок — по числу элементов. Группы можно пересобрать заново, если появились новые данные; для этого нужна роль участника.
Из группы можно создать проблему — продукт приложит к ней изображения отличий, их снимки и прямые ссылки. Если такая причина встречалась раньше, новая проблема не заводится: старая просто усиливается новыми свидетельствами. У групп сбоев правил визуальных свидетельств нет, и они уже отслеживаются на вкладке «Проблемы» — создавать по ним проблему заново не нужно.
Пояснение словами
У разбора есть короткое пояснение: что именно произошло и почему так вышло. Его пишет ИИ — но только по фактам сборки, а не по догадкам о вашем коде.
Если ИИ недоступен или выключен, продукт не выдумывает объяснение, а показывает сухую статистику: сколько шагов прошло из скольких, сколько проверок не прошло, сколько снимков изменилось, добавилось и пропало. Внизу честно написано: «ИИ-описания пока нет — это сухая статистика». Лучше точные цифры, чем правдоподобная выдумка.
Подсказка ИИ и вердикт человека — разное
У каждой группы два отдельных поля: предложено (подсказка ИИ) и вердикт ревьюера (решение человека). Они хранятся отдельно и никогда не подменяют друг друга. ИИ может предложить: «осознанное изменение», «реальная регрессия» или «не уверен». Человек рядом пишет свой вердикт, и видно, кто его записал и когда.
Смысл разделения простой: подсказка помогает быстрее понять, что происходит, но ответственность за вывод лежит на человеке. Даже если ИИ уверенно сказал «регрессия», это остаётся лишь подсказкой.
Вердикты группы
Словарь вердиктов один и тот же у подсказки и у решения:
- Реальная регрессия — интерфейс сломался по-настоящему. Чинить нужно сам интерфейс.
- Нестабильный тест — тест иногда срабатывает, иногда нет; с сайтом всё в порядке.
- Тест требует доработки — объявление съёмки или шаг устарели, тест нужно поправить.
- Среда — виноват стенд или сеть, а не код и не тест.
- Осознанное изменение — интерфейс поменяли намеренно, так и должно быть.
- Не определено — разобраться не удалось.
Вердикты здесь не просто ярлык: два из них открывают дорогу к починке теста — «тест требует доработки» и «нестабильный тест». Вердикт «реальная регрессия» эту дорогу закрывает: чинить надо интерфейс, а не тест, поэтому автоисправление теста в этом случае недоступно. Так же недоступно оно для проблем среды и неразобранных случаев.
Бюджеты
Разбор сбоев стоит денег — за каждый запрос к ИИ платит владелец. Поэтому рядом видно расход: сколько токенов ушло за сутки, сколько кампаний починки идёт прямо сейчас и сколько попыток починки израсходовано с последнего успешного прогона. Если включён предохранитель «останавливаться на идентичных повторяющихся ошибках», он честно помечается: «остановлено: повторяется та же ошибка».
Важно понимать роль бюджета: он останавливает расход, но никогда ничего не одобряет. Исчерпанный бюджет — это не «согласие по умолчанию» и не «пропустить проверку», а просто отсутствие новых подсказок. Когда ИИ выключен, повторные прогоны бесплатны, и об этом прямо написано.
Дальше: как устроена починка теста, которую открывает вердикт ревьюера, — в разделе Автоисправление тестов.