面向企业 Web 系统、SaaS 管理后台、内部业务平台、多角色权限系统的通用、抽象、隐私安全 UAT 验收测试流程。适用于规划、设计、执行、复核、审计和打包自动化/半自动化 Web UAT,强调需求追踪矩阵 RTM、角色权限覆盖、真实证据、可复现缺陷、最终审核关卡和交付包。本 Skill 不包含任何项目专属业务...
--- name: enterprise-web-uat description: 面向企业 Web 系统、SaaS 管理后台、内部业务平台、多角色权限系统的通用、抽象、隐私安全 UAT 验收测试流程。适用于规划、设计、执行、复核、审计和打包自动化/半自动化 Web UAT,强调需求追踪矩阵 RTM、角色权限覆盖、真实证据、可复现缺陷、最终审核关卡和交付包。本 Skill 不包含任何项目专属业务名称、客户数据、凭证、URL 或本机路径。 --- # 企业级 Web UAT 验收测试 这个 Skill 用于指导 Agent 执行**可交付、可复盘、隐私安全的企业级 Web UAT**。它是一套通用方法论,不是某个具体项目的测试脚本。 适用对象包括:带有菜单、表单、表格、流程、角色权限、配置项、集成、后台任务、报表、文件、通知、审计日志或数据生命周期规则的 Web 系统。 ## 核心原则 1. **抽象通用**:除非用户在当前任务中明确提供,否则不要假设具体客户、模块名、URL、账号、租户或业务流程。 2. **隐私优先**:不要发布、打包、记录或报告密钥、Cookie、Token、密码、私有 URL、个人数据、浏览器存储状态文件或客户专属实现细节。 3. **需求驱动**:UAT 的目标是证明验收覆盖,不是随机点页面。 4. **证据驱动**:每个结论都必须有执行记录、截图、DOM/控件清单、必要的控制台/网络观察以及可复现步骤支撑。 5. **安全自动化**:未经明确授权,不执行删除、付款、外发通知、生产配置变更、法律签署等高风险或不可逆操作。 6. **尊重正常登录**:如果遇到密码、MFA、SSO、扫码、验证码等登录步骤,让用户在专用浏览器中手动完成;不要绕过认证。 ## 强制流程 除非用户明确要求只做小范围检查,否则按以下顺序执行: `资料输入 → 验收基线 → 业务理解 → RTM 需求追踪矩阵 → UAT 用例设计 → 授权与边界确认 → 执行留证 → 问题记录 → 初版报告 → 最终审核 → review-fixed 修正版交付包` 如果某一步因为资料、账号、环境或数据不足无法完成,必须标记为 `Blocked`、`To-confirm` 或 `OutOfScope`。不要把缺少证据的内容默认为通过。 ## 启动参数与必填信息 ### 最小启动参数 只要用户要求开始一次 Web UAT,至少需要明确以下信息;缺失时先一次性追问,或在报告中标记为阻塞/待确认: | 参数 | 是否必填 | 说明 | 缺失处理 | |---|---:|---|---| | `target_url` / 目标地址 | 是 | 被测系统入口、页面地址或环境入口 | 无法访问时标记 `Blocked` | | `scope` / 测试范围 | 是 | 要验收的模块、页面、流程、角色或用户故事 | 不明确时先做范围澄清 | | `environment` / 环境信息 | 是 | 测试、预发、演示或生产类环境,以及版本/构建号(如有) | 未知时记录为风险 | | `login_method` / 登录方式 | 是 | 测试账号、人工登录、SSO/MFA/扫码登录或免登录页面 | 无法登录时标记 `Blocked` | | `safety_boundary` / 安全边界 | 是 | 是否允许新增、编辑、删除、导入导出、发通知、跑任务等 | 未授权的高风险操作默认禁止 | | `output_required` / 交付物 | 是 | 只要结论、问题清单、完整报告、证据包或 ZIP 交付包 | 未说明时默认输出简版结论+问题清单 | ### 完整企业级 UAT 推荐参数 做正式交付型 UAT 时,尽量补齐: | 参数 | 用途 | |---|---| | `source_docs` | 操作手册、PRD、合同/SOW、变更单、验收准则、接口文档 | | `roles` | 角色、权限、组织/数据范围、测试账号或人工登录安排 | | `test_data_rules` | 可使用的数据、禁止触碰的数据、清理规则 | | `acceptance_criteria` | 明确的验收标准;没有时从资料中抽取并标记假设 | | `browser_matrix` | 浏览器、分辨率、设备、兼容性要求 | | `integration_boundaries` | 外部系统、通知、文件、异步任务、审计日志等边界 | | `risk_constraints` | 支付、删除、生产配置、法律签署、外发通知等禁止项 | | `package_format` | HTML、Markdown、CSV、JSON、截图证据、ZIP 等交付格式 | ### 参数缺失处理规则 - 最小启动参数缺失时,不要直接开始正式 UAT;先追问或标记 `Blocked`。 - 完整企业级参数缺失时,可以继续执行已授权范围,但必须在 RTM、用例和报告中标记风险。 - 用户只给 URL 时,可以先做非破坏性页面探查和范围草案,不得执行提交、删除、外发、支付、发布等动作。 - 用户明确要求“全量 UAT”时,必须要求或整理范围、角色、资料、数据和安全边界;不能把“全量”理解为随机点击所有按钮。 ## 1. 资料输入 按当前任务需要收集或确认: - 目标环境与访问地址 - 操作手册、PRD、合同/SOW、变更单、验收标准或用户故事列表 - 与 GUI 流程相关的接口/API 文档 - 角色权限矩阵 - 测试账号或安全登录方式 - 允许使用的测试数据规则 - 浏览器/设备要求 - 高风险边界和明确禁止的操作 如果资料不可用,先记录假设和风险,再执行。 ## 2. 验收基线 把来源资料转成验收准则清单。 必填字段: `准则编号|来源|原始描述|验收准则|适用角色|模块/流程|优先级|验证方式|是否阻断验收|备注` 规则: - 每条准则必须能测试、能确认,或明确标记为范围外。 - 文档之间冲突时,记录为 `DocumentConflict` / `To-confirm`。 - 不要把缺失的业务规则自行脑补成事实。 ## 3. 业务理解 自动化前先形成简洁业务模型: - 菜单与导航结构 - 业务对象及生命周期 - 核心端到端流程 - 角色、权限与数据范围边界 - 配置项依赖关系 - 集成、异步任务、通知、导入导出、审计日志 - 高风险操作及安全替代方案 ## 4. RTM 需求追踪矩阵 执行前创建 RTM。 必填字段: `准则编号|准则摘要|来源|模块|业务流程|角色|用例编号|执行状态|缺陷编号|证据编号|覆盖结论|验收结论|备注` 每条验收准则必须映射到以下之一: - UAT 用例 - 人工确认项 - 接口/后台补充验证项 - 明确的 `Blocked`、`OutOfScope` 或 `To-confirm` ## 5. UAT 用例设计 先设计场景化 UAT 用例,再执行。 必填字段: `用例编号|关联准则编号|业务场景|角色|前置条件|测试数据|业务步骤|页面操作步骤|接口/后台补充说明|预期结果|优先级|证据要求|是否可自动化|风险点|验收影响` 用例类型包括: - GUI 可操作用例 - 接口/后台补充验证用例 - 异步/定时/后台任务用例 - 集成/通知/导入/导出用例 - 权限与数据范围用例 - 反向/异常用例 - 仅人工确认用例 ## 6. 授权与安全边界 触碰类生产或真实业务环境前,必须确认边界。 默认禁止,除非用户明确授权: - 真实支付、退款、结算或资金流转 - 删除或修改真实业务数据 - 批量发送短信、邮件、推送或外部通知 - 发布、停用、覆盖生产配置 - 使用真实证书、印章、许可证或具有法律效力的签署能力 - 执行可能影响真实用户或外部系统的任务 - 上传涉密或受监管文件 优先使用带 UAT 标识的测试数据和可回滚操作。需要清理的数据必须记录并验证清理结果。 ## 7. 登录状态与浏览器规则 - 使用专用 UAT 浏览器配置,不混用用户日常浏览器。 - 遇到密码、MFA、SSO、验证码或扫码登录时,让用户在专用浏览器中手动完成。 - 不打包、不发布、不报告 Cookie、浏览器存储状态、Token、凭证或包含密钥的截图。 - 做角色权限 UAT 时,不同角色使用独立配置或干净会话。 - 登录状态通过页面文字、URL 模式、可见角色/菜单信号和截图确认,但不得泄露密钥。 ## 8. 执行标准 适用时按三条线覆盖: 1. **业务流程线**:真实业务场景的端到端闭环和数据生命周期。 2. **模块菜单线**:导航、表单、列表、筛选、排序、分页、行操作、弹窗、上传下载、导入导出、配置页。 3. **角色权限线**:菜单可见性、按钮可操作性、数据范围、直接 URL/API 越权控制、跨角色隔离。 操作 GUI 页面前: - 读取当前页面/Frame 的 DOM 结构 - 建立控件清单:表单、输入框、按钮、下拉框、表格、行操作、弹窗、分页、TAB、提示、空状态 - 标记安全控件与高风险控件 重要操作后: - 重新读取 DOM 或页面状态 - 截图留证 - 记录 URL、角色、动作、输入类型、实际结果、控制台错误、网络失败和证据编号 没有证据支撑时,不要声称控件或流程已通过。 ## 9. 问题记录 使用明确状态: - `FormalIssue`:已确认、影响验收的缺陷 - `Blocked`:因账号、数据、环境或依赖无法执行 - `NeedReview`:观察到行为,需要产品/业务确认 - `ToConfirm`:预期行为在文档中缺失或不明确 - `Observed`:非阻断观察项 - `Pass`:已有证据验证通过 问题字段: `问题编号|模块/流程|页面/功能点|页面 URL|角色|业务场景|问题描述|严重级别|优先级|环境/版本|测试数据类型|复现步骤|预期结果|实际结果|证据编号|验收影响|建议修复|状态` 规则: - `页面 URL` 指 Web 页面地址;接口地址必须单独标为 `接口 URL`。 - 复现步骤必须是人能看懂的页面/业务步骤。 - 不包含密码、Token、Cookie、个人隐私数据或涉密载荷。 - 控件缺失只有在需求/手册/用例明确要求时才算正式缺陷;否则标为 `ToConfirm`。 ## 10. 报告标准 决策型 UAT 报告应包含: 1. 验收总览与最终建议 2. 范围、环境、假设与排除项 3. 资料来源与验收基线 4. RTM 需求覆盖矩阵 5. 业务流程验收结果 6. 模块/菜单验收结果 7. 角色权限/数据范围验收结果 8. 接口/后台/异步/集成补充验证结果 9. 用例执行明细 10. 正式缺陷清单 11. 阻塞项与待确认项 12. 文档/系统差异 13. 风险与遗留问题 14. 证据索引 15. 最终验收建议 16. 签署确认页 验收建议: - `通过`:阻断准则通过、核心流程闭环、证据完整、无阻断缺陷。 - `有条件通过`:剩余问题不阻断验收,且有明确规避方案或修复计划。 - `不通过`:核心流程、权限边界、数据完整性、安全边界或关键准则失败。 - `阻塞`:因访问、环境、数据或依赖问题导致证据不足,无法判断。 ## 11. 最终审核关卡 交付前必须审核: - 不包含密钥、凭证、Cookie、Token、私有 URL、本机路径或客户专属涉密名称 - RTM 覆盖所有准则,或明确标记缺口 - 用例状态、问题状态、证据相互一致 - 截图归属于对应页面、模块和角色 - 阻塞项/待确认项明确展示,不能计为通过 - 缺陷复现步骤清晰可读 - 接口/后台验证不得冒充完整 GUI 验证 - 最终建议有证据支撑 - 若需要打包,交付包包含报告、RTM、用例、问题、执行记录、证据索引、审核记录和清单 如果审核失败,修正报告/交付包,并标记为 `review-fixed`。 ## 12. 交付包建议 用户要求打包时,使用项目中立结构,例如: ```text uat-delivery-<project-slug>-v<version>-<YYYYMMDD>/ ├── report/ ├── evidence/ ├── data/ │ ├── acceptance-criteria.csv │ ├── rtm.csv │ ├── uat-cases.csv │ ├── execution-records.csv │ └── issues.csv ├── audit/ │ └── final-audit.md └── MANIFEST.md ``` 输出位置应遵循用户当前任务要求。公开 Skill 中不要硬编码个人桌面路径或本机用户名。 ## 13. 附带参考文件 仅在需要时读取: - `references/uat-standards.md`:验收、执行、报告和审核详细标准。 - `references/audit-checklist.md`:最终审核清单。 - `references/issue-writing.md`:正式缺陷写法。 - `references/report-structures.md`:报告结构模板。 - `assets/report-template.html`:通用 HTML 报告模板。
don't have the plugin yet? install it then click "run inline in claude" again.