{ "schema_version": "1.0", "work_package": "WP-14", "generated_at": "2026-07-30", "result_definitions": { "PASS_LOCAL": "当前本地工程环境已通过,不能据此认定企业正式验收通过", "FAIL": "已执行但不符合预期", "BLOCKED_EXTERNAL": "需要企业人员、数据、环境或签字,当前不能执行", "NOT_RUN": "本轮未执行且不属于外部依赖" }, "cases": [ { "id": "WP14-UAT-001", "module_ids": ["WP-02"], "title": "管理员创建三级角色账号并正确处理 HTTP 201", "actor": "admin", "acceptance_level": "LOCAL_ENGINEERING", "preconditions": ["本地管理员可登录", "用户管理页面可访问"], "steps": ["创建 viewer 账号", "创建 editor 账号并检查列表刷新", "完成角色验收后停用两个账号"], "expected": ["创建窗口关闭并刷新列表", "角色正确", "停用账号不能再次登录"], "evidence": ["WP14_UAT_HANDOVER_EVIDENCE.md#角色与权限", "WP14-DEF-001"], "result": "PASS_LOCAL", "notes": "两个临时账号均已停用,重新登录返回 401。" }, { "id": "WP14-UAT-002", "module_ids": ["WP-02"], "title": "管理员、编辑者和查看者权限隔离", "actor": "enterprise_acceptance", "acceptance_level": "LOCAL_ENGINEERING", "preconditions": ["三级角色账号在验收期间为 active", "API 鉴权开启"], "steps": ["三类角色分别读取资产和指标", "分别访问用户与审计接口", "分别提交无效资产导入请求"], "expected": ["三类角色读取返回 200", "只有管理员访问用户与审计返回 200", "查看者写入返回 403,编辑者和管理员进入业务校验"], "evidence": ["WP14_UAT_HANDOVER_EVIDENCE.md#角色与权限"], "result": "PASS_LOCAL", "notes": "无效写入仅用于验证权限顺序,不产生资产数据。" }, { "id": "WP14-UAT-003", "module_ids": ["WP-02", "WP-05", "WP-06", "WP-07", "WP-08"], "title": "设备治理责任矩阵和唯一最终责任人", "actor": "admin", "acceptance_level": "LOCAL_ENGINEERING", "preconditions": ["管理员拥有责任矩阵权限", "四类设备治理对象已配置"], "steps": ["读取责任范围和修订号", "检查每个范围的 asset_manager/accountable", "核对设备字段责任覆盖指标"], "expected": ["设备本体、实体映射、设备质量和质量问题各有一名最终责任人", "台账责任字段本地覆盖率为 4/4"], "evidence": ["WP14_UAT_HANDOVER_EVIDENCE.md#业务场景"], "result": "PASS_LOCAL", "notes": "企业实际人员名单仍需正式 UAT 替换。" }, { "id": "WP14-UAT-004", "module_ids": ["WP-03"], "title": "数据源采集任务、来源证据和失败定位", "actor": "editor", "acceptance_level": "LOCAL_ENGINEERING", "preconditions": ["本地示范数据源可用", "编辑者具备采集运行权限"], "steps": ["读取采集任务列表", "检查目录快照和审计事件", "核对查看者不能启动采集"], "expected": ["至少存在一条采集任务", "采集审计可定位任务", "查看者无写入入口和权限"], "evidence": ["WP14_UAT_HANDOVER_EVIDENCE.md#业务场景"], "result": "PASS_LOCAL", "notes": "未在 WP14 重复执行采集,复用 WP03 已形成的不可变证据。" }, { "id": "WP14-UAT-005", "module_ids": ["WP-04"], "title": "设备资产目录、来源编码和版本追溯", "actor": "viewer", "acceptance_level": "LOCAL_ENGINEERING", "preconditions": ["查看者已登录", "示范资产已入账"], "steps": ["打开设备台账", "按名称或来源编码检索", "打开追溯查看来源映射和版本"], "expected": ["显示 4 条资产", "每条资产具有来源编码", "详情可查看来源和版本且无写入按钮"], "evidence": ["WP14_UAT_HANDOVER_EVIDENCE.md#业务场景"], "result": "PASS_LOCAL", "notes": "本地 4 条资产不能推导企业资产入账率。" }, { "id": "WP14-UAT-006", "module_ids": ["WP-05"], "title": "设备语义本体和代码集发布状态", "actor": "admin", "acceptance_level": "LOCAL_ENGINEERING", "preconditions": ["设备语义已初始化", "管理员具备发布和复核权限"], "steps": ["读取设备语义画像", "核对本体版本和发布状态", "检查概念、关系和映射覆盖"], "expected": ["本体 v1 为 published", "11 类概念、10 条关系、6 个映射齐备", "发布准备状态为 true"], "evidence": ["WP14_UAT_HANDOVER_EVIDENCE.md#业务场景"], "result": "PASS_LOCAL", "notes": "企业术语和故障代码仍需设备专家确认。" }, { "id": "WP14-UAT-007", "module_ids": ["WP-06"], "title": "实体匹配解释、审核、合并与回滚证据", "actor": "admin", "acceptance_level": "LOCAL_ENGINEERING", "preconditions": ["存在跨来源候选", "自动合并默认关闭"], "steps": ["打开实体匹配页面", "检查置信度和逐项信号", "核对已回滚候选的合并和回滚记录"], "expected": ["候选置信度为 95% 且显示 5/6 信号一致", "状态为已回滚", "原资产和来源映射未被物理删除"], "evidence": ["WP14_UAT_HANDOVER_EVIDENCE.md#业务场景"], "result": "PASS_LOCAL", "notes": "企业阈值需用真实同一/不同设备标注集确认。" }, { "id": "WP14-UAT-008", "module_ids": ["WP-07"], "title": "质量策略、运行结果和来源定位", "actor": "editor", "acceptance_level": "LOCAL_ENGINEERING", "preconditions": ["设备质量策略已发布", "编辑者具备执行权限"], "steps": ["打开设备质量页面", "检查七类规则和发布状态", "读取两次质量运行及违规计数"], "expected": ["策略 v1 已生效", "显示七类规则", "存在 2 次检查并可查看违规与资产得分"], "evidence": ["WP14_UAT_HANDOVER_EVIDENCE.md#业务场景"], "result": "PASS_LOCAL", "notes": "WP14 不重复运行质量检查,避免改变示范证据。" }, { "id": "WP14-UAT-009", "module_ids": ["WP-08"], "title": "质量问题整改、独立复核和关闭时间线", "actor": "editor", "acceptance_level": "LOCAL_ENGINEERING", "preconditions": ["存在一条质量问题", "整改和复核角色已分离"], "steps": ["打开质量问题列表", "查看问题详情和时间线", "核对创建、分派、开始、提交和关闭审计"], "expected": ["1 条问题状态为已关闭", "时间线完整", "本地闭环率为 1/1"], "evidence": ["WP14_UAT_HANDOVER_EVIDENCE.md#业务场景"], "result": "PASS_LOCAL", "notes": "首批企业真实问题闭环率仍需真实 UAT 计算。" }, { "id": "WP14-UAT-010", "module_ids": ["WP-09"], "title": "设备运行关系和证据不足拒绝确定根因", "actor": "admin", "acceptance_level": "LOCAL_ENGINEERING", "preconditions": ["4 条运行事件和 2 条证据关系已存在", "未关联停机事件可查询"], "steps": ["打开设备关系与根因页面", "对未关联停机事件执行分析", "检查约束说明"], "expected": ["页面显示 4 条运行事件", "明确提示证据不足无法确认根因", "不触发自动修复或维修计划"], "evidence": ["WP14_UAT_HANDOVER_EVIDENCE.md#业务场景"], "result": "PASS_LOCAL", "notes": "根因候选仅为辅助判断。" }, { "id": "WP14-UAT-011", "module_ids": ["WP-10"], "title": "设备搜索的数据范围授权", "actor": "viewer", "acceptance_level": "LOCAL_ENGINEERING", "preconditions": ["两个设备数据源均为空业务域范围", "管理员与查看者均可登录"], "steps": ["管理员按源 ID 精确搜索", "查看者用同一源 ID 搜索", "比较证据数量"], "expected": ["管理员返回 1 条设备证据", "查看者返回 0 条", "服务端授权在检索前生效"], "evidence": ["WP14_UAT_HANDOVER_EVIDENCE.md#业务场景"], "result": "PASS_LOCAL", "notes": "空范围按设计仅管理员可见。" }, { "id": "WP14-UAT-012", "module_ids": ["WP-10", "WP-12"], "title": "模型不可用时拒答、保留授权证据并记录审计", "actor": "admin", "acceptance_level": "LOCAL_ENGINEERING", "preconditions": ["设备证据可检索", "本地回答模型未配置"], "steps": ["询问设备责任人", "检查 answer_status 和引用区域", "检查查询审计不保存原始问题"], "expected": ["answer_status 为 model_unavailable", "不生成推测性答案", "展示 1 条授权证据并写入查询审计"], "evidence": ["WP14_UAT_HANDOVER_EVIDENCE.md#业务场景"], "result": "PASS_LOCAL", "notes": "企业黄金集仍需合规模型环境完成。" }, { "id": "WP14-UAT-013", "module_ids": ["WP-11"], "title": "五项治理指标和明细追溯", "actor": "admin", "acceptance_level": "LOCAL_ENGINEERING", "preconditions": ["管理员可访问全部本地示范范围", "设备、映射和问题数据已存在"], "steps": ["打开治理运营指标页面", "核对五项分子分母", "检查每项明细入口"], "expected": ["台账完整率 4/4", "责任覆盖率 4/4", "实体映射率 0/4", "问题闭环率 1/1", "复发率 0/1"], "evidence": ["WP14_UAT_HANDOVER_EVIDENCE.md#业务场景"], "result": "PASS_LOCAL", "notes": "已回滚实体合并不计入有效映射。" }, { "id": "WP14-UAT-014", "module_ids": ["WP-12"], "title": "安全检查、六类审计投影和封存证据", "actor": "admin", "acceptance_level": "LOCAL_ENGINEERING", "preconditions": ["独立本地封存密钥已配置", "管理员具备审计权限"], "steps": ["打开审计与运行证据页面", "检查六项安全检查", "核对六类操作覆盖和两条封存记录"], "expected": ["六项安全检查通过", "登录、采集、合并、发布、整改和问答审计源均可用", "2 条封存记录可重新校验"], "evidence": ["WP14_UAT_HANDOVER_EVIDENCE.md#业务场景"], "result": "PASS_LOCAL", "notes": "本地密钥和封存不替代企业 KMS、WORM 或外部可信时间戳。" }, { "id": "WP14-UAT-015", "module_ids": ["WP-13"], "title": "离线安装、备份、恢复和回滚入口", "actor": "admin", "acceptance_level": "LOCAL_ENGINEERING", "preconditions": ["WP13 本地恢复演练证据已归档", "离线包和备份清单可校验"], "steps": ["复核离线包哈希和 11 个镜像", "复核独立项目恢复结果", "复核源项目清理后健康状态"], "expected": ["公共表 116/116", "审计封存 2/2、资产 4/4、Neo4j 3/3、MinIO 1/1", "前端、后端和 n8n 均返回 200"], "evidence": ["docs/validation/WP13_DEPLOYMENT_BACKUP_RECOVERY_EVIDENCE.md"], "result": "PASS_LOCAL", "notes": "未在 WP14 重复执行 4.2G 离线包恢复演练。" }, { "id": "WP14-UAT-016", "module_ids": ["WP-02", "WP-14"], "title": "纯查看者界面隐藏写操作入口并明确只读模式", "actor": "viewer", "acceptance_level": "LOCAL_ENGINEERING", "preconditions": ["查看者登录", "WP14-DEF-002 修复已加载"], "steps": ["打开数据研发中心", "检查可见卡片", "直接访问用户管理页"], "expected": ["隐藏新建采集和治理评审", "显示 viewer 只读提示", "用户管理页跳转 404 且 API 返回 403"], "evidence": ["WP14_UAT_HANDOVER_EVIDENCE.md#角色与权限", "WP14-DEF-002"], "result": "PASS_LOCAL", "notes": "后端权限始终为最终安全边界。" }, { "id": "WP14-UAT-017", "module_ids": ["WP-02", "WP-14"], "title": "企业实际用户、角色和责任人配置", "actor": "enterprise_acceptance", "acceptance_level": "ENTERPRISE_FORMAL", "preconditions": ["企业提供人员名单", "验收负责人确认职责分工"], "steps": ["创建或导入企业用户", "配置设备资产管理员、治理人员和查看者", "由各角色执行职责内场景"], "expected": ["角色和责任矩阵与企业组织一致", "没有越权或职责空缺"], "evidence": ["企业签字版用户角色矩阵", "企业账号验收记录"], "result": "BLOCKED_EXTERNAL", "notes": "当前只有本地示范账号,不能替代企业人员验收。" }, { "id": "WP14-UAT-018", "module_ids": ["WP-03", "WP-04", "WP-05", "WP-06", "WP-07", "WP-08", "WP-09", "WP-11"], "title": "企业真实设备数据端到端治理闭环", "actor": "enterprise_acceptance", "acceptance_level": "ENTERPRISE_FORMAL", "preconditions": ["企业只读数据源和脱敏样本到位", "字段映射、质量阈值和责任人已确认"], "steps": ["采集真实设备、维修、故障和告警数据", "完成资产、语义、匹配和质量处理", "关闭首批真实质量问题并核对指标"], "expected": ["资产入账率和责任覆盖率均不低于 95%", "源编码、回滚和来源定位率为 100%", "首批真实问题闭环率不低于 80%"], "evidence": ["企业真实数据 UAT 报告", "差异清单和整改时间线"], "result": "BLOCKED_EXTERNAL", "notes": "本地示范数据不能替代企业真实数据 UAT。" }, { "id": "WP14-UAT-019", "module_ids": ["WP-10"], "title": "企业授权范围、合规模型和黄金集验收", "actor": "enterprise_acceptance", "acceptance_level": "ENTERPRISE_FORMAL", "preconditions": ["真实业务域授权配置完成", "合规模型环境可用", "十项黄金集已绑定真实对象"], "steps": ["由设备专家执行搜索和问答黄金集", "由越权角色执行禁止访问案例", "复核答案、引用、拒答和查询审计"], "expected": ["有答案场景引用率 100%", "越权证据不返回", "证据不足和模型不可用场景不生成确定性答案"], "evidence": ["企业专家签字的黄金集结果", "授权与审计记录"], "result": "BLOCKED_EXTERNAL", "notes": "当前黄金集仍为待企业绑定模板。" }, { "id": "WP14-UAT-020", "module_ids": ["WP-12", "WP-13"], "title": "企业断网主机安装和灾备策略验收", "actor": "enterprise_acceptance", "acceptance_level": "ENTERPRISE_FORMAL", "preconditions": ["真实断网干净主机到位", "企业密钥、备份介质、RPO/RTO 和变更窗口已批准"], "steps": ["在真实主机安装签名离线包", "执行企业规模备份恢复", "执行失败回退和安全抽样"], "expected": ["安装和恢复各成功一次", "RPO/RTO 达到企业批准值", "密钥、备份和审计责任完成交接"], "evidence": ["企业环境恢复演练报告", "变更审批和安全签字"], "result": "BLOCKED_EXTERNAL", "notes": "本地恢复演练不能形成企业 RTO 承诺。" }, { "id": "WP14-UAT-021", "module_ids": ["WP-14"], "title": "培训、正式签字和生产运维移交", "actor": "enterprise_acceptance", "acceptance_level": "ENTERPRISE_FORMAL", "preconditions": ["企业 UAT 已完成", "P0 缺陷为 0", "接收人名单和发布窗口已批准"], "steps": ["完成用户和运维培训", "逐项核对移交清单", "由产品、验收、技术和运维负责人签字"], "expected": ["培训签到和演练记录齐全", "代码、包、配置、备份和责任全部交接", "正式验收状态有明确签字"], "evidence": ["签字版 UAT 报告", "签字版移交清单和培训记录"], "result": "BLOCKED_EXTERNAL", "notes": "当前已形成材料,等待企业人员实施和签字。" } ] }