SuperAPI AI 工具集

uat-scenarios

测试与质量

查看项目

更新于 10-25 07:06

技能介绍

UAT Scenarios 是一个用于生成用户验收测试(UAT)制品的技能。它把功能意图、伪规格说明和分支变更作为三项必填输入,要求全部提供,缺失时先询问并停止。输入意图用一两句话说明业务目的;伪规格说明用平实语言描述触发条件、规则、输出和涉及系统;变更指分支对比(默认当前分支与主分支)或显式的提交/文件列表。若提供了现有 UAT 制品作为风格示例,会匹配其列、语气和细节程度。

核心工作方式是先理解再编写。需要阅读代码差异,区分分支自身提交与基线分支漂移,不确定范围时询问。对每个功能追踪完整路径:测试人员改什么(UI、源系统、API)→ 如何被拾取(同步、任务、触发器、调度)→ 中间所有转换 → 发送什么 → 结果如何返回 → 测试人员在哪里看到最终状态。同时注意下游结果影响:如果分支改变的值、状态、标志、映射字段或校验结果会改变后续动作或最终状态,该后续动作/最终状态也纳入范围;数据变化但下游行为相同则不扩展范围。还需注意执行模型(任务顺序、频率、时间窗口、增量过滤、需要几次运行)、选择与去重规则(键、已发送检查、只取第一/最新记录逻辑、历史/审计表、状态映射),并阅读项目自身文档了解本地或测试环境运行方式。只询问无法从代码解决的高层决策,如范围、环境、测试数据设置方式、代码与规格冲突时的预期行为,批量提问。

场景覆盖上,只测试分支改变的逻辑,边界划定在变更逻辑及其直接结果,仅当该结果改变下游业务逻辑或结果时才扩展。区分数据变化(中间值不同但下游行为相同,在变更字段处测试)与结果变化(导致不同动作或最终状态,在首个可观察下游点测试)。只编写测试人员可复现的场景,避免依赖不可控时序的竞态场景,此类问题作为风险在聊天中报告。对每个变更行为尽量覆盖四类:正常路径(触发发生、数据有效、全链路完成)、限制条件(触发发生但条件不满足、动作必须不发生且下游不变)、回归(共享相同触发、表、状态或代码路径的旧行为仍工作)、边界情况(重复/循环、缺失或无法映射数据、时间窗口、外部失败)。每个场景以测试人员可执行的动作开始,以其所用系统中可检查的状态结束,不超出边界。

输出到 uat/<area>_<feature>/ 目录,重跑覆盖不创建编号副本。scenarios.tsv 为必需,制表符分隔,一行表头一行一个场景,单元格内无制表符或换行。Scenario、Description、Pre-checks 必须用业务语言,非技术可理解,不引用 SQL 文件、查询编号、表名、作业或代码。列依次为 Step(稳定 ID,如 D.1,内部场景加 (internal) 后缀)、Scenario(一句话摘要)、Description(测什么及为何重要)、Pre-checks(测试前数据在业务上应为何)、Expected Outcome(最终状态和动作,按运行次数写明具体字段和值)、ID/link 列(每个对象一列,填写从查询 N 获取或模拟 ID)、EXPECTED RESULTS(留作 Same as outcome 供测试人员填写实际结果)。相互构建的场景需在相关行注明。fixtures.sql 为必需,每个场景选一种模式并在文件头说明:模拟数据(场景不经过验证真实值的外部 API 时使用,固定可识别 ID 范围如 888000001.. 保证重跑幂等,每个插入在末尾 RESET 部分有匹配语句)或搜索查询(场景经过需要真实记录的外部 API 时使用,查找满足所有预检查的现有记录,包括无待处理、系统间同步等条件)。结构包括头部注释(测什么、执行模型、模式、查询编号索引)、每个预检查/候选搜索或创建的编号查询并注释服务场景、模拟模式下显示测试前相关数据的查询、最终状态查询显示每个步骤预期结果提到的所有字段、模拟模式下的 RESET。不创建任何模式或表,模拟数据用 CTE;永不运行 SQL,只编写。playbook.md 为可选,当场景需要排序、命令或多次运行时编写,是开发者逐行遵循的 UAT 脚本,把场景与 SQL 文件、命令和作业关联。结构:测试会话先决条件(迁移、数据加载、配置、访问权限等);每个场景一节,按执行顺序从上到下,链式场景放在其延续场景之后。每节自包含,按运行顺序编号列出:从 SQL 文件查找或创建数据的查询(全文粘贴或按编号引用)及结果中要查看的内容;测试人员动作;手动运行作业的每条完整命令(先只读或试运行标志)及等待时间;检查结果的查询及要查看的内容。即使场景、步骤或命令相同,也不分组,每节重复,避免前后跳转。设计过程中发现代码无法产生预期结果时,不修复,在聊天中报告 file:line、具体失败场景和最小修复建议,在 playbook 的 Known issues 下列出(无 playbook 则放在 SQL 文件顶部),为预期行为编写标记为 Internal test 的场景使其在修复前失败并在 Description 中说明,然后询问是否应用修复。最终回答简短:写出的文件、每个场景 ID 一行、发现的 bug、需用户确认的开放假设、可能阻塞场景的先决条件(尚不存在的测试数据、环境限制)。

适用场景:开发或测试团队在功能分支变更后需要生成可重复、端到端可执行的 UAT 场景与数据脚本时。限制:三项输入必填;只测试分支改变的逻辑;只编写不运行 SQL;不自动修复发现的 bug;模拟数据模式要求场景不依赖外部真实值验证;依赖不可控时序的竞态不写场景;缺失事实(如具体收费、平台支持、使用价格)暂未提供。