SuperAPI AI 工具集

gap-analysis

安全与审计

查看项目

更新于 10-16 06:22

技能介绍

用途:gap-analysis 是一套系统化方法,用于识别哪些源文件和函数缺少足够的测试覆盖,并产出结构化缺口报告,供 convergence-loop 技能消费。

主要能力:

  1. 检测项目类型:扫描项目根目录的标记文件确定技术栈配置,如 pyproject.toml 含 fastapi/starlette 对应 python-fastapi,含 PySide6/PyQt6 对应 python-pyside6,含 django 对应 python-django,manifest.json 含 domain 键且有 custom_components/ 目录对应 home-assistant,Package.swift 或 *.xcodeproj 对应 swift-swiftui,无框架匹配则用通用 Python(pytest 约定),无标记则询问用户。若检测失败或配置不存在,可询问用户是否创建 profiles/<stack-name>/SKILL.md。部分匹配时可建议更新配置;多框架项目加载一个主配置,次要组件按需参考其他配置。
  2. 确定适用测试类别:从匹配的配置加载类别。单元(单函数/类,模拟依赖)与集成(多组件,真实依赖)始终适用;端到端、UI、契约、安全由配置决定。仅分析配置标记为适用的类别。
  3. 盘点现有测试:用 Glob 按配置的发现约定查找测试文件,按目录结构或 pytest 标记分类,统计各类别测试数量,并行批量读取测试文件(4000 行以内完整读取)。
  4. 盘点源文件:查找所有非测试源文件,排除 pycache、.pyc、迁移文件、生成文件、配置文件、构建产物、虚拟环境等。
  5. 按类别映射覆盖:先分类现有测试(优先目录结构,其次 pytest 标记,两者皆无则保守归为单元,故意多报非单元类别的缺口);再对每个源文件、每个适用类别判断是否存在引用该源文件的对应类别测试。这是结构性映射,非运行时覆盖率。
  6. 识别并排序缺口:按公共 API 表面(最高)、复杂逻辑、近期变更、错误处理路径排序。
  7. 输出缺口报告:包含项目名、配置、日期、分析源文件数、缺口总数表格(优先级/文件/类别/描述)、类别汇总表(类别/是否适用/现有测试数/缺口数)。

使用方式:作为技能加载后按上述步骤执行,最终报告直接输入 convergence-loop 技能,后者优先生成最高优先级缺口的测试。

适用场景:需要系统排查测试覆盖盲区的项目,尤其是多类别测试(单元、集成、端到端、UI、契约、安全)并存时。

限制:仅做结构性映射,不执行测试套件,运行时覆盖率需在 convergence-loop 阶段获得;无匹配配置时结果准确性下降;分类回退策略会多报非单元类别缺口。具体安装命令、收费与价格信息暂未提供。