74 lines
3.3 KiB
Markdown
74 lines
3.3 KiB
Markdown
# 测试方案 - 2026-05-04-05-41-22
|
||
|
||
## 静态检查
|
||
|
||
- 执行 `npm run lint`,确认 TypeScript 类型检查通过。
|
||
- 执行 `npm run build`,确认生产构建通过。
|
||
|
||
## 集成测试
|
||
|
||
- 调用 STL preview API:
|
||
- `limit=6000`
|
||
- `limit=16000`
|
||
- `limit=36000`
|
||
- 确认返回顶点数量随实体化程度增加,且响应不报错。
|
||
- 调用 DICOM preview API,确认连续请求不同 slice 时均可返回合理 `slice/total/width/height`。
|
||
|
||
## 关键业务场景验证
|
||
|
||
### 3D 模型页
|
||
|
||
- 默认进入后模型可见。
|
||
- 实体化程度从“预览”切换到“标准/精细”后,模型表面更连续,而不是纯点云感。
|
||
- 开启“整体白色实体”后,显示效果接近参考图的灰白实体模型。
|
||
- 调整旋转 X/Y/Z、平移 X/Y/Z、缩放后,模型位姿即时变化。
|
||
- 点击重置后,位姿恢复默认。
|
||
- 隐藏/显示单个 STL、调整颜色、透明度仍正常。
|
||
- WebGL 不可用时二维兜底仍可见,不出现空白画布。
|
||
|
||
### DICOM 切片页
|
||
|
||
- 长按上箭头时,切片编号连续增加,图像连续变化。
|
||
- 长按下箭头时,切片编号连续减少,图像连续变化。
|
||
- 快速连续切换时,不出现旧请求覆盖新切片的错帧。
|
||
- 到达首帧/末帧时不越界。
|
||
|
||
### 逆向工作区
|
||
|
||
- 顶部全局 header 仍显示“逆向工作区”。
|
||
- 页面内容区不再重复显示第二个“逆向工作区”。
|
||
- 页面内容区不再出现上方重复“当前项目:xxx”副标题。
|
||
- 项目标签行字号变大,且显示当前项目、DICOM 数量、STL 数量。
|
||
|
||
## 医学影像数据相关边界验证
|
||
|
||
- DICOM 连续切片时保留当前 plane、mode、rotation 状态。
|
||
- STL 实体化程度不改变各构件的原始相对空间关系,只改变抽样密度和显示材质。
|
||
- 位姿控制作用于整体模型 group,不改变单个 STL 的相对拼装位置。
|
||
|
||
## 回归风险
|
||
|
||
- 高实体化程度可能提升渲染压力,需要在 UI 中保留“预览”档位。
|
||
- DICOM 连续请求可能造成响应乱序,需要请求序号保护。
|
||
- 逆向工作区删除标题后仍需保证用户知道当前处于哪个页面,依赖全局 header。
|
||
|
||
## 人工审核状态
|
||
|
||
用户已回复“确认方案”,按本测试方案执行验证。
|
||
|
||
## 执行结果
|
||
|
||
- `npm run lint`:通过。
|
||
- `npm run build`:通过;Vite 仍提示 bundle 超过 500 kB,为现有 Three.js/Recharts 依赖带来的非阻断警告。
|
||
- STL preview API 验证:
|
||
- `limit=6000`:返回 `5795` 个抽样三角面、`52155` 个顶点数值。
|
||
- `limit=16000`:返回 `8692` 个抽样三角面、`78228` 个顶点数值。
|
||
- `limit=36000`:返回 `17384` 个抽样三角面、`156456` 个顶点数值。
|
||
- DICOM 连续切片 API 验证:`slice=120~124` 均返回 `512x512`、`total=300`,文件名按 `121.dcm` 到 `125.dcm` 连续变化。
|
||
- 无头 Chrome 前端验证:
|
||
- 3D 模型页存在“模型显示、预览、标准、精细、白色实体、整体位姿、旋转 X、平移 Z、缩放”等控件。
|
||
- WebGL 不可用场景仍生成二维预览 canvas,尺寸 `1172x567`。
|
||
- 逆向工作区正文不再重复页面标题:`逆向工作区` 只出现 1 次。
|
||
- `当前项目:头部 CT 模型逆向体素化演示` 只出现 1 次,并保留 `DICOM 300`、`STL 9`。
|
||
- 已重新部署到 `http://192.168.3.11:4000/`,tmux 会话:`revoxelseg-dicom`。
|