当前测试清单
先看本次开发日报,只选改动相关场景。受影响的 P0 必测;⭐ 表示必须依赖真设备、真实网络或人的判断。每条编号都能在对应模块文档中找到可执行步骤。
App ⭐
| # | 测试项 | 级别 | 说明 |
|---|---|---|---|
| APP-01 | 新设备首次登录完成浏览器批准并回到 App | P0 | iOS/Android/macOS |
| APP-02 | 浏览器批准后准确激活 profile,不停在“登录授权” | P0 | 全新安装 |
| APP-03 | A 账号退出后登录 B 账号,身份与资源不串号 | P0 | 多账号 |
| APP-04 | 同账号列出准确的组织与网络组合 | P0 | 组织/网络目录 |
| APP-05 | 切换组织/网络有居中加载、弱网 10 秒后可取消 | P0 | 弱网 |
| APP-06 | 刚登录或刚切换后立即连接,不因资源刷新持续 busy | P0 | 并发 |
| APP-07 | 刷新只写入当前网络最新 generation,旧请求不能覆盖 | P0 | 网络切换竞态 |
| APP-08 | 服务列表只显示当前账号/网络已授权资源 | P0 | 可见性与可达性 |
| APP-09 | 节点列表区分本账号与授权节点,授权后可 Ping | P0 | L3 |
| APP-10 | 未选择出口时开启开关只提示“请先选择出口” | P1 | 交互 |
| APP-11 | 选择、开启、关闭出口后公网 IP 与路由真实变化 | P0 | 真流量 |
| APP-12 | 设置进入活动日志的导航、返回与页面标题一致 | P1 | 移动/桌面 |
| APP-13 | Wi-Fi/5G、前后台、锁屏与休眠后状态恢复 | P0 | 生命周期 |
| APP-14 | 普通版本覆盖更新后能启动、登录、连接且身份不丢 | P0 | build 22+ 与移动端 |
| APP-15 | 响应式布局、间距、空态和错误态跨端准确 | P1 | 移动/桌面 |
| APP-16 | iOS VPN 权限允许/拒绝/重试和系统回收后可恢复 | P0 | iPhone |
| APP-17 | Android VPN 权限允许/拒绝/重试和系统回收后可恢复 | P0 | Android arm64 |
| APP-18 | macOS Helper 安装、授权、升级失败与重试边界准确 | P0 | macOS |
| APP-19 | macOS 单实例、菜单栏与退出时运行时清理准确 | P0 | macOS |
| APP-20 | 桌面设备页的本机、授权节点、详情与复制操作准确 | P1 | 桌面 |
| APP-21 | 服务筛选菜单恰好两个选项:全部协议、按协议分组 | P1 | 移动/桌面 |
| APP-22 | 登录、切换、退出、错误、版本更新弹窗跨端风格一致 | P1 | 移动/桌面 |
浏览器登录与 Profile 激活
| # | 测试项 | 级别 | 说明 |
|---|---|---|---|
| AUTH-01 | 连续点击登录只创建一个 single-flight 登录流程 | P0 | 防重复 |
| AUTH-02 | 授权 URL 生成前 busy 仅自动重试一次,仍失败可再点 | P0 | 可恢复 |
| AUTH-03 | 授权 URL 已打开后失败不自动重放、不重复打开浏览器 | P0 | 防串号 |
| AUTH-04 | 浏览器失败、空结果、过期或复用批准均回到可重试态 | P0 | 错误路径 |
| AUTH-05 | 浏览器实际批准账号是最终账号,A/B 缓存不能覆盖 | P0 | 多账号 |
| AUTH-06 | 多 profile/endpoint 时只激活批准结果指定的 profile | P0 | 精确 activation |
| AUTH-07 | 只信任官方 authority 且 Noise/QUIC/Envelope 三 pin 完整 | P0 | 信任边界 |
统一 NS
| # | 测试项 | 级别 | 说明 |
|---|---|---|---|
| NS-01 | 当前安装包安装成功,ns --version 来源准确 |
P0 | 全新与覆盖安装 |
| NS-02 | ns up --server 浏览器批准并完成登记 |
P0 | profile activation |
| NS-03 | 三类 pin 正确时连接、错误时对应受保护路径 fail closed | P0 | 信任边界 |
| NS-04 | ns status、--json、--all 描述同一真实状态 |
P0 | 状态 |
| NS-05 | ns status --probe 只探测当前获准的 L3 节点 |
P0 | L3 |
| NS-06 | ns status --dns 显示准确的非节点 DNS 记录 |
P1 | DNS |
| NS-07 | ns info 与 --json 显示准确身份、登记、构建和运行时 |
P1 | 诊断 |
| NS-08 | ns space list 与 --json 返回准确组织/网络目录 |
P0 | 多 Space |
| NS-09 | space switch <NETWORK_ID> --yes --json 精确切换并保持断开 |
P0 | 多 Space |
| NS-10 | 交互 sudo ns exit 选中或取消时行为准确 |
P0 | TTY |
| NS-11 | ns exit set 只保存本地偏好,sudo ns up --exit 才激活 |
P0 | 出口语义 |
| NS-12 | ns exit clear 清本地偏好并停 CLI 运行时,远端选择可保留 |
P0 | 清理边界 |
| NS-13 | ns subnet add/list/bind/unbind 生命周期正确 |
P0 | 子网路由 |
| NS-14 | ns subnet add --join HA 加入与错误 LAN 拒绝准确 |
P0 | 多网关 |
| NS-15 | ns subnet remove 只删除本节点发布,不误删他节点映射 |
P0 | 所有权 |
| NS-16 | ns doctor 只读且诊断能指导下一步 |
P1 | 诊断 |
| NS-17 | ns report 只打印预填环境信息链接且不含凭据 |
P1 | 反馈入口 |
| NS-18 | ns repair 只修默认状态目录旧权限并拒绝错误目标/链接 |
P0 | 老版本状态 |
| NS-19 | ns down 清理 TUN、路由、DNS 与本地运行实例 |
P0 | 系统状态 |
| NS-20 | ns reset 保留身份;全量删除必须显式 --all --yes |
P0 | 破坏性 |
| NS-21 | ns up --invite 与 --invite-file 互斥且安全读取 |
P1 | 登记输入 |
| NS-22 | ns up --services-file 加载服务并拒绝无效/不安全文件 |
P1 | 服务发布 |
| NS-23 | ns up --detach --wait-ready 仅在就绪后成功,失败清理 |
P0 | 后台运行 |
| NS-24 | ns up --transport-mode auto/wg/wss 生效且错误模式拒绝 |
P0 | 数据传输 |
| NS-25 | ns update --check 只读,正式更新校验且失败保留旧版本 |
P0 | 更新 |
| NS-26 | 单一旧 source 自动迁移为 singleton profile 且无需重登记 | P0 | 迁移 |
| NS-27 | 多 source 旧状态 fail closed,并明确要求重置后再登记 | P0 | 迁移 |
NSD 17 个导航入口
| # | 测试项 | 级别 | 说明 |
|---|---|---|---|
| NSD-01 | 概览只展示当前网络的摘要与入口 | P1 | 概览 |
| NSD-02 | 快速开始含安装、版本、连接、状态与当前三 pin | P0 | macOS/Windows/Linux |
| NSD-03 | 用户邀请、状态和 Network membership 生效 | P0 | 用户 |
| NSD-04 | 用户组成员变更和授权主体投影生效 | P0 | 用户组 |
| NSD-05 | 设备身份、归属、版本和生命周期准确 | P0 | 设备 |
| NSD-06 | 节点归属、Node IP/DNS、在线状态和详情准确 | P0 | 节点 |
| NSD-07 | 服务、Short DNS、协议、端口、节点和状态准确 | P0 | 服务 |
| NSD-08 | 网关与出口的能力、节点、运营方和状态清楚 | P0 | 网关与出口 |
| NSD-09 | 公网入口的域名、TLS、后端、认证和状态准确 | P0 | 公网入口 |
| NSD-10 | OIDC 访问认证提供方、组织/角色约束生效 | P0 | 访问认证 |
| NSD-11 | 工作负载身份类型、凭据生命周期和 ACL 关联准确 | P0 | 工作负载身份 |
| NSD-12 | 访问授权创建、禁用、删除与数据面一起生效 | P0 | 访问授权 |
| NSD-13 | API 令牌只显示一次、范围正确、撤销立即失效 | P0 | API 令牌 |
| NSD-14 | Webhook 签名、事件过滤、重试和禁用准确 | P1 | Webhook |
| NSD-15 | 活动日志记录成功/失败操作且不泄露密钥 | P1 | 活动日志 |
| NSD-16 | 常规设置只影响当前网络并有权限控制 | P1 | 常规 |
| NSD-17 | 流量按当前网络/时间范围准确,错误不伪装为 0 | P1 | 流量 |
NSD 身份、作用域与错误状态
| # | 测试项 | 级别 | 说明 |
|---|---|---|---|
| NSDA-01 | 登录、会话续期、退出和重新认证完整 | P0 | 会话 |
| NSDA-02 | 浏览器设备批准绑定正确账号、设备和默认网络 | P0 | 一次性批准 |
| NSDA-03 | 组织在上网络在下,多组合可切换,单组合不误操作 | P1 | 作用域 |
| NSDA-04 | 切换后所有页面只读取目标网络,旧请求不能覆盖 | P0 | generation |
| NSDA-05 | 成员只看到本人或授权的设备、节点、服务与入口 | P0 | scoped visibility |
| NSDA-06 | 空态、读失败、写失败、权限不足明确区分并 fail closed | P0 | 错误状态 |
Access Grant 家族
| # | 测试项 | 级别 | 说明 |
|---|---|---|---|
| ACL-01 | Node Grant 只放行选中主体与节点的 L3 | P0 | node |
| ACL-02 | Private Service Grant 只放行选中服务和协议端口 | P0 | private_service |
| ACL-03 | Public Application Grant 只放行选中公开应用 | P0 | public_application |
| ACL-04 | Gateway Egress Grant 只放行选中网关出网能力 | P0 | gateway_egress |
| ACL-05 | Internet Exit Grant 只放行选中互联网出口 | P0 | internet_exit |
| ACL-06 | Subnet Grant 当前不可创建并显示 Not Ready/fail closed | P0 | subnet 负向 |
网关与数据路径
| # | 测试项 | 级别 | 说明 |
|---|---|---|---|
| GW-01 | NSGW 使用当前 pin 登记并持续上报能力和版本 | P0 | 登记 |
| GW-02 | WireGuard 中继与 WSS 回落均可传递获准 L3/L4 流量 | P0 | 数据面 |
| GW-03 | 多组织/网络/账号 relay 投影不串作用域 | P0 | 隔离 |
| GW-04 | 服务出网和公网入口的请求、认证与计量准确 | P0 | 真流量 |
| GW-05 | 互联网出口默认/CIDR、DNS 与私网保留策略准确 | P0 | 真流量 |
| GW-06 | 子网主备网关切换与旧投影收敛 | P0 | HA |
权限、升级与真实网络 ⭐
| # | 测试项 | 级别 | 说明 |
|---|---|---|---|
| X-01 | 未授权账号既看不到也访问不了其它节点/服务/出口 | P0 | 越权 |
| X-02 | Node Grant 与 Private Service Grant 范围差异准确 | P0 | L3 vs L4 |
| X-03 | 跨账号 Node Grant 后 Ping 可达,撤销后不可达 | P0 | 跨账号 |
| X-04 | 新 NSD 与上一版 App/NS/NSGW 混跑 | P0 | 滚动升级 |
| X-05 | build 22+ 桌面和移动端普通升级保留身份、Space 与设置 | P0 | 普通升级 |
| X-06 | 已验证桌面 build 1–21 仅一次迁移重置并静默启动断开 | P0 | 特殊迁移 |
| X-07 | build 1–21 迁移 claim 前可安全重试,claim 后失败终态且禁用旧自动连接 | P0 | exactly once |
| NET-01 | Wi-Fi ↔ 5G 切换后恢复且不要求重复登录 | P0 | iOS/Android |
| NET-02 | 企业网络仅 443 时控制/数据传输按设计回落 | P0 | 防火墙 |
| NET-03 | 弱网下切换有进度、10 秒后可取消,不无限等待 | P0 | 弱网 |
| NET-04 | 休眠/锁屏/前后台后状态与实际流量一致 | P0 | 生命周期 |