尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

pm-skills /derive-tests教程:从文档意图到测试覆盖地图的AI推导法

pm-skills /derive-tests教程:从文档意图到测试覆盖地图的AI推导法 pm-skills /derive-tests教程从文档意图到测试覆盖地图的AI推导法【免费下载链接】pm-skillsPM Skills Marketplace: 100 agentic skills, commands, and plugins — from discovery to strategy, execution, launch, and growth.项目地址: https://gitcode.com/GitHub_Trending/pm/pm-skillspm-skills 是为产品经理打造的 AI 技能市场Skills Marketplace而/derive-tests是其中 AI Shipping Kit 的核心命令它能把文档里写下的系统意图一步步推导成一张可执行的测试覆盖地图。本教程面向新手带你走完全流程——用 AI 推导法找出哪些规则已有测试、哪些只是纸面建议、哪些完全无人验证并顺手拿到一份合并前必须变绿的 CI 门禁建议。一分钟看懂 /derive-tests 解决什么问题 AI 写代码很快但很少留下意图记录——系统应该做什么、谁能做什么、哪些规则必须被验证。没有这份记录任何通用扫描器都只能检查代码内部是否自洽却无法判断代码是否真的做了你想做的事。/derive-tests的定位正是补上这一环输入/documentation/下由文档声明的系统意图尤其是flows.md、permissions.md、automation.md 仓库中已经存在的测试输出一张测试覆盖地图tests.md 具体的测试用例建议 CI 门禁方案边界它产出的是地图和用例不是写完的测试套件——确定性的用例需要由你或下一个 Agent 来实现完整命令定义见 derive-tests.md。快速开始安装 pm-ai-shipping 并运行命令 在你的 AI 助手如 Claude中打开插件市场选择从仓库添加市场输入仓库标识并同步即可安装全部插件包括pm-ai-shipping插件详情见 README.md安装后直接用斜杠命令调用可指定范围默认整个仓库/derive-tests—— 全仓库推导/derive-tests the checkout flow—— 只推导结账流程相关规则/derive-tests supabase/functions—— 只推导某个目录 提示技能Skills会在话题相关时自动加载无需手动触发想强制加载某个技能时可用/skill-name形式。前置条件先有文档才能推导 测试是从文档里推导出来的所以文档必须先于测试存在如果/documentation/*.md缺失或过于单薄先运行/document-app把系统文档补齐见 document-app.md文档集合的定义遵循 shipping-artifacts/SKILL.md核心文档架构、流程、权限、变量 按需的条件文档邮件、定时任务、SEO、Agent 自动化关键纪律文档是待验证的声明不是证明。这一点由 intended-vs-implemented/SKILL.md 定义一句话原则你无法给没写下来的规则画覆盖地图。文档沉默的地方工具会明确指出文档缺了而不是编造规则凑数。/derive-tests 六步推导工作流详解 第 1 步读取文档意图 清点现有测试命令会通读适用的系统文档架构、流程、权限、变量等同时清点当前仓库里真实存在的测试测试文件、它们实际断言什么、CI 里跑哪些。这一步是诚实地图的地基——跳过它你会得到一张虚假的绿灯地图声称规则已被钉住实际上没有任何测试在检查它。如果仓库根本没有测试这本身就是第一条结论。第 2 步提取值得测试的规则不是所有行为都值得写测试。命令只挑出违反后会跨越信任、数据、资金、租户或隐私边界的承重规则规则类型例子授权允许与拒绝permissions.md矩阵的边界穿越输入校验与输出编码每个数据出口的净化幂等性与去重键定时任务重复执行不重复扣款失败即关闭fail-closed超时/缓存未命中时默认拒绝副作用条件邮件何时发送、付费动作何时触发Agent 工具面限制automation.md中 Agent 可调用工具的硬边界判定标准很简单判断错误时受伤的是别人而不是操作者自己这条规则才配拥有一个测试。第 3 步构建测试覆盖地图每条用例一行字段固定规则来自文档→ 预期行为含拒绝/负向用例→ 证据来源文档代码→ 测试类型 → 状态existing / proposed / none其中状态列是整张地图的诚信所在——只有仓库里今天的测试真的断言了这条规则才能标 existing。四种测试类型决定了它该在哪里跑unit单元测试纯确定性、无外部依赖integration确定性集成测试对本地/内存依赖测试库、模拟供应商跑真实接线次次结果一致guarded live受保护的真实环境测试依赖真实数据库、邮件服务商或 LLM只在显式开关下运行绝不进默认 CImanual人工UI/视觉或主观判断属于评审清单不是自动化测试CI 必须强制的只有确定性本地集合unit 确定性 integration且绿了才能合并。一个常见陷阱把决策逻辑抽成纯函数做单测只证明了 helper 的逻辑没证明框架真的调用了它——中间件、行级安全、鉴权守卫仍需集成或 guarded-live 校验否则单测只是策略的影子。第 4 步提出测试用例对每条可以用确定性测试钉住的规则写出用例名、安排/执行/断言意图、以及它必须拒绝的负向用例并按所保护的文档或流程分组。原则优先能钉住规则的最小测试——一个边界一条清晰断言胜过一个因十种原因失败的巨型集成测试。第 5 步推荐 CI 门禁green-before-merge命令只做建议不会偷偷改动你的仓库每次 Pull Request 跑确定性本地集合guarded-live 测试保持 opt-in手动或定时不阻塞用必需状态检查 分支保护让main分支绿了才能合并工作流文件和分支保护设置会作为明确标注的建议输出等你批准后再落地。第 6 步报告覆盖与缺口最终报告强制分成三段防止地图被读成假绿灯Existing coverage—— 仓库里今天就钉住规则的测试Proposed tests—— 建议但尚未写出的用例按类型标注Gaps—— 文档写了但完全没有验证的规则按跨越它会造成什么暴露排序Gaps 就是下一份待办清单也正是下一次 AI 改代码时最容易被悄悄打破的边界。诚实的底线proposed ≠ existing——在测试真正断言它之前规则不算被覆盖。读懂输出tests.md 三段式覆盖地图 ️运行完成后覆盖地图会写入/documentation/tests.md完整报告可选写入/reports/test_plan_{时间戳}.md。报告结构如下Test Coverage: [scope] | Use case | Rule (doc) | Expected behavior ( deny case) | Evidence | Type | Status | ### Existing coverage ← 今天已钉住的规则 ### Proposed tests ← 按流程分组的建议用例 ### Recommended CI gate ← 检测到的技术栈 green-before-merge 说明 ### Gaps — documented but unverified ← 无验证规则按暴露程度排序你可以把tests.md当作整个文档体系的验证侧architecture.md说系统是什么permissions.md说谁能做什么而tests.md回答每条声明今天到底有没有人在检查。进阶把 /derive-tests 放进 /ship-check 完整发布链路 单独使用/derive-tests已经很有价值但它更常作为完整发货序列的一环出现。在 ship-check.md 定义的五步流程中它排在第 5 步——刻意放在安全审计和性能审计之后每个被审计确认的发现都直接变成一条要钉住的回归测试让同一个缺口无法在下一次 AI 编辑中悄悄复发。完整链路/document-app补文档→/security-audit-static/performance-audit-static找缺口→/derive-tests把意图和缺口变成覆盖地图→ 汇总为评审者可签字的 Shipping Packet。新手避坑清单 ✅不要跳过文档文档缺失时先跑/document-app否则地图无从推导别把建议当覆盖proposed 一列再漂亮测试没写之前规则仍是裸奔的别把真实服务接进默认 CI不稳定的 live 测试会一点点侵蚀绿了才能合并的信任直到没人再看它它只做测试推导要审计缺口本身用/security-audit-static要完整链路用/ship-check按这套文档意图 → 覆盖地图 → CI 门禁的 AI 推导法走一遍你的仓库就有了一个可被人类和 Agent 共同审查的测试基线——这正是 pm-skills 里 AI Shipping Kit 想让AI 写的代码也敢上线的底气所在。【免费下载链接】pm-skillsPM Skills Marketplace: 100 agentic skills, commands, and plugins — from discovery to strategy, execution, launch, and growth.项目地址: https://gitcode.com/GitHub_Trending/pm/pm-skills创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表