# QtDesktopPet 预发布测试记录 ## 构建信息 | 项目 | 内容 | | --- | --- | | 测试日期 | 2026-07-17 至 2026-07-18;2026-09-08 至 2026-09-09 复测 | | 版本 / 发布阶段 | `0.2.0` / 发布候选验收完成 | | 测试源码基线 | `90262aa` + 本记录所在提交;`90262aa` 已推送开发仓库 | | 工作树说明 | 连接测试、提醒按钮定位、天气城市/IP 定位、诊断脱敏、QA 扩展、中文安装器和发布脚本已完成收口 | | 构建类型 | Release | | 编译器 / Qt | Qt 6.5.3 / MSVC 19.44 | | 操作系统 | Windows,具体版本待补充 | | 显示器 / DPI | 待补充 | | 测试人 | 用户手动测试 | ## 自动化摘要 | 检查 | 结果 | 摘要 | | --- | --- | --- | | 核心逻辑 C++ 测试 | PASS | 2026-09-08 使用 Qt 6.5.3 / MSVC 19.44 构建并执行隔离 QA,43 项通过,0 项失败 | | 静态检查 | PASS | 14 项通过,0 项失败;覆盖发布包、MSVC 运行库、中文安装器和隔离规则 | | 性能工具链自检 | PASS | 脱敏 fixture 和 1 秒临时进程采样均成功生成 PASS 报告;不代表产品性能 | | GitHub 导出隔离 | PASS | 静态确认公开导出排除 `docs/internal/reports`,发布构建和打包不依赖内部 QA | ## 已执行手测 | 用例 | 结果 | 实际结果 / 备注 | | --- | --- | --- | | 启动 | PASS | 用户确认通过 | | 拖动 | PASS | 用户确认通过 | | 置顶及重启保持 | PASS | 用户确认通过 | | 托盘隐藏 / 显示 | PASS | 用户确认通过 | | 单实例唤醒 | PASS | 用户确认通过 | | 设置页居中 / 置前 | PASS | 用户确认通过 | | 应用设置保存及重启保持 | PASS | 用户确认通过 | | 开机自启动 | WAIVED | 用户于 2026-09-08 决定免测并接受当前实现,不作为技术验证 PASS | | 导入合法角色包 | PASS | 用户于 2026-07-18 确认通过 | | 切换用户角色并重启保持 | PASS | 用户于 2026-07-18 确认通过 | | 同 ID 用户角色取消覆盖 | PASS | 用户于 2026-07-18 确认通过 | | 拒绝缺少 `character.json` 的角色包 | PASS | 用户于 2026-07-18 确认通过 | | 拒绝缺少 `idle` 状态的角色包 | PASS | 用户于 2026-07-18 确认通过 | | 内置角色删除保护 | PASS | 用户于 2026-07-18 确认通过 | | 导出角色及文件完整性 | PASS | 用户于 2026-07-18 确认通过 | | 导出目标冲突确认与取消保护 | PASS | 用户于 2026-07-18 确认通过 | | 打开用户角色目录 | PASS | 用户于 2026-07-18 确认通过 | | 删除当前用户角色并回退默认角色 | PASS | 用户于 2026-07-18 确认通过 | | AI 配置保存并重启保持 | PASS | 用户于 2026-07-18 确认通过 | | 正确配置连接测试 | PASS | `AI-CONNECT-001` 修复后,用户于 2026-09-08 使用原配置复测通过 | | 错误 Key / Base URL 错误提示 | PASS | 用户于 2026-07-18 确认通过 | | 普通聊天 | PASS | 用户于 2026-07-18 确认通过 | | 流式回复 | PASS | 用户于 2026-07-18 确认通过 | | AI 忙时拒绝第二个请求 | PASS | 用户于 2026-07-18 确认通过 | | 取消 AI 请求 | PASS | 用户于 2026-07-18 确认通过 | | 本地历史保存和重启恢复 | PASS | 用户于 2026-07-18 确认通过 | | 历史关键词搜索 | PASS | 用户于 2026-07-18 确认通过 | | Provider / 模型筛选 | PASS | 用户于 2026-07-18 确认通过 | | 导出 Markdown | PASS | 用户于 2026-07-18 确认通过 | | 导出 JSON | PASS | 用户于 2026-07-18 确认通过 | | 关闭历史保存后不持久化新消息 | PASS | 用户于 2026-07-18 确认通过 | | 清空聊天历史及二次确认 | PASS | 用户于 2026-07-18 确认通过 | | 一次性提醒 | PASS | 用户于 2026-09-08 确认通过 | | 中文相对时间 | PASS | 用户于 2026-09-08 确认通过 | | 绝对日期 | PASS | 用户于 2026-09-08 确认通过 | | 每天 / 每周 / 每月重复提醒 | PASS | 用户于 2026-09-08 确认通过 | | 复杂重复规则拒绝 | PASS | 用户于 2026-09-08 确认通过 | | 提醒列表 | PASS | 用户于 2026-09-08 确认通过 | | 聊天取消提醒 | PASS | 用户于 2026-09-08 确认通过 | | 设置页编辑 pending | PASS | 用户于 2026-09-08 确认通过 | | 桌宠可见时触发 | PASS | 动态定位修复后,用户于 2026-09-08 复测通过 | | 桌宠隐藏时触发 | PASS | 用户于 2026-09-08 确认通过 | | AI 忙时触发 | PASS | 用户于 2026-09-08 确认通过 | | 拖动中触发 | PASS | 用户于 2026-09-08 确认通过 | | 多提醒同时触发 | PASS | 用户于 2026-09-08 确认通过 | | 知道了 | PASS | 用户于 2026-09-08 确认通过 | | 5分钟后再提醒 | PASS | 用户于 2026-09-08 确认通过 | | 20天历史清理 | PASS | 用户于 2026-09-08 确认通过 | | 自定义音效导入 / 试听 / 删除 | PASS | 用户于 2026-09-08 确认通过 | | 内置音效保护 | PASS | 用户于 2026-09-08 确认通过 | | 睡眠与系统时间变化 | PASS | 用户于 2026-09-08 确认通过 | | 提醒保存失败回滚与重试 | PASS | 用户于 2026-09-08 确认通过 | | 洛杉矶天气 | PASS | 用户于 2026-09-08 确认可识别并返回天气 | | 华盛顿天气 | PASS | 用户于 2026-09-08 确认可识别并返回天气 | | 西安天气候选 | PASS | 低价值同名候选过滤修复后,用户于 2026-09-08 完成 T06 最小清单复测 | | 纽约天气 | PASS | 中文海外城市别名修复后,用户于 2026-09-08 完成 T06 最小清单复测 | | 东京天气 | PASS | 中文别名与候选过滤修复后,用户于 2026-09-08 完成 T06 最小清单复测 | | 日本东京天气 | PASS | 国家限定解析修复后,用户于 2026-09-08 完成 T06 最小清单复测 | | 公网 IP 定位 | PASS | `ipapi.co` 失败后切换 `ipwho.is` 的备用链路通过用户复测 | | 文件操作已移除 | PASS | 用户于 2026-09-08 确认不再弹文件选择框或访问本地文件 | | 应用启动已移除 | PASS | 用户于 2026-09-08 确认不再弹 exe 选择/确认框或启动程序 | | 工作区 Agent 已移除 | PASS | 用户于 2026-09-08 确认不再扫描目录或打开 Agent 窗口 | | 本地能力菜单入口清理 | PASS | 用户于 2026-09-08 确认右键与托盘入口已清理 | | 本地能力设置页清理 | PASS | 用户于 2026-09-08 确认应用启动和 Agent 页面已清理 | | Agent 快捷键清理 | PASS | 用户于 2026-09-08 确认 `Alt+A` 不再呼出 Agent | | 旧本地能力配置兼容 | PASS | 用户于 2026-09-08 确认保留旧配置启动不崩溃且不恢复旧能力 | | `0.2.0` Release 构建 | PASS | 用户于 2026-09-08 使用 Qt 6.5.3 / MSVC Release Kit 完成构建 | | 中文安装器界面 | PASS | 用户于 2026-09-09 确认安装器实机验收通过 | | 桌面快捷方式和开机自启默认未选 | PASS | 用户于 2026-09-09 确认默认选项符合预期 | | 安装完成并启动 | PASS | 用户于 2026-09-09 确认通过 | | 覆盖安装 | PASS | 用户于 2026-09-09 确认通过 | | 卸载时保留用户数据 | PASS | 用户于 2026-09-09 确认通过 | | 卸载时删除用户数据 | PASS | 用户于 2026-09-09 确认通过 | ## T09 自动化验证 | 用例 | 结果 | 实际结果 / 备注 | | --- | --- | --- | | App 配置损坏 | PASS | 损坏文件被备份,加载默认 AppConfig | | AI 配置损坏 | PASS | 损坏文件被备份,回退未配置的 Custom Provider | | 天气配置损坏 | PASS | 损坏文件被备份,回退 Open-Meteo 默认配置 | | 联网配置损坏 | PASS | 损坏文件被备份,回退默认联网开关配置 | | 提醒数据损坏 | PASS | 损坏文件被备份,返回空提醒列表 | | 历史数据损坏 | PASS | 既有 ConversationStore 自动化验证备份并忽略损坏历史 | | 日志隐私 | PASS | 诊断上下文、JSON 摘要和错误摘要均不泄露 Key、Bearer、token、message/content 内容 | | 同秒重复损坏 | PASS | 连续损坏生成带后缀的独立备份,不覆盖前一份 | ## T10 发布与安装验收 | 检查 | 结果 | 实际结果 / 备注 | | --- | --- | --- | | PowerShell / JSON 语法 | PASS | QA、性能、发布和 GitHub 导出脚本均可解析 | | 发布包输入 | PASS | 包含 exe、Qt runtime、应用本地 MSVC x64 runtime、characters/icons/sounds、README、LICENSE | | 发布隔离 | PASS | 发布脚本不复制 `docs/internal/reports`,产品 CMake/打包脚本不依赖内部 QA | | 安装器结构 | PASS | 简体中文、per-user 安装、x64、文件递归、自启动默认未选、Run 项和卸载清理逻辑均已验证 | | MSVC 依赖闭合 | PASS | `MSVCP140/140_1/140_2` 与 `VCRUNTIME140/140_1` 均随包部署,依赖扫描无缺失 | | ZIP 发布包 | PASS | `QtDesktopPet-0.2.0-windows-x64.zip`,SHA256 `A247A6AB7EC467B2FC1EA2439611660E9E269E573860EDD587E7D65243768661` | | 中文安装器 | PASS | `QtDesktopPet-0.2.0-windows-x64-setup.exe`,SHA256 `0FE7E215C649E4C2175736C8798BF25F1FDEB34C1B45632CD8824F3F6DDEE709` | | Release / 实际打包 / 安装卸载 | PASS | 用户完成 Release 构建,并于 2026-09-09 确认中文安装、覆盖安装、启动和卸载数据选项通过 | | 数字签名 | ACCEPTED_LIMITATION | 当前安装器未签名,Windows SmartScreen 可能显示“未知发布者”;不作为 `0.2.0` 预发布阻断项 | ## 批次状态 | 批次 | 范围 | 结果 | 备注 | | --- | --- | --- | --- | | T01 | 基础窗口与托盘 | PASS | 6 项基础窗口/托盘用例通过 | | T02 | 应用设置与开机自启动 | ACCEPTED | 应用设置持久化通过;开机自启动由用户决定免测并接受 | | T03 | 角色管理 | PASS | 10 项全部通过 | | T04 | AI 与聊天历史 | PASS | 连接测试修复后复测通过;本批次全部通过 | | T05 | 定时提醒 | PASS | 动态按钮定位复测通过,提醒批次关闭 | | T06 | 天气查询 | PASS | 海外中文城市、候选过滤、国家限定和 IP 备用服务均通过最小清单复测 | | T07 | 联网模式 | BLOCKED | 当前没有可用的 OpenAI/Gemini 官方 Key;不是功能失败 | | T08 | 已移除能力与安全边界 | PASS | 用户确认全部 7 项通过 | | T09 | 配置损坏与隐私 | PASS | 8 项自动化验证通过,测试仅使用 Qt 测试专用配置目录 | | T10 | 打包、安装与卸载 | PASS | `0.2.0` 中文安装器、运行库闭合、安装启动、覆盖安装及卸载均通过 | ## 性能状态 实际 QtDesktopPet 性能场景尚未执行。QA 脚本自检结果不得作为产品性能结论。 ## 缺陷与复测 | 缺陷 ID | 首次现象 | 严重级别 | 修复状态 | 复测结果 | | --- | --- | --- | --- | --- | | AI-CONNECT-001 | 正常聊天可用,但连接测试返回 `HTTP 200: AI response content is empty.` | Medium | 已移除测试请求的 16 token 限制,并补充 token 截断提示 | PASS / CLOSED(2026-09-08) | | REMINDER-UI-001 | 到点提醒的“知道了”和“5分钟后再提醒”按钮距角色主体偏远 | Low | 已改为按当前角色帧 Alpha 可见边界和可见尺寸动态定位,并保留屏幕边缘回退 | PASS / CLOSED(2026-09-08) | | WEATHER-GEO-001 | 西安出现低价值候选,纽约/东京中文名无法稳定解析,国家限定失败 | Medium | 增加集中式中文城市别名、国家限定、人口/地点等级候选过滤,并修复中文被误判为两位国家码 | PASS / CLOSED(2026-09-08) | | WEATHER-IP-001 | ipapi.co 服务端错误或超时导致公网 IP 定位失败 | Medium | 改为 ipapi.co 失败或 5 秒超时后自动尝试 ipwho.is,全部失败才提示配置默认城市 | PASS / CLOSED(2026-09-08) | ## 当前结论 - 已执行手测:72 项 `PASS`,0 项 `FAIL`,1 项 `WAIVED`。 - 已执行自动化:核心逻辑 C++ 测试 43 项 `PASS`,静态检查 14 项 `PASS`。 - T07 因缺少官方联网 Key 处于 `BLOCKED`,不是已发现的功能失败;产品性能场景尚未执行。 - `0.2.0` 可作为预发布版本发布;已知限制为联网模式未实测、安装器未数字签名,公开分发时应明确说明。