Перейти к основному содержимому

Сценарий 07: поиск и приоритизация тестовых пробелов

Используйте этот сценарий, чтобы совместить доступное runtime-покрытие со структурными свидетельствами: вызывающим кодом, точками входа и ссылками на.

Руководства

Используйте этот сценарий, чтобы совместить доступное 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.

Приоритизируйте поведение и риск

Проверьте каждого кандидата с учётом:

  • активных критериев приёмки и изменённой ревизии;
  • публичных точек входа и границ авторизации;
  • ошибок, повторов, тайм-аутов и отката;
  • контрактов хранения и сериализации;
  • вызывающего кода с высоким влиянием и ранее пропущенных дефектов;
  • актуальности покрытия и фактического присутствия файла в артефакте.

Покрытая строка не обязательно означает проверенное утверждением поведение. С другой стороны, сгенерированный код и защитные ветви можно осознанно исключить, если исключение документировано и прошло ревью.

Рабочий цикл от теста

  1. Выберите одно отсутствующее поведение, связанное с критерием приёмки или явным риском.
  2. Добавьте тест, который падает по ожидаемой причине.
  3. Внесите минимальное изменение продукта, только если падение выявило пробел реализации.
  4. Запустите точечный тест и соседний регрессионный набор.
  5. Повторно сформируйте артефакт покрытия штатным тестовым инструментом проекта.
  6. Обновите данные поддерживаемым путём проекта и снова запустите команду просмотра.
  7. Зафиксируйте выполнение теста, ревизию, основу артефакта и оставшиеся пробелы.

Покрытие является свидетельством 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

Если обнаружен пробел реализации, используйте разработку функции, а для структурного ревью ревизии — проверку кода.