
Разбор · Опубликовали 08.10.2026
Покрытие кода тестами показывает выполненные строки, а правильность тестов агента проверяют отдельно
Что запросить у подрядчика вместе с процентом покрытия: ожидаемые ответы из задачи, реакцию теста на ошибку и результат сценария.
Текст собран машиной агентов под надзором инженера vibecoding.ru · факты проверены 8 октября 2026
Покрытие кода тестами показывает выполненные строки, а правильность ожидаемых ответов проверяют отдельно.
Если ИИ-агент написал код и тесты по одному ошибочному пониманию задачи, оба могут пройти проверку.
Не хотите разбираться сами? Внедряем ИИ в ваш бизнес: задачи без лимита, одна цена в месяц, отмена в любой момент.
1. Процент покрытия считает исполнение кода.
Инструмент отмечает исполненные строки и сравнивает их с исполнимыми строками, включёнными в расчёт. Так работает coverage.py.
В отчёте есть проценты для строк, ветвей и функций. Посещение функции ещё не означает проверку всех её исходов. Atlassian разбирает эту разницу.
Руководителю нужен отчёт с областью расчёта: исключённые файлы, набор тестов и версия кода. Общий процент скрывает эти детали.
Учебный пример: при заказе от 10 000 ₽ полагается скидка 1 000 ₽. В коде её дают только выше порога. Тесты проверяют суммы ниже и выше него.
Обе ветви выполнены, заказ на границе пропущен.
Условный пример редакции, 08.10.2026. Обе ветви этой функции выполняются; ошибка на границе остаётся. Это не замер покрытия проекта.
Покрытие помогает найти непройденный код. Ошибку в смысле «от этой суммы» оно не определяет: тесты уже посетили оба исхода.
2. Ожидаемый ответ теста берут из задачи.
Если агенту поручили описать поведение готового кода, он может записать текущий ответ как правильный. Скидка на пороге окажется нулевой и в коде, и в тесте.
Сначала нужен согласованный критерий готовности задачи. Сумма ровно 10 000 ₽ даёт 1 000 ₽ скидки. Этот ответ берут из условия покупки.
Агент получает входы и ответы до правки. Проверяющий сверяет с ними тест. GitHub советует просматривать тесты: зелёный прогон ещё не доказательство.
На границе нужен ответ из условия покупки.
Условный пример редакции, 08.10.2026. Рекомендация проверять тесты и давать примеры входов и выходов: GitHub Docs, сверено 08.10.2026.
Для разбора технического долга тест фиксирует старое поведение перед переносом. Он сохраняет совместимость. Правильность для бизнеса проверяют отдельно.
3. Намеренная ошибка показывает, что тест замечает поломку.
В копии кода на время убирают нужное действие или меняют условие. Проверка, которая защищает это действие, должна упасть.
После исправления замените «от порога» на «выше порога». Тест на 10 000 ₽ должен заметить потерю скидки. Тесты ниже и выше порога её пропустят.
Автоматический перебор таких изменений называют мутационным тестированием. Stryker показывает ту же механику с заменой включительной границы на строгую.
Тест должен заметить выбранное нарушение задачи.
Учебная модель скидки, 08.10.2026; метод: документация Stryker, сверено 08.10.2026. Изменённую копию не выпускают пользователям.
Перебор изменений тоже не доказывает правильность всей задачи. Stryker описывает изменения без отличия результата. Выжившие изменения разбирают по смыслу.
Проверяющему может помочь другая модель. Ответ всё равно сверяют с задачей. Правила работы агента должны запрещать менять согласованный ответ ради зелёного прогона.
Что и как мы проверяли
| Факт | Что известно | Проверено |
|---|---|---|
| Покрытие | Документация coverage.py и справка Atlassian: исполнение строк и ветвей, область расчёта. Процент не оценивает правильность ожидаемых ответов | 2026-10-08 |
| Тесты агента | GitHub Docs: просмотр сгенерированного кода, недостающие сценарии, примеры входов и выходов | 2026-10-08 |
| Намеренные изменения | Stryker: реакция теста на изменение кода; эквивалентные изменения без отличия результата разбирают отдельно | 2026-10-08 |
| Учебная скидка | Придуманное правило и ручной разбор исходов. Тестовый прогон не проводился, процент покрытия проекта не измерялся | 2026-10-08 |
| Наш опыт | Исходные записи журналов 24 и 27 сентября 2026. На живом /open 8 октября указано 2 685 тестов на каждом пуше плюс ревью; дата исходного подсчёта там не названа. Клиентского кейса и опубликованного процента покрытия у нас нет | 2026-10-08 |
| Подписка | Цена «Один проект» на живом /services: 250 000 ₽ в месяц. Пакет проверенных сценариев в статье предложен редакцией | 2026-10-08 |
4. Зелёный прогон подтверждает свой набор проверок.
Тест исполняется в определённой среде и проверяет выбранные свойства. Пропущенное свойство остаётся без защиты.
Формальная верификация доказывает свойство только в пределах заданной модели программы.
Инженер ведёт машину агентов на vibecoding.ru. На открытой странице машины 8 октября 2026 указано 2 685 тестов на каждом пуше плюс ревью.
Опубликованного процента покрытия и клиентского кейса по теме у нас нет. Здесь разбираем две поломки сайта и границы зелёного прогона.
Поломка показывает, какое свойство осталось без проверки.
24.09
Ответ функции получил поле, которого не знала проверка его структуры. Тестовая среда пропустила несовпадение, часть страниц новостей падала. Добавили тест на соответствие ответа его описанию.
27.09
Выборочный прогон пропустил две проверки обязательных списков. После пуша полный набор стал красным. Исправили списки и выполнили полный прогон, который требовался по правилам выпуска.
Журналы машины vibecoding.ru, записи 24.09 и 27.09.2026, перечитаны 08.10.2026. Случаи показывают границы прогонов, а не копирование ошибки кода в тест. Дата исходного подсчёта тестов на /open не названа.
Проверка функции и проверка системы отвечают на разные вопросы. Для скидки первая считает сумму, вторая подтверждает, что покупатель увидел её в заказе.
Поэтому в приёмке нужен результат на стенде. Действия после поломки разобраны в статье про ответственность за ошибки ИИ; здесь проверяем сценарий до выпуска.
Каждый сигнал относится к своей области.
Редакционная схема приёмки, 08.10.2026. Определения: coverage.py и Atlassian; границы прогонов: случаи нашей машины.
5. Вместе с кодом принимают сценарии и результаты.
Для одной задачи запросите пакет, который связывает правило бизнеса, тест и результат прогона. У каждой части должна быть та же версия кода.
Пакет начинается с ответа на пороге скидки. Подрядчик показывает падение при намеренной ошибке и успех после её удаления. Снимка зелёных галочек мало.
Пакет приёмки связывает задачу с результатом.
Рекомендация редакции, 08.10.2026. Сценарии выбирают по задаче; это не юридическая форма акта.
Если такой пакет некому вести, обсудите приёмку разработки. До старта договоритесь, кто сверяет сценарии и кто принимает результат.
В подписке на агентную разработку тариф «Один проект» стоит 250 000 ₽ в месяц на 8 октября 2026. Запрашивайте проверенные сценарии вместе с кодом и тестами.
6. Частые вопросы
Какой процент покрытия достаточно требовать?+
Порог выбирают для конкретных участков и рисков проекта. Важнее выяснить, включены ли критические сценарии и почему файлы исключены из расчёта. Порог покрытия не заменяет правильного ожидаемого ответа.
Покрытие строк и ветвей означают одно и то же?+
Нет. Покрытие строк отмечает исполненные строки, а покрытие ветвей отмечает посещённые исходы условий. Оба исхода могут пройти на данных ниже и выше порога, а ошибка ровно на пороге останется.
Агент написал тест до кода. Можно принимать сразу?+
Порядок полезен, но ошибочное понимание задачи может попасть и в заранее написанный тест. Сначала сверяют его ожидаемые ответы с задачей, затем проверяют реакцию на выбранную ошибку.
Нужен ли мутационный прогон всего проекта?+
Для первой приёмки можно проверить несколько важных условий изменённого участка. Автоматический прогон расширяет набор изменений. Он не снимает сверку сценариев с задачей.
Число тестов можно пересчитать в процент покрытия?+
Нет. Несколько тестов могут повторять один путь, а один тест — выполнять большой участок кода. Покрытие получают отдельным измерением выполнения выбранных файлов.
Источники
- How coverage.py works · официальная документация, сверено 08.10.2026 — документация
- Sten Pittet, What is code coverage? · Atlassian, сверено 08.10.2026 — справка
- Writing tests with GitHub Copilot · GitHub Docs, сверено 08.10.2026 — документация
- What is mutation testing? · Stryker, сверено 08.10.2026 — документация
- Mutant states and metrics · Stryker, сверено 08.10.2026 — документация
- Equivalent mutants · Stryker, сверено 08.10.2026 — документация
- Открытая машина vibecoding.ru · описание проверок на 08.10.2026; истории поломок сверены по журналам проекта — наш опыт
- Агентная разработка для компаний · условия подписки на 08.10.2026 — наш продукт
Запомнить
1. Покрытие отмечает исполнение. Запрашивайте область расчёта и исключения.
2. Ожидаемый ответ берут из задачи. Сверяйте его до приёмки теста.
3. Проверяйте тест выбранной ошибкой. Он должен заметить нарушение сценария.
4. Смотрите состав прогона. Выборочный набор не заменяет обязательные проверки.
5. Принимайте путь пользователя. Храните сценарии вместе с кодом и тестами.