可测试性分析:判断需求是否真正可测、可控、可验证

可测试性分析:判断需求是否真正可测、可控、可验证

nao.deng ·

需求写得清楚,并不代表它就一定好测。真正进入测试设计后,经常会遇到这样的情况:预期结果有了,却没有明确的验证方式;业务规则定义了,却缺少必要的数据或环境;接口可以调用,却无法观察关键状态;异常场景需要覆盖,却没有办法稳定地触发。

这些问题如果到了测试执行阶段才发现,往往意味着测试人员需要重新确认需求、补充数据、协调环境,甚至推动开发增加日志、监控或测试入口。很多测试阻塞并不是执行能力的问题,而是需求和系统从一开始就没有为“如何验证”做好准备。

可测试性分析(Testability Analysis)Skill 希望把这部分判断尽可能提前。在真正开始测试设计和执行之前,让 AI 结合需求、接口、系统设计和已有上下文,系统分析测试范围、可验证点、依赖条件、数据与环境要求、可观测性、可控性以及潜在测试阻塞项

它并不是让 AI 判断一个需求“能测还是不能测”,而是帮助测试人员更早发现:哪些地方缺少验证手段、哪些场景难以构造、哪些结果无法观察、哪些依赖可能阻塞测试,以及为了让需求真正可测还需要补充什么。

本文将具体介绍可测试性分析 Skill 适合什么时候使用、需要提供哪些输入、重点分析什么、最终会产出什么,以及如何把分析结果带回需求评审和测试设计流程中

可测试性分析 Skill 用来做什么

可测试性分析 面向需要把测试判断讲清楚、交接出去的工作。它把项目材料、判断依据和下一步动作放在同一条线上——读者可以先知道该检查什么,再决定怎么执行与复核。本文用一个具体场景展开,并保留需要人工确认的边界。

先回到源 Skill

这个 Skill 的完整执行规则在 可测试性分析 提示词。源目录还包含 3 个评测用例,用于验证输出是否遵守契约。

它要求特别注意:

  • 不要把测试框架选择当测试性本身
  • 每项改进说明价值和成本
  • 避免为测试暴露不安全后门

用一份项目材料开始

先把当前拿得到的材料摆上来。缺口可以保留,状态必须说实话。

材料这次填什么缺失时的处理
目标与范围评估会员升级功能是否具备可观察状态、稳定控制点、可构造数据和可验证结果标出不在本轮判断内的链路
版本与环境需求版本、构建号、环境和时间窗口降级为设计或分析,不写执行结论
证据需求、接口、日志、指标、trace 或历史缺陷区分事实、假设和待确认项
决策边界谁确认风险,哪些动作未经授权不能执行列出 Owner 和下一步

可以这样调用:

请使用 testability-analysis Skill。

任务:评估会员升级功能是否具备可观察状态、稳定控制点、可构造数据和可验证结果
输入材料:[版本、链接、日志或报告路径]
范围:[本次包含和排除的对象]
限制:[时间、数据、权限、合规要求]

先审计输入,再按风险和证据强度排序。材料没有证明的内容标为假设,并列出验证方法。

产物要能被下一位同事接住

输出字段作用示例状态
发现或判断说明观察到的行为、差异或风险已确认 / 假设 / 待确认
依据指向版本、日志、trace、测试或需求source_id 或链接
影响说明受影响的用户、链路或发布判断P0、P1 或接受的残余风险
下一步指定验证动作和负责人Owner、截止时间、预期证据

没有运行记录、查询结果或原始材料时,不写“已通过”。静态分析和实际执行是两件事。

在项目里跑一轮

先用一个边界清楚的小回合启动——评估会员升级功能是否具备可观察状态、稳定控制点、可构造数据和可验证结果。别急着把结果写成报告。先把输入版本、时间窗口和负责人贴到同一处;然后把每个判断连回具体材料;最后只安排一项能改变结论的验证动作。

可测性问题要落到接口、日志、数据和环境的改动建议,不能只写难测。这一轮交付应当包含:可复查的证据索引、仍然成立的假设、以及下一位同事可以直接执行的动作。这样做很朴素,也很有效。

在项目里跑一轮

先用一个边界清楚的小回合启动——评估会员升级功能是否具备可观察状态、稳定控制点、可构造数据和可验证结果。别急着把结果写成报告。先把输入版本、时间窗口和负责人贴到同一处;然后把每个判断连回具体材料;最后只安排一项能改变结论的验证动作。

可测性问题要落到接口、日志、数据和环境的改动建议,不能只写难测。这一轮交付应当包含:可复查的证据索引、仍然成立的假设、以及下一位同事可以直接执行的动作。这样做很朴素,也很有效。

进阶使用:把一次分析变成持续机制

可测性问题要落到接口、日志、数据和环境的改动建议,不能只写难测。

每次输出都保存输入版本和 source_id。下一次发生需求、代码、环境或数据变化时,只重算受影响的判断,并将结果标记为 changedunchangedneeds-review。这样不会把旧结论当成新证据。

三段式 Skill 链

testability-analysisrequirements-analysistest-strategy

交接传递内容接收方要检查什么
上游到 testability-analysis来源版本、范围、风险、未决项输入是否过期,冲突是否标记
testability-analysis 到下游判断、证据索引、残余风险、待办产物是否可执行,Owner 是否明确
下游回写 testability-analysis执行结果、缺陷、事实变化是否更新基线与回归范围

交接时传摘要、证据索引和原始材料的位置。信息量足够,结论出了问题也能回到来源。

团队门禁

门禁检查内容未满足时
testability-analysis 输入门禁版本、环境、证据来源和 Owner停止生成,列出缺口
testability-analysis 产物门禁关键结论带依据、状态和影响退回补证据
testability-analysis 执行门禁命令、查询或验证路径可复现标记基础设施或测试问题
testability-analysis 决策门禁残余风险有接受人与日期不进入下一阶段

容易踩的坑

  1. 只写检查点,不写输入条件、预期结果或证据。
  2. 把所有发现都标高优先级,团队无法取舍。
  3. 材料缺失时拒绝产出,或者反过来把猜测当成事实。
  4. 用一次成功或一次异常代表长期行为,忽略重复试验与版本差异。

两个实际问题

输入还不完整,能开始吗?

能。先交付受限初版:列出已知事实、假设、缺口和最小验证动作。环境、数据或权限缺失时,不写执行结论。

什么时候需要人工确认?

范围取舍、风险接受、生产操作、数据权限和发布决定必须由对应负责人确认。Skill 负责整理证据与选项,不替团队做授权决定。

先用一份真实材料跑通 可测试性分析,把输入、产物、人工修改和验证证据留在同一个工作链里。下一次变化发生时,才有东西可以复用。

参考

分享