Files
prop-ai-hr/docs/P0_PILOT_ACCEPTANCE_CHECKLIST.md

229 lines
14 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# P0 试点验收模板
> 用途:每个正式试点窗口的执行清单。2026-07-18 的旧名单、旧时间窗和固定码说明不再在仓库留存;需要追溯时查 Git 历史。
>
> 当前范围和完成定义以 [AI陪练完整交付计划](AI陪练完整交付计划-20260724.md) 为准,生产发布/回归以 [BRD 生产迁移 Runbook](BRD_PRODUCTION_MIGRATION_RUNBOOK.md) 为准。本模板不能将本地开发固定验证码、seed 或测试账号写成正式试点证据。
## 一、试点批次与角色清单
在启动窗口前由项目负责人在受控系统登记项目、起止日、负责人和测试账号;本仓库只保留角色要求,不保存姓名、手机号、验证码或 token。
| 验收角色 | 最小数量 | 必须具备的能力 |
|---|---:|---|
| 员工正例 | 1 | 当前项目在职、可完成训练与每日题 |
| 主管正例 | 1 | 当前项目带教范围、可查看复盘并派发专项 |
| 员工越权反例 | 1 | 无主管权限,用于验证主管页与写接口均被拒绝 |
| Android App-Plus 真机样本 | 2 | 一台 Android 10 基线机型和一台当前主流机型,均安装本批同一签名 APK |
| iOS App-Plus 真机样本 | 0 或 2 | 仅当本批明确包含 iOS 原生包时启用;不得拿 H5 Safari 代替原生包验收 |
| H5 兼容样本 | 0 或 2 | 仅当本批包含 H5 发布时启用;iOS Safari 与 Android Chrome 各一台,不与 App-Plus 结果合并 |
试点批次:`<项目名称>`
统计窗口:`<YYYY-MM-DD>` 至 `<YYYY-MM-DD>`
本批交付面:`Android App-Plus / iOS App-Plus / H5`(逐项勾选;未勾选的交付面不得写入通过结论)
版本证据:`APK version/versionCode/SHA-256`、`后端 JAR SHA-256`、`管理端/H5 构建哈希`、`schema 预检结果`、`回滚点`
内容负责人 / 业务审核人 / 试点负责人:`<在受控系统登记>`
---
## 二、P0-1 正式 OTP 权限正反例
### 登录验收
使用生产短信 OTP 的实际流程,先触发获取验证码再登录。获明确风险批准的固定码试点可验证功能链路,但不能作为生产安全验收;手机号码和验证码仅留在受控测试系统,不能写入本文件、截图或提交记录。
#### 正例:员工端登录流程
- [ ] **员工正例账号**(当前项目一线员工)→ 输入手机号 → 获取验证码 → 完成正式 OTP → 登录成功
- [ ] 自动跳转"同步岗位"页 → 匹配成功(岗位:保洁员,职级:一线) → 自动跳转"每日安排"(today页)
- [ ] 底部tabBar显示:每日安排、对练、问师傅、我的(4个tab,无主管工作台)
- [ ] "我的"页显示:岗位=保洁员,无"进入主管工作台"按钮
#### 正例:主管端登录流程
- [ ] **主管正例账号**(当前项目主管/项目经理)→ 输入手机号 → 获取验证码 → 完成正式 OTP → 登录成功
- [ ] 自动跳转"同步岗位"页 → 匹配成功(岗位:项目经理,职级:项目经理) → 自动跳转"主管工作台"(supervisor/index页)
- [ ] 顶部显示:工作台、指派、团队、复盘(4个主管tab)
- [ ] "我的"页有"进入学员模式"按钮
#### 正例:主管切换学员模式
- [ ] **主管正例账号** → 登录主管工作台 → 点击"我的" → "进入学员模式"
- [ ] 跳转至员工端"每日安排"页,底部tabBar变为员工侧4个tab
- [ ] 左上角显示"当前为学员模式" + "返回主管工作台"按钮
- [ ] 点击"返回主管工作台" → 跳回主管工作台,岗位身份未改变(仍为主管)
### 权限正例:主管功能访问
- [ ] **主管正例账号** → 主管工作台 → 点击"指派" → 进入派发专项页
- [ ] 支持多选团队成员(≤100人),显示当前项目在职成员列表
- [ ] 快捷日期选择器显示:当天、明天、3天内、7天内
- [ ] 场景下拉框显示已启用场景(如生活顾问等)
- [ ] "派发"按钮可用,点击后显示loading → 成功提示"已派发给X人"
- [ ] **主管正例账号** → 主管工作台 → 点击"考试" → 进入考试管理页
- [ ] 点击"创建考试" → 输入考试标题、选择岗位、添加题目 → "发布"按钮可用
- [ ] 发布后显示"已发布" → 返回考试列表,新考试出现在列表中
- [ ] **主管正例账号** → 主管工作台 → 点击"团队" → 显示团队成员列表
- [ ] 列表显示成员姓名(非编号)、岗位、最近训练时间
- [ ] 点击某成员 → 进入成员详情页,显示训练记录、得分趋势
### 权限反例:越权访问拦截
- [ ] **员工越权反例账号**(无主管权限)→ 手动构造URL访问 `/pages/supervisor/index` → 被路由守卫拦截,跳转回员工端today页,显示toast"无权访问"
- [ ] **员工越权反例账号** → 手动构造URL访问 `/pages/supervisor/assign/index` → 被拦截,提示"无权访问"
- [ ] **员工越权反例账号** → 手动构造URL访问 `/pages/supervisor/exams/index` → 被拦截,提示"无权访问"
- [ ] 验证后端接口:用员工token调用 `/api/aihr/mobile/practice/assignments/batch`(派发接口) → 返回403或业务错误"权限不足"
### 每日题去重与轮换
- [ ] **员工正例账号** → 连续7天登录 → 每天查看"每日安排"的每日题
- [ ] 记录每天的3道题目(题面/场景),验证:
- 7天内无重复题面(即使同一场景)
- 同一天刷新页面,题目不变(确定性)
- 次日00:00后刷新,题目切换为新的一批
---
## 三、P0-2 真机能力验收
**设备矩阵**:
- 当前 Android 正式试点:同一签名 APK 至少覆盖 Android 10 基线机型和一台当前主流机型;所有 App-Plus 项目均在这两台设备执行。
- 本批包含 iOS 原生包时:同一签名包至少覆盖 iOS 15 基线机型和一台当前刘海或灵动岛机型;结果独立记录。
- 本批包含 H5 时:另用 iOS Safari 和 Android Chrome 各一台执行 H5 兼容验收;微信内置浏览器仅在业务明确要求时加入,不代替系统浏览器或原生包。
- 每条证据必须记录交付面、设备型号、系统版本、应用版本和结果;不得把一个交付面的成功外推到另一个交付面。
### 语音输入与播报
- [ ] **真机体验样本** → 问师傅页 → 点击麦克风图标 → 允许麦克风权限
- [ ] 说话5秒("今天客户投诉了停车费问题怎么处理") → 停止录音 → 文本框自动填入识别后的文字
- [ ] 点击"搜索" → 等待回答 → 点击"播报"按钮 → 听到TTS语音播报回答内容
- [ ] 首次拒绝麦克风权限 → 页面明确提示可再次授权或改选音频,不启动录音;再次点击仍可申请权限
- [ ] 选择“以后不再询问”后再次点击麦克风 → 页面明确引导到系统设置,不反复弹出无效授权框
- [ ] 真机验证降级:飞行模式 → 点击"播报" → 检查是否降级到浏览器`speechSynthesis`(iOS Safari可能无声,属已知限制)
- [ ] 真机验证录音兜底:长按5秒说话但ASR接口超时 → 检查是否显示"选择音频文件"兜底选项
- [ ] 系统音频/附件选择器取消 → 页面安静回到可操作状态,不显示失败;选择器权限或读取失败 → 显示稳定中文错误并可重试
- [ ] 弱网或接口超时 → 当前请求终止、loading 结束、原输入保留;恢复网络后可重试且不重复提交
- [ ] 会话过期返回 401 → 清理旧登录态并回到登录页;完成 OTP 重登后返回原业务页,403 业务拒绝不得误退出
- [ ] 录音、转写、播报或附件选择期间切到后台再回前台 → 不残留播放/录音/loading;系统权限页和文件选择器返回时不得误取消当前选择
### 图片/视频上传
- [ ] **真机体验样本** → 问师傅页 → 点击"上传图片"图标 → 从相册选择一张图片(≤10MB)
- [ ] 页面显示图片预览缩略图 + "仅用于本次现场分析"提示
- [ ] 输入问题"这个地方怎么清洁" → 点击"搜索" → 回答中包含对图片内容的分析
- [ ] **真机体验样本** → 问师傅页 → 点击"上传视频"图标 → 从相册选择一段视频(≤100MB,<30秒)
- [ ] 页面显示视频预览 + "仅用于本次现场分析"提示
- [ ] 输入问题"这个操作对吗" → 点击"搜索" → 回答中包含对视频内容的分析
### 总结卡下载
- [ ] **真机体验样本** → 完成一次对练 → 查看训练总结页
- [ ] 点击"下载总结卡"按钮 → loading状态显示
- [ ] iOS:检查是否弹出系统分享菜单,选择"存储图像" → 打开相册验证PNG图片已保存
- [ ] Android:检查是否弹出下载确认,点击"下载" → 打开文件管理器验证PNG图片已保存到Downloads目录
### 全局字号三档
- [ ] **真机体验样本** → 登录员工端 → 点击"我的" → 点击"字体大小"
- [ ] 选择"标准" → 返回today页,目测卡片标题、正文字号正常(16px/14px左右)
- [ ] 再次进入"字体大小" → 选择"大" → 返回today页,目测字号明显增大(约1.12倍)
- [ ] 再次进入"字体大小" → 选择"超大" → 返回today页,目测字号最大(约1.25倍)
- [ ] 退出重新登录 → 字号设置仍为"超大",验证持久化
- [ ] 真机验证:切换到"超大"后,依次访问:问师傅页、对练页、问题榜页、我的页 → 所有页面字号同步放大,无遗漏页面
### 键盘与读屏(可访问性)
- [ ] iOS VoiceOver开启 → 登录员工端 → 双击"每日安排"tab → 听到"每日安排,已选中"
- [ ] 滑动到卡片 → 听到卡片标题朗读
- [ ] Android TalkBack开启 → 登录员工端 → 双击"问师傅"tab → 听到"问师傅,已选中"
- [ ] 外接蓝牙键盘 → Tab键可切换焦点,Enter键可激活按钮
---
## 四、P0-3 严格试点窗口统计
**试点窗口**: 以本批已登记的起止日期为准
**完成定义**: 每人≥10次训练(对练 + 每日题,不含问师傅单次查询)
**样本目标**: 20人完成,≥80%完成率
### 训练量统计
- [ ] 以正式 CSV 导出记录当前已完成人数、试点总人数和完成率,不把 seed 或旧批次数据计入
- [ ] 窗口结束前 5 天复查:已完成人数/目标20人,完成率是否≥80%
- [ ] 若完成率<80%,召集主管催促:每位主管至少带2名员工完成10次训练
### 人工校准样本
- [ ] 目标:20份对练录音 → 主管先打分 → AI再打分 → 对比分差
- [ ] 窗口结束前 7 天复查:已收集校准样本数/20,AI-人工分数段一致率是否≥70%
### SOP评审样本
- [ ] 目标:问师傅回答可用率≥80%
- [ ] 以本批已签字样本计算可用率,不沿用历史样本结论
- [ ] 窗口结束时再抽查20份问师傅记录,验证可用率稳定在80%+
### 满意度收集
- [ ] 窗口结束后1周内,向所有完成≥10次训练的员工发放满意度问卷
- [ ] 收集维度:功能易用性、语音识别准确度、AI回答质量、对实际工作的帮助
- [ ] 目标:≥15份有效问卷,平均满意度≥4/5分
---
## 五、验收通过标准
### P0-1 权限正反例
- [ ] 员工/主管/项目经理登录流程100%通过
- [ ] 主管切换学员模式往返正常,岗位身份不可伪造
- [ ] 主管功能(派发/考试/团队)访问正常
- [ ] 员工越权访问主管功能被拦截,3个反例全部拦截成功
### P0-2 真机能力
- [ ] Android App-Plus 两台设备均完成语音录音、ASR、TTS、图片/视频/文档、受控下载、字号持久化和前后台恢复
- [ ] Android TalkBack 和外接键盘至少在一台设备完成核心路径验证
- [ ] 若本批包含 iOS App-Plus,两台 iOS 设备执行同一能力矩阵,并另行完成 VoiceOver 验收
- [ ] 若本批包含 H5,iOS Safari 与 Android Chrome 各完成一次同等 H5 能力矩阵;结果不得与 App-Plus 合并
- [ ] 文件和媒体失败时只允许重新鉴权后重试或回到受控在线内容,不产生可复制、长期复用的原文件链接
### P0-3 严格试点窗口
- [ ] 窗口结束时,完成率≥80%(≥16人完成≥10次训练)
- [ ] 人工校准样本≥20份,AI-人工分数段一致率≥70%
- [ ] SOP评审可用率稳定在≥80%
- [ ] 满意度问卷≥15份,平均≥4/5分
---
## 六、验收执行时间表
| 相对时间 | 里程碑 | 责任人 | 状态 |
|---|---|---|---|
| 窗口开始前 | P0-1权限正反例全部验证 | 开发+测试 | 待执行 |
| 窗口开始前 | P0-2 按本批交付面执行设备矩阵;Android App-Plus 固定 2 台 | 测试 | 待执行 |
| 窗口中点 | P0-3中期检查(完成率/校准样本) | 项目经理 | 待执行 |
| 窗口结束前 5 天 | P0-3末期检查(完成率冲刺) | 主管团队 | 待执行 |
| 窗口结束日 | 统计最终数据 | 项目经理 | 待执行 |
| 窗口结束后 7 天 | 满意度问卷收集完成 | 项目经理 | 待执行 |
| 问卷完成后 | P0验收报告输出 | 开发+项目经理 | 待执行 |
---
## 七、风险与应急预案
### 风险1:完成率不达标
- **触发条件**: 窗口结束前 5 天完成率<50%
- **应急预案**:
- 主管团队每人认领2-3名员工,1对1催促
- 开放"每日题+1次对练"任务包,完成即可算2次训练(加速达标)
- 必要时经业务负责人批准延长窗口,并重新登记起止日期
### 风险2:真机能力不可用
- **触发条件**: P0-2验证时iOS/Android某项能力失败率>50%
- **应急预案**:
- 语音失败 → 检查ASR/TTS接口配额,切换备用提供方或降级到纯文本
- 上传失败 → 检查OSS配额,临时扩容或限制单日上传次数
- 下载失败 → 重新鉴权后重试或回到受控在线内容;不得复制原文件地址、OSS 地址或长期下载链接
- 字号/读屏失败 → 记录为P1缺陷,不阻塞试点(可访问性为增强项)
### 风险3:越权拦截失效
- **触发条件**: P0-1反例验证时,员工成功访问主管功能
- **应急预案**:
- 立即下线生产环境,回滚至上一稳定版本
- 修复路由守卫+后端权限校验,重新发布
- 验证通过前,禁止员工账号登录(仅允许主管账号)
---
**模板状态**: 等待本批项目、窗口、受控测试身份和业务审核人登记;具体完成事实只回写到对应试点报告与 [BRD_IMPLEMENTATION_AUDIT.md](BRD_IMPLEMENTATION_AUDIT.md)。