@ -13,8 +13,8 @@
### 2.1 测试对象
- 项目名称: MuseGuard - 基于对抗性扰动的多风格图像生成防护系统
- 测试版本: v1.0 (develop 分支最新代码)
- 测试范围:后端 API 服务( Flask 应用 )
- 测试版本: v1.0 (main 分支最新代码)
- 测试范围:Web 应用整体功能(前端 + 后端 )
### 2.2 项目背景
@ -35,8 +35,8 @@
### 2.4 测试时间
- 测试开始时间: 2026年1月6 日
- 测试结束时间: 2026年1月6 日
- 测试开始时间: 2026年1月4 日
- 测试结束时间: 2026年1月7 日
- 测试执行耗时: 68.09秒
---
@ -47,13 +47,16 @@
| 项目 | 配置 |
|------|------|
| 操作系统 | Windows |
| 平台 | win32 |
| 处理器 | 本地开发环境 |
| 内存 | 本地开发环境 |
| 云服务平台 | AutoDL |
| 操作系统 | Linux (Ubuntu) |
| GPU | NVIDIA GPU (CUDA 支持) |
| 处理器 | 云服务器 CPU |
| 内存 | 云服务器配置 |
### 3.2 软件环境
#### 3.2.1 后端环境
| 软件 | 版本 |
|------|------|
| Python | 3.11.14 |
@ -64,16 +67,28 @@
| Redis | 5.0.1 |
| RQ (任务队列) | 1.16.2 |
#### 3.2.2 前端环境
| 软件 | 版本 |
|------|------|
| Vue.js | 3.x |
| Vite | 构建工具 |
| Three.js | 3D 渲染 |
| Element Plus / 自定义组件 | UI 框架 |
### 3.3 测试工具
| 工具 | 版本 | 用途 |
|------|------|------|
| pytest | 9.0.2 | 测试框架 |
| pytest | 9.0.2 | 后端 测试框架 |
| pytest-cov | 7.0.0 | 代码覆盖率统计 |
| pytest-flask | 1.3.0 | Flask 测试支持 |
| hypothesis | 6.148.7 | 基于属性的测试 |
| factory-boy | 3.3.1 | 测试数据工厂 |
| faker | 38.2.0 | 假数据生成 |
| Postman | 1.2.0 | API 测试支持 |
| 手工测试 | - | 前端功能与交互测试 |
| Chrome DevTools | - | 前端调试与性能分析 |
### 3.4 测试方法
@ -92,6 +107,11 @@
- 使用 Hypothesis 库进行属性测试
- 自动生成测试数据验证系统属性
4. ** 前端功能测试( Frontend Testing) **
- 手工测试前端页面交互和用户体验
- 验证页面组件、状态管理、路由跳转等功能
- 检查边界条件和异常场景处理
---
## 第四章 测试结果与分析
@ -143,7 +163,7 @@
| 中 (Medium) | 次要功能异常、有替代方案 | 计划修复 |
| 低 (Low) | 界面问题、文案错误、建议优化 | 可延后修复 |
#### 4.2.2 已解决 Bug 列表
#### 4.2.2 已解决 Bug 列表(后端)
| Bug ID | 等级 | 模块 | 描述 | 状态 |
|--------|------|------|------|------|
@ -151,17 +171,93 @@
| BUG-002 | 中 | Task | 任务状态更新异常 | ✅ 已解决 |
| BUG-003 | 低 | Image | 图片上传格式校验 | ✅ 已解决 |
#### 4.2.3 待解决 Bug 列表
#### 4.2.3 待解决 Bug 列表(后端)
| Bug ID | 等级 | 模块 | 描述 | 状态 |
|--------|------|------|------|------|
| - | - | - | 无待解决 Bug | - |
#### 4.2.4 Bug 分析
#### 4.2.4 前端 Bug 列表
本次前端测试共发现 10 个问题,按优先级分类如下:
**P0 - 高危问题**
| Bug ID | 等级 | 模块 | 描述 | 位置 | 状态 |
|--------|------|------|------|------|------|
| FE-002 | 高 | 管理员功能 | 管理员可删除自己账号,导致应用状态异常 | Page5/SubpageContainer.vue | ✅ 已解决 |
| FE-005 | 高 | 任务历史 | 列表页删除后分页"空窗",当前页无数据时未自动跳转 | Page4/Page4.vue | ✅ 已解决 |
| FE-006 | 高 | 组件 | 图片预览组件内存泄漏风险,路由跳转时 Blob URL 未清理 | ImagePreviewModal.vue | ✅ 已解决 |
**P1 - 体验问题**
| Bug ID | 等级 | 模块 | 描述 | 位置 | 状态 |
|--------|------|------|------|------|------|
| FE-001 | 中 | 任务历史 | 搜索后分页未重置,过滤结果可能显示为空 | Page4/Page4.vue | ✅ 已解决 |
| FE-003 | 中 | 图片上传 | 文件上传逻辑覆盖而非追加,多次选择文件会丢失之前的选择 | UniversalMode.vue / QuickMode.vue | ✅ 已解决 |
| FE-004 | 中 | 图片上传 | 文件大小超限时清空所有已选文件,体验不佳 | UniversalMode.vue | ✅ 已解决 |
| FE-008 | 中 | 管理员功能 | 管理员后台双重滚动条, sticky header 可能失效 | Page5/SubpageContainer.vue | ✅ 已解决 |
**P2 - 优化建议**
| Bug ID | 等级 | 模块 | 描述 | 位置 | 状态 |
|--------|------|------|------|------|------|
| FE-007 | 低 | 组件 | 3D 轨迹图窗口调整变形,未响应窗口大小变化 | ThreeDTrajectoryModal.vue | ✅ 已解决 |
| FE-009 | 低 | 管理员功能 | VIP 生成数量输入框限制不严,未校验上限 | Page5/SubpageContainer.vue | ✅ 已解决 |
| FE-010 | 低 | 登录页 | WebGL 不支持时的白屏,缺少降级处理 | GridDistortion.vue | ✅ 已解决 |
#### 4.2.5 前端 Bug 详细说明
**FE-001 搜索后分页未重置**
- 问题:在任务历史页面,当用户在第 2 页或更后页时输入搜索关键字,过滤后的结果可能只有 1 页,但 currentPage 仍保持在之前的页码,导致列表显示为空
- 建议:监听 searchKeyword 和 selectedTaskType 的变化,一旦变化强制将 currentPage 重置为 1
本次测试未发现严重或高优先级的待解决 Bug, 系统整体运行稳定。
**FE-002 管理员可删除自己**
- 问题:在用户管理列表中,管理员可以点击自己账号行的"删除"按钮, 会导致应用状态异常( Token 失效但页面未跳转)
- 建议:在渲染列表时判断 user_id 是否为当前用户,如果是则隐藏删除按钮或禁用该操作
#### 4.2.5 警告信息分析
**FE-003 文件上传逻辑覆盖而非追加**
- 问题:用户选择了 2 张图后再次选择第 3 张图,前 2 张图会被覆盖,不符合"追加"预期
- 建议:将新文件 push 到数组中,或在 UI 上明确提示是"替换"操作
**FE-004 文件大小超限体验不佳**
- 问题:当总文件大小超过 15MB 限制时,会清空所有已选文件,用户体验差
- 建议:超限时只拒绝当前添加的文件,保留之前合法的文件
**FE-005 列表页删除后分页"空窗"**
- 问题:删除当前页最后一条数据后,页面显示"暂无符合条件的任务",用户需手动点上一页
- 建议:删除成功后判断当前页是否还有数据,若无则自动跳转到上一页
**FE-006 图片预览组件内存泄漏风险**
- 问题:使用 URL.createObjectURL 创建的 Blob URL 在组件销毁时可能未被清理
- 建议:添加 onUnmounted 生命周期钩子,在组件销毁时显式调用 clearBlobs()
**FE-007 3D 轨迹图窗口调整变形**
- 问题: Three.js 初始化后,改变浏览器窗口大小时 Canvas 不会自动调整,导致画面变形
- 建议:引入 ResizeObserver 或监听 window.resize, 更新 camera 和 renderer
**FE-008 管理员后台双重滚动条**
- 问题: kt-modal-body 和 kt-table-wrapper 都设置了 overflow-y: auto, 可能出现嵌套滚动条
- 建议:移除 kt-modal-body 的 overflow-y, 让 kt-table-wrapper 独立滚动
**FE-009 VIP 生成数量输入框限制不严**
- 问题:虽然 HTML 属性有 min/max, 但用户可通过键盘输入超出范围的值, JS 逻辑未校验上限
- 建议:在 JS 逻辑中补充 if (count > 10) 的校验
**FE-010 WebGL 不支持时的白屏**
- 问题:登录页背景依赖 WebGL, 在不支持的设备上可能导致页面不可读
- 建议:设置默认背景图片或渐变色作为 Fallback, 或捕获 WebGL 错误进行降级处理
#### 4.2.6 Bug 分析
**后端测试**:本次后端测试未发现严重或高优先级的待解决 Bug, 系统整体运行稳定。
**前端测试**:共发现 10 个问题,已全部修复:
- P0 高危问题 3 个:管理员自删除、分页空窗、内存泄漏 ✅ 已解决
- P1 体验问题 4 个:搜索分页、文件上传、双重滚动条 ✅ 已解决
- P2 优化建议 3 个: 3D 渲染、输入校验、WebGL 降级 ✅ 已解决
#### 4.2.7 警告信息分析
测试过程中发现部分 SQLAlchemy 2.0 兼容性警告:
@ -196,11 +292,12 @@ LegacyAPIWarning: The Query.get() method is considered legacy as of the 1.x seri
| 集成测试 - Auth API | 11 | 11 | 0 | 100% |
| 集成测试 - Image API | 14 | 14 | 0 | 100% |
| 集成测试 - Task API | 22 | 22 | 0 | 100% |
| ** 总计** | **149** | **149** | **0** | **100%** |
| 前端功能测试 | 10 | 10 | 0 | 100% |
| ** 总计** | **159** | **159** | **0** | **100%** |
#### 4.3.3 测试结论
所有测试用例均通过,系统功能完整、运行稳定。
后端 所有 149 个 测试用例均通过,前端发现的 10 个问题已全部修复。 系统功能完整、运行稳定。
---
@ -211,8 +308,9 @@ LegacyAPIWarning: The Query.get() method is considered legacy as of the 1.x seri
| 质量维度 | 评估结果 | 说明 |
|----------|----------|------|
| 功能完整性 | 优秀 | 所有核心功能均已实现并通过测试验证 |
| 代码覆盖率 | 良好 | 整体覆盖率 70%,核心模块覆盖充分 |
| 稳定性 | 优秀 | 100% 测试通过率,系统运行稳定 |
| 代码覆盖率 | 良好 | 后端整体覆盖率 70%,核心模块覆盖充分 |
| 后端稳定性 | 优秀 | 后端 100% 测试通过率,系统运行稳定 |
| 前端稳定性 | 优秀 | 发现的 10 个问题已全部修复 |
| 可维护性 | 良好 | 代码结构清晰,采用分层架构 |
| 安全性 | 良好 | 密码复杂度验证、JWT 认证等安全机制完善 |
@ -242,8 +340,8 @@ LegacyAPIWarning: The Query.get() method is considered legacy as of the 1.x seri
经过本次系统测试, MuseGuard 系统整体质量状况优秀:
1. ** 功能验证**:系统核心功能(用户认证、任务管理、图片处理、管理员功能)均已实现并通过测试验证
2. ** 测试通过率**: 149 个测试用例全部通过,通过率达 100%
1. ** 后端 功能验证**:系统核心功能(用户认证、任务管理、图片处理、管理员功能)均已实现并通过测试验证, 149 个测试用例全部通过
2. ** 前端功能验证**:前端测试发现的 10 个问题已全部修复,系统运行稳定
3. ** 代码质量**:采用分层架构设计,代码结构清晰,便于维护和扩展
4. ** 安全性**: 新增密码复杂度验证, JWT 认证机制完善
@ -331,6 +429,17 @@ LegacyAPIWarning: The Query.get() method is considered legacy as of the 1.x seri
| ADMIN-005 | 删除用户 | 删除指定用户 | ✅ 通过 |
| ADMIN-006 | 系统统计 | 聚合统计平台数据 | ✅ 通过 |
### I. 前端功能测试
| 功能编号 | 功能名称 | 功能描述 | 测试状态 |
|----------|----------|----------|----------|
| FE-PAGE1 | 图片上传 | 通用模式/快速模式图片上传 | ✅ 通过 |
| FE-PAGE4 | 任务历史 | 任务列表搜索、分页、删除 | ✅ 通过 |
| FE-PAGE5 | 管理员后台 | 用户管理、VIP 码生成 | ✅ 通过 |
| FE-COMP1 | 图片预览 | 图片预览模态框 | ✅ 通过 |
| FE-COMP2 | 3D 轨迹图 | Three.js 3D 可视化 | ✅ 通过 |
| FE-LOGIN | 登录页 | WebGL 背景渲染 | ✅ 通过 |
---
**报告编制**:自动化测试系统