Используйте этот сценарий, чтобы совместить доступное runtime-покрытие со структурными свидетельствами: вызывающим кодом, точками входа и ссылками на тесты. Цель — выбрать следующий ценный тест, а не наращивать процент без учёта риска.
Проверьте покрытие, уже принадлежащее CPG
В текущем CLI есть одна команда просмотра в режиме read-only:
python -m src.cli coverage show --db PATH --uncovered-only
Параметр --db обязателен. Команда читает imported coverage из выбранного CPG и с флагом --uncovered-only показывает методы с нулевым или отсутствующим покрытием. Она не загружает артефакт покрытия, не меняет схему CPG и не редактирует исходники.
Если граф не предоставляет поддерживаемое поле покрытия, команда печатает:
Coverage data is not available from the current CPG schema.
Это означает, что runtime-покрытие недоступно через данную поверхность. Не подменяйте его значением 0% и не записывайте данные напрямую в принадлежащие GoCPG таблицы методов. Сформируйте покрытие штатным тестовым инструментом проекта и используйте поддерживаемый путь проекта/GoCPG для установленной версии.
Типизированное исследование QA
Для приоритизации пробелов по графу вызовите обязательный сценарий QA:
from src.digital_employees.runtime.scenarios import (
RoleBoundScenarioInvocationRequest,
invoke_role_bound_scenario_request,
)
request = RoleBoundScenarioInvocationRequest(
query="Приоритизируй непроверенное поведение в согласованной области изменения.",
employee_id="codegraph_qa",
scenario_id="scenario_07",
event_type="qa_start",
context={
"project_key": "codegraph",
"namespace": "default",
"task_id": "<task-id>",
"file_paths": ["<changed-source>", "<related-tests>"],
"source_refs": ["<coverage-artifact-ref>", "<acceptance-criterion-ref>"],
},
)
result = invoke_role_bound_scenario_request(request)
При отсутствии project_key, namespace или task_id контракт закрывается с ошибкой role_bound_scenario_contract_missing.
Приоритизируйте поведение и риск
Проверьте каждого кандидата с учётом:
- активных критериев приёмки и изменённой ревизии;
- публичных точек входа и границ авторизации;
- ошибок, повторов, тайм-аутов и отката;
- контрактов хранения и сериализации;
- вызывающего кода с высоким влиянием и ранее пропущенных дефектов;
- актуальности покрытия и фактического присутствия файла в артефакте.
Покрытая строка не обязательно означает проверенное утверждением поведение. С другой стороны, сгенерированный код и защитные ветви можно осознанно исключить, если исключение документировано и прошло ревью.
Рабочий цикл от теста
- Выберите одно отсутствующее поведение, связанное с критерием приёмки или явным риском.
- Добавьте тест, который падает по ожидаемой причине.
- Внесите минимальное изменение продукта, только если падение выявило пробел реализации.
- Запустите точечный тест и соседний регрессионный набор.
- Повторно сформируйте артефакт покрытия штатным тестовым инструментом проекта.
- Обновите данные поддерживаемым путём проекта и снова запустите команду просмотра.
- Зафиксируйте выполнение теста, ревизию, основу артефакта и оставшиеся пробелы.
Покрытие является свидетельством QA, но не полным вердиктом QA. Для приёмки всё равно нужны явные Pass/Fail по каждому активному критерию и решение ответственной линии QA.
Поддерживаемые источники контракта
- CLI только для просмотра:
src/cli/docs_suite/coverage_commands.py - Маршрутизация типизированного сценария:
src/digital_employees/runtime/scenarios/role_bound_scenario_invoker.py - Политика сценария QA:
src/digital_employees/runtime/scenarios/employee_scenario_invocation.py
Если обнаружен пробел реализации, используйте разработку функции, а для структурного ревью ревизии — проверку кода.