万语智教 · Web 与 App 使用测试手册
版本:2026-10-28 · 固定代码基准
ea9c2cd· 内部测试版,不是正式商用说明书。本手册回答:从哪里进入、用什么账号、每一步点什么、应看到什么、哪里尚未完成。
01 · 先读这六件事
- 后台现在不需要 TOTP。 本基准的迁移 024 已移除管理员 MFA;本次只读检查线上数据库已无相关字段,线上登录页也是邮箱+密码。此前聊天中“必须配置 TOTP”的说明不再适用于此版本。
- 预约课可以用测试支付,不是真实扣款。 首尔环境
PAYMENT_SANDBOX=enabled。只走明确标注为测试的页面;不要输入真实银行卡或支付账号。 - 可以进入课堂,但不能真实视频通话。 当前
RTC_SANDBOX=enabled,可测试租约、白板、课件和文字互动;TRTC、录制及回放未接入。 - 付费数字内容购买尚未实现。 资源/课程/试卷“发布成功”不等于可以买;免费领取与授权访问可另行测试。
- 旧安装包不是本基准版本。 先前生成的 Android APK 和未签名 iOS IPA 基于旧提交
9d0936b;必须重新构建才能验收本手册中的新版 App 行为。未签名 IPA 不能直接安装 iPhone。 - 不要把接口演练当作 UI 验收。 仓库已有接口演练证据;本次没有替你在三端执行所有按钮、资金、审核或账号操作。以下步骤是供你逐项执行的验收方案。
状态图例
| 标记 | 含义 | 你应该如何测试 |
|---|---|---|
| 已实现/有演练证据 | 已有代码,仓库记录真实测试环境 API 演练成功 | 仍需执行 Web/App UI 步骤,核对状态及持久化 |
| 已实现/待手测 | 有实现及部分自动化证据,没有本次完整 UI 验收 | 按步骤测试,出现失败就登记,不算已验收 |
| 部分完成 | 仅支持特定范围,或依赖测试替身 | 只验收已明确支持的部分 |
| 未实现/未开放 | 没有对应业务能力或入口被门禁禁用 | 记录为不支持,不反复点击或寻找隐藏开关 |
| 前置阻塞 | 权限、版本、数据、时间、第二账号等未准备 | 先解除前置条件,不能误报产品失败 |
02 · 入口、账号与测试材料
| 使用者 | 入口 | 登录方式 | 注意 |
|---|---|---|---|
| 学生 | Android/iOS App | 邮箱验证码 | 没有独立学生 Web 业务端;不要把教师站当学生站 |
| 教师 | 教师 Web;App 切换教师身份 | 邮箱验证码 | 切换身份不等于获得教师审核资格 |
| 运营管理员 | 运营后台 | 管理员邮箱+密码 | 当前不需要 TOTP |
| 测试邮件查看者 | Mailpit | 独立的 HTTP Basic 认证 | 验证码通常在测试邮箱,不一定发到真实 Gmail |
| 技术人员 | API 就绪检查 | 无业务账号 | 返回 ready 不能证明整条业务链已通过 |
现有管理员:willdonner4@gmail.com,使用此前设置的密码。手册不收录密码、验证码、TOTP 密钥、SSH 密码或数据库凭据。
当前权限前置阻塞:2026-10-28 只读核查,该账号保留 super_admin,但新目录发布后缺少 compensation.read、compensation.write、evidence.access、reconciliation.execute 四项权限。教师报酬、原件查看和渠道对账相关测试可能失败。本次没有修改授权。项目没有“角色名为 super_admin 就自动绕过所有权限”的机制;需要授权维护者补齐。当前数据库登记 41 项权限;不要用旧的“37 项”作为验收总数。
测试前准备清单
- 准备三个彼此不同的业务身份:学生 S、教师 T、管理员 A;测试资金流程还需要第二管理员 B,不能用 A 的另一窗口冒充 B。
- 学生/教师使用你控制的测试邮箱。测试环境可使用专门测试地址,但真实邮箱收不到验证码时先查 Mailpit,不连续轰炸发送。
- Mailpit 账号与密码需要单独取得;它不是运营后台管理员密码。没有 Mailpit 访问条件时,学生/教师登录测试标记为“环境阻塞”。
- 使用无痕窗口或独立浏览器配置隔离教师和管理员会话;学生 App 使用另一台设备或模拟器。先把账号时区统一为
Asia/Shanghai。 - 准备不含个人敏感信息的小 PNG、PDF、原创练习题及测试回单。所有对象名称以
UAT-20261028-开头;不要上传真实身份证、银行资料或受限教材。 - 准备两节不同的预约:预约 A 用于课堂及结算;预约 B 用于取消与退款。不要取消即将上课的 A。
- 时间采用界面显示的账号时区;记录时同时写日期、时区和 UTC 偏移。金额核对币种,不只比较数字。
- App 先核对构建提交。旧 APK 位于
build/mobile-release/,虽然能安装测试,但不能冒充ea9c2cd新版;iOS 需另行签名或使用已配置的开发运行方式。
推荐测试节奏
| 阶段 | 建议安排 | 退出条件 |
|---|---|---|
| 第一天早上 | 登录、教师入驻、审核、服务、报酬、排期 | 有一节已发布且可约的测试服务 |
| 第一天随后 | 学生学习、免费资源、练习考试、预约 A/B、测试支付、改期、退款 | 预约 A 确认;B 退款有明确结果 |
| 第二天约定时间 | 设备检查、双方入室、白板课件聊天、课后核验、评价 | 预约 A 完成、评价与课后记录可查 |
| 观察期后 | 收款资料、应付、制单、另一管理员复核与登记 | 教师收益显示已付,付款凭据可追溯 |
不能在正常 UI 中把几天流程压缩成几分钟。 当前约课有至少提前 24 小时的约束;课堂在开课前 15 分钟开放;应付有观察期。仓库演练脚本通过修改测试库时间戳跳过等待,这是技术测试,不是用户操作,也不是本手册要求你在数据库里改时间。
03 · 看图认识三端
实际线上登录页

图 1|2026-10-28 实际线上教师登录页。邮箱验证码登录;未提交登录请求。

图 2|2026-10-28 实际线上后台登录页。当前是邮箱和密码,没有 TOTP 步骤。
Web 界面定位图:视觉夹具,不是业务实测截图

图 3|既有视觉验收截图 UI20(2026-10-27 UTC 归档)。用于识别侧栏、课表和快捷操作;“林老师、Alex、课时、金额、日期”均为夹具示例,不代表你的账号或实时数据。?visual=1 仅是开发视觉夹具,不能用于业务验收。

图 4|既有视觉夹具 UI26:左侧进入教师管理,中间列表选择记录,右侧核对材料及结论。以线上实际字段为准。

图 5|既有视觉夹具 UI49:识别后台十个模块。示例统计不应作为实际数据核对依据。
App 设计参考图:不是 App 真机截图

图 6|设计板 00。学生底部五项是“学习、找老师、资源站、课表、我的”;教师身份是“工作台、课表、消息、收益、我的”。App 仍未完成逐屏视觉和真机验收,实际布局可能不同。

图 7|设计板 08,用于理解“教师详情 → 服务 → 日期 → 时段 → 确认”的操作顺序;图中日期、价格和按钮状态仅为设计示例。
04 · 全业务流程地图
教师准备链:验证码登录 → 完善资料 → 上传证明 → 提交入驻 → 后台审核 → 创建服务 → 提交上架 → 后台配置报酬并批准 → 设置可约时间。
学生履约链:验证码登录 → 找老师 → 选服务与时段 → 占位/待支付订单 → 测试支付 → 预约已确认 → 课前检查 → 双方进入课堂 → 白板/文字/课件 → 下课待核验 → 后台裁定 → 完课 → 评价。
退款分支:另一节已支付预约 → 合规取消/退款申请 → 后台审批 → worker 发起渠道退款 → 订单退款完成。取消成功 ≠ 退款到账。
教师收款链:添加收款资料 → 后台受控查看并审核 → 完课产生应付 → 等待观察期 → 制单 A → 复核 B → 执行/线下付款 → B 登记回单 → 教师收益已付。登记“已付”不代表系统已经转账。
学习链:免费领取或已授权内容 → 我的学习/资源 → 阅读或受支持的内容 → 练习/考试 → 解析、错题、收藏 → 学习报告。付费数字购买与视频课目前断开。
05 · 账号登录与基础检查
A01 · 管理员登录【已实现/待本次 UI 手测】
- 打开运营后台,确认不是带
?visual=1的开发夹具。 - 输入
willdonner4@gmail.com和已设置密码,点击“登录”。 - 应进入概览并显示当前账号可访问的菜单;此版本不应再要求动态验证码。
- 刷新页面,确认仍能读取账号及权限;检查“系统设置 → 角色权限”。
- 若 401,先核对密码;若进入后某模块 403,记录权限码及请求编号,不当作密码错误。不要在手册或截图中记录密码。
通过标准:真实登录成功、刷新成功、菜单依据真实权限呈现。阻塞项:前述四项新权限尚未补齐。
A02 · 学生 App 登录【已实现/待手测】
- 打开最新 App → 底部“我的” → 登录。
- 输入学生测试邮箱,点击“发送验证码”。
- 在 Mailpit 搜索收件人邮箱,选择此次发送时间之后的邮件,读取 6 位验证码;不要用历史邮件。
- 返回 App 输入验证码并登录。首次登录会创建普通用户,不需要管理员预先创建学生。
- 在“设置”填写时区、语言及学习目标,保存后退出页面再进入,确认持久化。
- 完全关闭再打开 App,检查登录恢复;更换账号后不能看到前一个学生的订单、草稿或下载内容。
通过标准:邮箱与用户身份一致,私有数据隔离。验证码过期/无效应有明确错误;同一验证码不能重复消费。
A03 · 教师登录与身份切换【已实现/待手测】
- 在独立浏览器窗口打开教师 Web,输入教师 T 的邮箱。
- 发送验证码 → Mailpit 取码 → 完成登录。
- App 使用相同教师邮箱登录,“我的”中选择切换教师身份。
- 对照教师 Web 与 App 的名称、审核状态、课表及消息,确认是同一账号。
- 新账号未审核时出现“未申请/待完善”是正常状态;不能仅切换身份就授课。
通过标准:Web/App 同账号资料一致,不越权获得教师资格。
06 · 教师入驻、上架与排期
T01 · 完善教师资料【已实现/API 演练证据】
- 教师 Web →“设置”中的个人资料/教学资质;或 App 教师“我的 → 个人简介/审核与准入”。
- 未建立资料时点击创建资料,填写姓名/显示名、授课语言、简介、教学特点等当前表单要求。
- 保存后返回并重新打开,逐项核对。
- 提交前若显示“资料有未保存修改”,先保存;两个设备同时编辑时,版本冲突应要求重新读取,不覆盖另一端内容。
通过标准:资料持久化,状态从未申请转为草稿/待完善;尚不能公开当作审核通过教师。
T02 · 上传材料并提交申请【已实现/API 演练证据】
- 在审核与准入中上传测试身份证明、资格证明;仅用不含真实个人信息的测试样本。
- 等待文件完成上传及完整性/类型检查,核对文件列表;处理中不是已审核。
- 选取本次材料,提交入驻申请。
- 应变为“审核中/submitted”;保存申请对应账号、时间和材料名称。
- 另一教师账号不能查看这些私有证明原件。
边界:当前本地磁盘存储,执行 SHA-256 与真实文件类型校验,没有病毒扫描;不要用恶意文件测试。“文件 ready”不等于资质已批准。
T03 · 后台审核教师【已实现/API 演练证据;原件权限可能阻塞】
- 管理员 →“教师管理”,按教师姓名或审核中状态定位 T。
- 选择该记录,核对简介、语言、提交材料及每项处理状态。
- 需要查看原件时填写访问理由;当前账号缺
evidence.access时先记权限阻塞,不能盲审。 - 输入明确审核理由,选择通过或驳回并确认。
- 教师端刷新,核对状态变为已通过/未通过;查看审核历史和消息。
- 可先做一次驳回→教师修改→重提→批准,验证完整反馈环路。
通过标准:双方状态一致、理由可追溯;材料尚未可用时不错误批准。
T04 · 创建课程服务【已实现/API 演练证据】
- 教师 Web →“设置 → 课程服务”或快捷操作;备用直达
/services。App →教师“我的 → 课程服务设置”。 - 新建
UAT-20261028-中文会话,例如 50 分钟、课间 10 分钟、售价 CNY 120;这些是测试输入,不是现有固定价格。 - 保存草稿,重新打开确认标题、时长、币种和价格。
- 点击提交审核,填写理由,应变为 submitted。
- 保存中/结果未知时只“重试原请求”,不要连续新建重复服务;想离开有修改页面时应提示确认。
T05 · 配置报酬并批准服务【已实现/API 演练证据;当前报酬权限阻塞】
- 后台教师管理中的课程服务审核入口,或服务审核列表,定位上述服务。
- 读取服务版本和报酬配置;确认两者版本一致后,设置例如教师报酬 CNY 80/节,并写配置依据。
- 先保存报酬,再重新读取服务;确认售价、报酬币种均启用。
- 填写上架审核理由,点击批准。
- 教师端显示已发布;学生“找老师”能够找到教师及该服务。
当前账号注意:缺 compensation.read/write,先完成权限维护再测试。不要将“能审核教师”误认为“能配置教师报酬”。
T06 · 设置可约时间【已实现/API 演练证据】
- 教师 Web →“设置可约时间”(
/availability);App →教师“我的 → 可约时间”。 - 设置
Asia/Shanghai,填写生效日期、每周工作日及时间段,例如每天 09:00–21:00。 - 保存并重新读取;添加一天例外休息日,确认该日不可预约。
- 学生选择未来至少 24 小时之后日期查看时段。无时段时先核对审核、服务发布、规则日期、时区、已有占用,不能只反复刷新。
通过标准:学生看到的是有效可约时段,已占位/已确认时段不会重复卖出。所有时间以服务器返回和当前规则为准。
07 · 学生预约、支付、改期与退款
S01 · 浏览和搜索【已实现/待手测】
- App“找老师”,浏览公开审核教师;输入姓名、课程相关关键词,调整支持的筛选项。
- 打开教师详情,查看介绍、语言、评价、服务时长、价格与可约时间。
- 进入“学习 → 课程目录”和“资源站”,核对列表、详情、分页、空状态。
- 搜索不存在的名称应显示空结果,而不是样例数据。设计图上的“林老师、128 条评价”不保证是真实环境记录。
S02 · 预约 A 并完成测试支付【已实现/API 演练证据】
- 选定 T 的已发布服务,选取至少未来 24 小时后的时段。
- 确认日期、时区、教师、时长、币种、金额与取消规则,点击预约确认。
- 应生成“占位中/held”预约和待支付订单,显示服务器截止时间;截图记录订单号和预约号。
- 点击“去支付”,选择当前提供的测试渠道,外部浏览器打开测试收银页。
- 仅确认测试支付;返回 App,等待刷新或手动读取状态。
- 预约应变为 confirmed,订单支付 paid、履约 fulfilled;教师课表应出现同一学生和时间。
- 若网络中断,先从“我的 → 订单售后”和课表读取事实,不要立即重复付另一笔。
通过标准:学生订单、学生课表、教师 Web/App 三处一致。只看到支付网页“成功”不够。当前不支持真实商户支付。
S03 · 占位超时【已实现/待手测】
- 再选择另一个时段生成待支付预约,不支付。
- 等界面倒计时与服务器截止时间过去,让 worker 完成处理。
- 刷新应显示 expired/已过期,相应时段应释放。
- 不测试过期链接真实扣款。支付晚到、paid_unfulfilled 的边界仍应由专项测试核对,不算正常付款通过。
S04 · 改期【已实现/待手测】
- 使用已确认、仍满足至少开课前 24 小时规则的预约,打开“课表 → 预约详情 → 改期”。
- 选新时间,填写理由并提交。
- 对方登录查看待处理请求,在同意前原预约时间仍应保留。
- 教师 Web 工作台待处理请求/课表,或教师 App 课表,选择同意。
- 双方刷新,确认新时间生效、原时段释放;请求状态为 accepted。
- 用另一节测试拒绝/申请人撤销,确认不会错误改动原课表。临近开课被要求联系客服是规则结果,不是必然缺陷。
S05 · 预约 B 取消并退款【已实现/API 演练证据】
- 单独预约并测试支付 B,确保距离开课至少 24 个实际小时。
- 学生“课表 → B 详情 → 取消”,核对取消规则并填写理由确认。
- 预约应 cancelled;订单售后应出现退款申请,但此时不能宣称退款到账。
- 后台“交易财务 → 退款拒付”或订单退款详情,定位同一订单和退款号。
- 审核员核对可退金额、币种、原因,填写审批理由并批准。
- 等 worker 经测试渠道处理,刷新看到退款成功,订单退款状态 full(全退)或对应部分退款结果。
- 学生返回“订单售后”核对相同事实;重复刷新不得产生第二次退款。
边界:仅是测试渠道退款,不是真实银行卡退款;低于 24 小时取消应走客服/争议流程。部分退款、数字权益撤销与退款分摊需要另做专项验收,不能从一次全额退款外推通过。
08 · 课堂、完课、评价
C01 · 课前设备检测【部分完成】
- 开课当天在教师 Web 课表或 App 预约详情找到 A。
- 进入课前检查,逐项测试摄像头预览、麦克风输入、扬声器播放及网络提示。
- 按需授予本次摄像头/麦克风权限;拒绝权限时应出现明确说明,不能崩溃。
- 设备预览成功仅证明本机硬件可用,不证明双方音视频连通。
视觉缺口:现有 Web 设备页仍偏通用检测,尚未完整还原绑定预约信息的设计页。
C02 · 双方进入课堂【部分完成/API 演练证据】
- 到开课前 15 分钟内,学生 App 与教师 Web 分别打开 A 的“进入课堂”。
- 提前过早时应提示课堂未开放;已取消/过期预约不应可进。
- 双方入室,界面应明确显示测试环境、音视频未接入。
- 两端各发送一句不同的测试消息,确认对方收到;教师画一条白板笔迹,学生端查看同步。
- 教师切换已 ready 的课件/页面,学生核对当前页;按当前角色允许的工具操作,不要求未授权学生能控制教师课件。
- 短暂断网后恢复,观察重连、同步状态和是否出现重复消息;“待同步”不能当作已送达。
- 保持十余分钟,检查每约 5 分钟续期,不因原 10 分钟租约过期无故掉线。
不支持:真实音视频、腾讯 SDK、录制/回放;同角色另一设备强制接管尚未开放。用第二设备占用同一身份,预期拒绝/提示占用,不要求踢出旧设备。
C03 · 下课与后台裁定【已实现/API 演练证据;手动结束未实现】
- 到课程计划结束后退出界面;不要把关闭页面当作业务完课。
- 课程结束约 5 分钟后,等待 worker 将缺少认证 RTC 证据的课程转入 pending_review/待核验。
- 后台“预约课堂”按预约号查 A,核对时间、事件与双方记录。
- 在完课评估/裁定中上传测试证据,等 ready,填写结论、学生退款金额、教师应付金额和明确理由。
- 选择符合事实的正常完课结论并确认;禁止为通过测试伪造真实业务证据。
- 双方刷新应显示 completed,后续应付以裁定及规则为准。
已知边界:POST /classrooms/{id}/end 和在线 presence 接口尚未实现;即使出现类似“结束课堂”的视觉控件,也不能认为存在完整手动结束流程。不能修改生产时间来加速。
C04 · 课后小结与评价【已实现/评价有 API 演练证据】
- 教师 Web“授课记录”或 App 教师“我的/授课记录”找到 A。
- 查看详情,填写课后小结,按页面选择是否发布;保存后重开核对。
- 学生在已完成预约详情查看已发布小结,按入口提交 1–5 星评价与文字。
- 刷新教师评价及预约详情核对;重复提交应按规则拒绝或保持原记录,不能增加重复评价。
- 取消或未完成课不得伪装成已完课评价入口。
09 · 教师课件、资源与结算
T07 · 课件上传与使用【已实现/API 演练证据】
- 教师 Web“课件库 → 上传课件”,或 App 教师工作台/课件入口。
- 上传受界面允许格式和大小限制的测试 PNG/PDF,等待完整性验证和转换。
- 状态 ready 后核对文件名称、页数、版本和缩略页。
- 打开课件关联入口,关联到指定预约;重新进入课堂确认可选择和翻页。
- 上传失败时显示失败及重试信息,不应显示虚假的页数或直接 ready。
T08 · 收款资料审核【已实现/API 演练证据】
- 教师 Web
/payout-accounts或 App 教师“我的 → 收款资料”,新增虚构测试收款资料。 - 选择与应付一致的币种,核对持有人、银行及账号,提交。
- 后台进入收款账号审核,先用受控查看填写理由,再核验完整资料并批准。
- 教师端显示 verified/已核验,列表按规则脱敏;完整账号查看应产生审计。
注意:不能使用真实账户做模拟出款;收款资料核验通过不代表已打款。
T09 · 教师应付与付款【部分完成/线下登记;API 演练证据】
- 后台“交易财务 → 教师应付”定位 A;教师“收益”查看对应金额、币种、冻结状态。
- 等待观察期后状态变为 eligible/可付;本手册不要求修改数据库。演练脚本曾跳过约 7 天等待,正常用户测试需等待或申请专用演练。
- 管理员 A 选择符合条件应付,创建付款单,核对教师、币种、已核验收款账号及金额,填写理由。
- 另一名管理员 B 登录付款审批工作台,读取最新版本,复核并批准,然后开始执行。
- 当前没有自动银行出款。仅在确有对应测试/线下结果时登记付款结果,填写执行号、付款参考号、测试回单及理由。
- 刷新后台及教师收益,核对 paid/已付及凭据;重复登记不得重复累加收益。
必要限制:同一人制单和复核被拒绝属于安全控制正常结果,超级管理员不应绕过。不要为赶测试把未付款的真实业务登记成已付。已付款争议复核接口仍未实现。
10 · 学习、资源、练习、考试
L01 · 免费资源领取和阅读【已实现/待手测】
- App“资源站”打开已发布免费资源,查看版本、授权范围、文件格式、是否允许下载。
- 免费领取,进入“我的 → 我的资源”,应出现当前账号有效授权。
- 打开 PDF/图片受支持阅读器,翻页,返回重开核对本机位置。
- 如果授权允许下载,进入下载页测试暂停、恢复、取消;退出账号后不得继续用旧账号授权下载。
- 对未授权/已撤销/过期内容应被拦截。测试版本撤销或退款权益变化需要专门样本,不从普通阅读成功推断。
不支持:付费数字订单购买、App Store/Google Play 内购核验与恢复购买。视频 VOD 播放令牌未实现;不要把播放器外观当成视频课可用。免费页面无数据是内容前置条件不足,不代表应显示假教材。
L02 · 课程目录与我的学习【部分完成】
- “学习 → 课程目录”,查看已发布课程和课时说明。
- 在“我的学习/我的学习库”检查已有授权课程、学习进度及支持的文字/图片内容。
- 有真实受支持内容时阅读并返回首页/学习报告,核对记录是否更新。
- 付费课程购买、视频播放作为“未实现”登记,不用尝试重复支付。
L03 · 专项练习、错题、收藏【已实现/待手测】
- “学习 → 专项练习”,选择科目/知识点或全部范围;无已发布题目时先由后台准备。
- 开始练习,选答案并提交,核对服务端判定、正确选项及解析。
- 故意答错一题,收藏另一题;到“我的 → 错题收藏”核对记录及分页。
- 返回学习报告,检查题量/正确率更新,不应一次重试记成两次答题。
- 网络提交结果未知时使用“重试原答案”;在明确拒绝前不要改答案重新生成另一条提交。
L04 · 模拟考试与恢复【已实现/待手测】
- “学习 → 模拟考试”,选择已发布试卷,核对题目数和时长后开始。
- 回答部分题目,切换前后题,检查保存/同步提示。
- 暂时断网继续选项,恢复网络后同步;本机草稿仅保存选项,不等于已提交服务器。
- 使用“检查并交卷”,确认交卷后显示服务端冻结评分和解析。
- “我的 → 历史成绩”查看本次记录、日期、分数及详情。
- 另开一场测试超时:到截止时间后不得继续提交新答案,应联网刷新最终结果。
- 双设备冲突时先阅读提示,再选择明确的接管/放弃本机草稿;不能假定考试接管与课堂接管是同一能力。
L05 · 学习报告与个人设置【已实现/待手测】
- 完成练习/阅读后进入“学习报告”,切换日期范围。
- 核对时长、练习量、正确率,进入知识点统计和历史成绩。
- 数据应来自该账号实际事件;知识点掌握算法尚未启用,不能把图表当智能测评结论。
- 修改语言、时区、学习目标,保存重开;切换账号应清空前一个人的私有数据。
11 · 运营后台其余模块
| 模块 | 按顺序测试 | 预期结果与完成边界 |
|---|---|---|
| 首页概览 | 选择时间范围 → 刷新 → 对照订单、用户及预约实际记录 | 已实现,待手测;不要与夹具数字比对 |
| 用户管理 | 搜索测试邮箱 → 详情 → 编辑允许字段 → 保存重读 → 冻结普通测试用户 → 解冻 | 已实现,待手测;冻结撤销其会话,解冻不复活旧登录;不能用此入口随意改管理员 |
| 内容管理 | 新建原创课程/资源草稿 → 上传允许的素材 → 填版权来源 → 保存 → 发布版本 | 部分完成;课程内容与商品分别发布,发布不启用真实支付 |
| 商品配置 | 从内容资源商品入口或 /products 查看版本、价格、授权、条款和发布状态 |
已有版本管理;数字付费销售未实现,不进行真实购买 |
| 题库模考 | 新建最小单选题 → 填题干、选项、答案、解析、知识点、版权 → 保存发布 → 新建试卷引用固定题目版本 → 发布 → App 验证 | 已实现,待手测;避免直接用大规模导入作为第一条测试 |
| 题库导入 | 下载/查看当前模板说明 → 上传小样本 → 查看校验错误 → 修正 → 重提 → 核对结果 | 已实现,待手测;支持格式以当前界面为准,不猜测任意 Excel 均可导入 |
| 客服运营 | 学生/教师帮助客服提交测试工单 → 后台按编号打开 → 回复/处理 → 原账号查看进度 | 已实现,待手测;内部理由不应暴露给普通用户 |
| 消息与通知 | 产生预约/审核通知 → 查看未读数 → 打开详情 → 标记已读 → 刷新其他端 | 已实现,待手测;在线编辑审批发布通知模板未接入 |
| 数据报表 | 按日期、币种选择 → 查询 → 创建异步导出 → 等待任务完成 → 下载并核对表头及一条实际记录 | 已实现,待手测;异步导出入口是 /admin/report-exports,不是遗留旧导出接口 |
| 角色权限 | 查看角色及权限目录 → 用独立测试角色授权/撤销 → 目标重新登录核对 | 已实现,待手测;禁止修改本人角色/越权授予,新增管理员开户恢复并无完整后台向导 |
| 审计日志 | 查审核、授权、收款原件查看、裁定、付款操作 → 核对操作者、原因、对象、时间 | 已实现,待手测;不得在日志中出现密码或无关密钥 |
| 任务与对账监控 | 系统设置入口或 /monitoring → 查看状态 → 对测试失败任务读取原因 → 按权限重试 |
部分完成;真实供应商查单未接入,当前缺对账执行权限 |
| 地区与功能开关 | 读取配置,核对开关不可编辑及原因 | 未开放变更;录制回放、小班、HTML5 执行、未成年人业务不能通过强行改前端开启 |
12 · 安全与异常专项测试
每个场景先保存原请求编号、对象编号和截图,再判断是否通过;只操作专门的测试数据。
| 编号 | 操作 | 应出现的结果 |
|---|---|---|
| X01 | 登录时输一次错误密码/过期验证码 | 明确拒绝,不泄露账户内部资料;不要高频撞库 |
| X02 | 同一账号刷新及退出后后退 | 退出后私有页面不再可用,缓存不泄露 |
| X03 | 学生尝试进入别人的订单/预约 | 拒绝访问,不返回他人数据 |
| X04 | 两窗口同时修改同一测试资料 | 后提交旧版本者提示冲突;重读后人工核对 |
| X05 | 提交中断网,再“重试原请求” | 不生成重复订单、退款、服务或付款记录 |
| X06 | 读请求失败点击重试,分页后改筛选 | 可恢复,筛选重置游标,不混入旧条件数据 |
| X07 | 摄像头/麦克风拒绝授权 | 可解释错误,不假称设备检查已通过 |
| X08 | 课堂时间窗外入室/同角色另一设备占用 | 按规则拒绝;强制接管不可用 |
| X09 | 考试截止/换号后尝试同步旧草稿 | 不接受越期/旧账号答案,不覆盖另一身份 |
| X10 | 开课前不足 24 小时取消/改期 | 要求客服或按最新规则处理,不擅自全退 |
| X11 | 无权限账号打开财务或原件 | 拒绝并给出原因,不靠隐藏菜单代替后端鉴权 |
| X12 | 制单人自己批准付款 | 拒绝;必须不同管理员复核 |
| X13 | 未授权资源下载、退出后重试下载 | 授权重新核验,不能复用旧账号内容 |
| X14 | 普通用户提交注销申请 | 显示待处理,撤销登录;不是已经物理删除全部资料 |
破坏性测试分开做:冻结、注销、取消、退款、角色撤销、付款登记只能用一次性测试账号/对象。注销审批和最终资料清除尚未完整开放;不要在你的主要管理员账号上测试。
13 · 已完成与未完成总表
“已实现”表示可进入测试,不是本次已替你验收合格。接口覆盖审计报告的 249/265 是“没有落入未实现兜底”的数量,不等于 94% 产品完成度,也不保证每个参数和业务分支正常。
| 能力 | 状态 | 证据与限制 |
|---|---|---|
| 邮箱登录、会话、身份切换 | 已实现 | 自动化与 API 演练;测试邮件使用 Mailpit |
| 后台邮箱密码登录、权限、审计 | 已实现 | 本版已移除 TOTP;线上只读核查确认 |
| 教师入驻、材料、审核、服务报酬上架、排期 | 已实现 | 新教师全链路 API 演练;当前账号四权限缺口需先补 |
| 学生约课、占位、确认 | 已实现 | API 演练;UI、时区、并发和弱网仍需手测 |
| 预约支付与退款 | 部分完成 | 测试渠道闭环;真实渠道、商户及真实到账未验证 |
| 改期、取消、客服争议 | 已实现 | 集成覆盖;手动验收需独立预约样本 |
| 课堂业务租约、白板连接、文字、课件 | 部分完成 | API 演练凭证/WebSocket;实际跨端画笔聊天待手测 |
| 真实音视频、录制回放 | 未实现/外部依赖 | 腾讯 TRTC/VOD 与客户端 SDK 未接入 |
| 课堂 presence、手动结束、强制设备接管 | 未实现/未开放 | worker 课后转复核可用,不等于手动结束可用 |
| 裁定、评价、课后小结 | 已实现 | 裁定及评价有 API 演练;小结及全部 UI 待手测 |
| 教师应付、收款资料、制单复核 | 已实现 | API 全生命周期演练;需要独立第二管理员 |
| 银行自动出款 | 未实现 | 当前为线下付款结果登记;不能假装已转账 |
| 免费领取、资源授权、PDF/图片阅读下载 | 已实现 | 集成覆盖,真实原生多设备待验收 |
| 付费数字内容购买及支付后授权 | 未实现 | POST /orders 缺失,课程/资源/试卷不能付费售卖 |
| 视频课播放 | 未实现 | playback-tokens 缺失;VOD 外部依赖 |
| 商店内购、购买恢复 | 未实现 | verify/restore 缺失;旧设计有入口不等于能用 |
| 练习、错题、收藏、模考评分与恢复 | 已实现 | 集成覆盖;手册提供 UI 测试,不声称本次全量通过 |
| 报告、异步导出、运营查询 | 已实现 | 部分查询/导出实现;智能知识点掌握算法未启用 |
| 工单、消息及通知已读 | 已实现 | 集成覆盖;在线模板编辑审批发布未接入 |
| 用户屏蔽 | 未实现 | PUT/DELETE block 接口缺失 |
| 注销申请 | 部分完成 | 可申请、撤销会话;后台最终审批/资料清除未完成 |
| 后台单条教师/订单/支付详情旧接口 | 接口未实现但有列表替代 | 当前客户端用列表数据;不能误说整个详情体验都完成 |
| 通用后台上传、旧报表导出接口 | 遗留接口未实现,有专用替代 | 使用专用上传和 report-exports;不重复造功能缺口 |
| 渠道差异主动查单、已付款争议复核 | 未实现 | 审计列出的边缘/供应商依赖接口 |
| 地区配置发布、录制、小班、H5、未成年人业务 | 未开放 | 开关只读,不是可操作功能 |
| 文件病毒扫描、第三方对象存储、备份 | 当前未提供(产品决定) | 使用本地磁盘+完整性/类型检查;无备份是运营风险,不是已解决 |
| Android/iOS 发布与真机完整验收 | 待完成 | 旧代码原生编译成功;本基准新包、iOS 签名、真机全流程未验收 |
| 像素视觉、全状态与性能验收 | 待完成 | Web 仅部分默认状态夹具截图;移动设计板不是完成证据 |
14 · 快速验收卡与问题登记
最小可运行闭环(按顺序勾选)
每个问题必须记录
| 字段 | 示例/填写要求 |
|---|---|
| 用例编号 | S02,第 6 步;不能只写“支付不行” |
| 日期和版本 | 2026-10-28,Web 线上版本/App 构建提交与版本号 |
| 平台 | Chrome/Safari+版本;Android/iOS+系统与机型 |
| 身份 | 学生 S/教师 T/管理员 A,邮箱可脱敏,不贴密码 |
| 对象标识 | 预约号、订单号、退款号、付款单号、请求 ID |
| 操作与预期 | 哪一按钮、哪些输入、预期状态 |
| 实际结果 | 真实提示、状态、是否刷新后仍错误 |
| 附件 | 截图/短录屏;遮挡密钥、验证码、真实银行资料 |
| 严重程度 | 阻塞主链路/重要/一般/视觉问题 |
| 分类 | 缺功能/缺权限/缺数据/版本不匹配/规则拒绝/代码缺陷 |
另附 测试执行清单.csv,可用 Excel 打开。初始全部“未执行”,由你操作后填写“通过/失败/阻塞/不支持”;不要将文档中的证据直接抄成你的执行结果。
15 · 证据、版本与维护说明
- 固定源代码:
ea9c2cd;本手册不会随线上后续部署自动更新。 docs/functional-audit-2026-10-27.md:265 个契约操作中 249 已实现、16 未实现;包含全生命周期测试环境 API 演练结论。本次未重新运行会创建订单、退款、时间偏移及付款记录的演练。scripts/staging-drill.ts:入驻、预约、课堂、裁定、评价、付款演练;直接调整测试库时间,不能当作正常用户操作。scripts/staging-smoke.ts:测试支付退款及课件;scripts/staging/lib.ts:演示课与验证码/后台登录方式。infra/migrations/024_remove_admin_mfa.sql、025_permission_catalog.sql:本版管理员登录与权限变化。apps/mobile/lib/main.dart、features/identity/profile_home.dart:App 双身份导航及入口;各功能页面对应本手册步骤。apps/teacher-web/src/rebuilt.tsx、apps/admin-web/src/rebuilt.tsx:Web 路由;当前 UI 细节以实际页面为准。docs/visual-acceptance-2026-10-27.md:视觉验收边界,夹具截图不等于真实业务验收。- 本次只读核查线上:支付及 RTC 测试模式开启、邮件 SMTP 指向测试流程、MFA 字段已移除、管理员 4 项权限缺口、存在 2 项已发布服务。没有改变服务器配置、权限、密码或业务记录。
- 图 1–2 是本次线上未登录截图;图 3–5 为服务器已有视觉夹具;图 6–7 为仓库设计参考。图中示例账号/金额不应当作实际测试输入。
- 旧 README 与早期进度文档存在过时的 MFA、原生构建和扫描描述;遇到矛盾优先按本固定基准代码、最新专项审计及线上实际行为核对,不能混用旧版本结论。
验收结论留白:本手册交付的是“逐步操作方案+可用范围和证据说明”,不是签收报告。完成 CSV 并附上每个关键状态截图之后,才能形成你的 Web/App 验收结果。