SuperAPI AI 工具集

propagate

测试与质量

查看项目

更新于 10-15 23:43

技能介绍

用途:从 Allium 规格生成测试。规格是母本,测试是后代;确定性工具保证完整性(每个规格构造都映射到一条测试义务),使用者负责实现桥接:把规格构造与代码关联,并按项目约定生成测试。

运行模式:交互模式在对话中直接向用户提问并等待回答;非交互模式作为 propagate 子代理运行(例如在 Allium 循环内),此时无人可答,需在最终输出中报告需要人工决策的事项(规格过粗、实现桥接有歧义、未覆盖义务等),并继续不依赖该决策的工作。

前置条件:Allium 规格(.allium 文件)、目标代码库、测试义务(来自 allium plan <spec> 的 JSON)、领域模型(来自 allium model <spec> 的 JSON)。若 CLI 工具不可用,可依据 references/test-generation.md 中的测试生成分类法手动推导测试义务。

两种模式:Surface 模式针对 surface 声明生成边界测试,覆盖暴露、提供、actor 限制与识别、上下文作用域、契约义务、保证、超时、相关导航等;Spec 模式遍历完整测试义务文档,覆盖实体与值类型、枚举、和类型、派生值与投影、默认实例、配置、不变量、规则、状态转换、时序、surface、契约、跨模块、跨规则交互、转换图、状态相关字段、场景、数据流链、可达性、死锁场景、跨实体流程等类别。若 allium analyse 可用,用其发现(missing_producer、dead_transition、deadlock)优先安排测试生成。

测试输出类型:断言式测试(确定性义务)、属性测试(不变量与规则属性,按语言选用 fast-check、Hypothesis、proptest、rapid、StreamData,无 PBT 框架则回退断言式)、状态机测试(含状态枚举的实体;需构建 action map,为每条转换边找到见证规则与实现代码,注册到 (from_state, to_state) 键)。

实现桥接:surface 映射到端点、组件或消息处理器;内部测试为每条规则找到实现代码、实体实例化方式、调用方式与后置条件断言方式。时序测试需要可注入时钟或时间参数,若实现使用墙钟时间则标记为测试基础设施缺口,不得用 sleep 或竞速方式测试。跨模块触发链优先复用已有集成测试夹具,否则生成夹具与测试,接线过于复杂时生成带 TODO 的骨架。已有测试覆盖的义务应引用而非重复生成。延迟规格在目标代码库缺少对应模块时生成带占位 TODO 的测试桩。

流程:读规格、读测试义务、读领域模型、探索代码库、把构造映射到代码、生成测试、验证可编译运行、对账义务。发现清单包括测试框架、PBT 框架、文件位置约定、实体模式、夹具模式、状态转换实现、surface 实现、已有辅助工具、时间注入、跨模块夹具、已有覆盖。生成器感知用于产出合法测试数据。义务对账为静默过程,每个未覆盖义务最多尝试 2 次,失败则搁置。

限制:资料未提供收费、价格、平台支持范围等信息;规格过粗时只能生成有限的结构性测试,建议先用 elicit 或 distill 技能完善规格。