Lidessen's land
← All Skills
npx skills add lidessen/readme --skill risk-driven-testingGitHub ↗
SKILL.mdMarkdown

按风险选择测试保障

调用与职责

直接使用 /risk-driven-testing 判断测试投入与用例设计。另有两个明确操作:

  • /risk-driven-testing generate <behavior-yaml> [output-directory]:按行为 YAML 实走,记录有效步骤, 生成或更新原子动作与组装代码,并实际回放。读执行投影。
  • /risk-driven-testing localize [target-project]:转入项目本地化,仅适配 指导与发现入口;省略路径表示当前项目。

这些是 Agent 调用表达,不是 shell 命令,宿主可用等价语法或自然语言调用。

本技能提供取舍、行为规格与执行投影方法,不另建执行系统或台账,复用宿主执行入口与记录。 用户已授权实际补测、修复或复测时,作出判断后 继续沿宿主现有工作流完成;项目没有成熟流程时,按正常开发工作推进,不能停在策略建议。 运行诊断、Agent 行为和视觉观察按需接入项目专项方法。操作权限仍来自任务授权与项目指令, 不能从选择技能推导删除、发布、付费调用或其他授权。localize 本身只交付指导适配。

目标是以最低总体代价守住必要行为:单测能真实揭露目标失败,就不升级到 E2E。行为 YAML 同时 是有独立价值的业务 KB,保存背景、动作、期望与关联;不能因单测足够、不做 GUI 或暂不生成投影 就省略或删除有用知识,也不能因已有 YAML 就必须生成 E2E 或一个 spec。知识、保障安排与执行 投影分别判断,一个行为可由已有多个单元 / 集成保障承接,也可先作为 KB 保留。

观察层次与执行方式是两个维度:单元 / 规则、组件、集成、完整流程与系统边界决定从哪里揭露 失败;确定代码、Agent 协作与人工决定怎样取得观察,可以组合,不要求各层齐备。Agent 介入的 半自动化 / 智能自动化适用于各层与各端,不等于 E2E,也不要求每次有人接力。Agent 可以设计、 生成、维护或执行测试;它写出的确定单测不因此需要运行时模型。运行时是否保留 agent / decision, 取决于固定代码是否足以处理实际任务。

按本次任务读取所需部分,不预加载全部工具:

  • 维护 YAML 行为库、选择项目内位置、追溯关系与查找线索:读行为规格。
  • 从真实操作生成或更新自动化:读执行投影;具体被测面与 工具及环境准备再读执行面与工具。Web 默认 playwright-cli, 桌面准备 Cua Driver,移动端沿实际设备能力选择,不用浏览器替代原生接合验证。
  • 充分验证、多轮复测、中断接续或核对清单完成语义:读测试接续, 复用已有工作记录。单次检查不必建立整套多轮流程。

比较目标失败与现有保障

从本次变化、现行合同、实际消费者或故障确定要防止什么失败、谁会受影响,再检查已有保障 在什么条件下能揭露它、遗漏什么。内部一致性、安全与恢复也可直接成为目标;展示层的金额、 单位或安全警告同样可能承担关键合同。期望须有可核实的依据;来源冲突或不明时回到现行 合同与有权负责人,不能把当前实现或测试里已有的值直接当作正确答案。

围绕这个缺口比较有意义的替代安排,选择满足必要合同、足以揭露目标失败且总体负担较小的 保障。负担包括漏检后果、搭建与执行、复现排查、误报和长期维护。影响范围、发生可能性及 发现难度会改变投入:低频但严重且难诊断的失败,可能比常见正常路径更值得深入。 无需枚举所有方案、评分或另记账;已有证据足以区分取舍就直接决定。

让结论能改变下一步行动:

  • 维持:已有保障能揭露本次目标失败,新增观察没有足够收益;说明其适用边界。
  • 修复:保障仍有价值,但定位、驱动、替身或接线失效;先核实行为,再修复原保障。
  • 补充:现有观察漏掉关键条件,在能暴露它的位置补足,而非重写已经有效的部分。
  • 替换:另一安排保住必要保障且总负担更小;说明谁接回原先保护的失败,再清理旧实现。
  • 暂缓:当前投入不合算或条件不足;明确留下的失败窗口、理由及触发重议的变化或证据。

这些是可选结论,不是必须逐项填写的表。覆盖率可提示盲区,不能单独决定投入;通用方法不 规定统一分级、配额或门槛。目标项目已有且有依据的强制分级、监管覆盖、发布门禁等约束 仍然有效,不能借通用方法撤销。

让观察真正触及目标失败

规则、状态转换和边界条件通常在逻辑所属层最容易揭露;交互与状态接线需要组件或消费端 观察;跨模块合同、权限、生命周期和真实环境可能要求集成、完整路径或人工观察。 按缺口选择观察层,不能用便宜单测替换它无法触及的真实接合保障。共享逻辑可集中测试, 不同客户端的接线、权限与生命周期仍可能分别失守;当这些差异构成本次保障缺口时,再分别验证。

真实模块有助于减少替身漂移;外部计费、危险副作用或难复现故障则可能需要 mock 或故障 注入。检查替身是否符合真实边界、断言是否经过被测代码,避免只断言替身预设的返回值。 替身通过只支持它实际观察的范围,不证明外部服务与真实接合成立。

清理测试也作同一保障比较:删掉会放过什么,替代后还能否揭露,节省了什么负担。 高价值但脆弱的保障通常值得修复。精确文本、mock、跨端重复或长期未触发本身都不是删除 依据;保障已不适用或替代充分时才删除。无法接回的必要保障应作为具体缺口说明,不能把 维护工作转移给未经安排的人工检查。

保留稳定的行为依据

需要反复使用的行为,用背景、前提、动作与可观察结果表达;简单规则可只写输入和期望。 引用现行合同,避免另造事实源。选择器、驱动和环境准备属于执行表达,但 URL、协议字段、 精确文本若本身就是合同,就保留精确要求。金额、单位、安全警告、无障碍名称及错误输出 可能必须逐字检查;无关布局或内部结构则可换成稳定的行为观察。

例如“无编辑权限的成员尝试保存,修改未持久化且得到拒绝提示”,可以支持权限自动化、 真实界面回放及排障知识。定位按钮是执行手段,拒绝且未写入是行为保障;若拒绝提示有 明确合同,其文本也是期望的一部分。这个例子不代表已有实测结果。

行为说明按项目需要用于自动化、Agent 回放或知识复用,不强求三种出口、专用目录、DSL、 registry 或用例与脚本一一对应。Agent 回放需要实际观察;读懂用例和复用知识都不等于通过。

反复使用的行为可按行为规格写成 YAML,作为比定位器、工具参数 与代码更稳定的依据。ref 仅在另一份材料有实际阅读价值时关联,不为凑层级互链,不自动继承或 执行,也不扩张本轮测试范围;选中行为的 expect 仍须核对。 lookup 用多条概念、符号或行为线索帮助寻找当前实现,单条线索失效不直接说明行为失败。

从实际操作维护执行投影

先按目标失败选择观察层。纯逻辑、API 或 CLI 合同沿相应真实入口验证,不为套用方法改成 GUI。 需要界面投影时,Agent 按行为用例实走界面,记录有效步骤,再提取原子操作与组装代码,并从成立 的前提回放代码。更新先找受影响原子及消费者,重走相关流程后局部更新、核对前后接缝;原子化 主要为了降低更新成本,不为每步建节点或每轮全量重生。

执行层 action 完成一次确定操作,agent 完成一次有界自主任务,decision 只返回经运行时 校验的有限选择;组装持有分支与候选执行。普通代码能判定的条件用普通分支,确需智能才用模型。 它们不是行为 YAML 的新字段,也不要求统一驱动接口、跨端执行引擎或状态机运行器。

通过依据是原 expect 的实际观察,不能用工具成功、Agent 自报完成或合法模型输出代替。 观察不足保留未知,工具或 provider 失败单列;补取授权观察后再判断,不能修产品、换容易通过的 分支或改宽断言制造通过。一次实走只证明已走路径。资源接力沿各端真实身份与原 owner,已登录或 已启动不代表数据与页面初态成立,也不扩大权限。

根据失败与变化重议

测试失败时,核对期望依据、实际结果与相关变化,区分环境故障、测试执行表达漂移、产品 缺陷和行为语义变更。selector 失效可能是按钮误删或权限回归;只有确认合同未变且产品仍 满足合同,才按授权修定位、驱动或替身,并沿原触发条件复验。产品偏离合同则修产品; 真实语义变化由有权负责人确认后再同步期望与执行实现,不能放宽断言制造通过。 无法判断时保留原观察和具体未知,不默认归咎测试。

证据已回答目标失败的问题后停止扩测;新改动、失败或未决风险才触发补测。环境、预算或 权限不足时说明未覆盖条件与重议条件,不能记为通过,也不能据此否认必要保障。

交还可接续的决定

在宿主已有记录中说明目标失败、现有保障与所选安排的比较、实际行动、剩余缺口及何时改变 投入。按任务需要附执行入口,不强制新模板或第二份台账。区分行为用例已写、自动化已生成、 命令已执行和行为已观察;报告环境与证据边界,不把有限观察扩成长期稳定保证。

本方法来自可复用实践提炼;公开和格式通过不代表跨项目效果已证明,采用与成熟度仍由 相应行为证据判断。