v1.1.0: 增加交互提示、路径输入、窗口属性配置
- main.py: 增加show_banner()启动说明、各阶段[INFO]日志、结果摘要、任意键退出 - file_selector.py: 重写为路径输入→验证→空输入弹窗回退→不存在循环重试 - run.bat: 新建启动脚本(chcp 65001, mode con cols=80 lines=20, color 0B, title固定署名, pause) - Code/docs/modification-assessment.md: 修改需求评估文档
This commit is contained in:
149
Releases/v1.0.1/Test/test_report.md
Normal file
149
Releases/v1.0.1/Test/test_report.md
Normal file
@@ -0,0 +1,149 @@
|
||||
# PinMAP → PinList 转换器 测试报告
|
||||
|
||||
> **日期**: 2026-05-25
|
||||
> **测试类型**: 集成测试 + 端到端测试
|
||||
> **测试环境**: Python 3.x, Linux x64
|
||||
|
||||
---
|
||||
|
||||
## 测试概览
|
||||
|
||||
| 类别 | 用例数 | 通过 | 失败 |
|
||||
|------|--------|------|------|
|
||||
| 标准转换 | 2 | 2 | 0 |
|
||||
| 错误场景 | 3 | 3 | 0 |
|
||||
| 边界条件 | 1 | 1 | 0 |
|
||||
| **总计** | **6** | **6** | **0** |
|
||||
|
||||
---
|
||||
|
||||
## 测试用例详情
|
||||
|
||||
### TC001: 标准4x4 PinMAP 转换
|
||||
- **输入**: `fixtures/sample_4x4.xlsx` (QFP44, 8个Pin)
|
||||
- **预期**: 正确解析8个Pin,逆时针1-8,输出PinList递增排序
|
||||
- **实际**: ✅ 解析8个Pin,Pin1→Pin8,序号递增,A1=QFP44
|
||||
- **结果**: **通过**
|
||||
|
||||
### TC002: 长方形PinMAP转换
|
||||
- **输入**: `fixtures/sample_rect.xlsx` (LQFP100, 13个Pin)
|
||||
- **预期**: 正确解析13个Pin,逆时针排序
|
||||
- **实际**: ✅ 解析13个Pin,逆时针顺序正确
|
||||
- **结果**: **通过**
|
||||
|
||||
### TC003: 序号不连续检测
|
||||
- **输入**: `fixtures/error_gap.xlsx` (缺失序号3)
|
||||
- **预期**: 报错"Pin序号不连续",给出缺失序号[3]
|
||||
- **实际**: ✅ 报错"Pin序号不连续 - 缺失的序号: [3]"
|
||||
- **结果**: **通过**
|
||||
|
||||
### TC004: 序号重复检测
|
||||
- **输入**: `fixtures/error_dup.xlsx` (序号2重复)
|
||||
- **预期**: 报错"Pin序号重复",给出重复序号[2]
|
||||
- **实际**: ✅ 报错"Pin序号重复 - 重复的序号: [2]"
|
||||
- **结果**: **通过**
|
||||
|
||||
### TC005: PinName缺失警告
|
||||
- **输入**: `fixtures/warning_missing.xlsx` (部分Pin缺少PinName)
|
||||
- **预期**: 警告"检测到N个引脚缺少PinName",自动设为NC
|
||||
- **实际**: ✅ 警告"检测到3个引脚缺少PinName",缺失序号[2,3,4]
|
||||
- **结果**: **通过**
|
||||
|
||||
### TC006: A1为空检测
|
||||
- **输入**: `fixtures/error_empty_a1.xlsx` (A1单元格为空)
|
||||
- **预期**: 报错"A1单元格为空,缺少封装信息"
|
||||
- **实际**: ✅ 捕获StructureError: "A1 单元格为空,缺少封装信息"
|
||||
- **结果**: **通过**
|
||||
|
||||
---
|
||||
|
||||
## 端到端测试
|
||||
|
||||
### main.py 命令行模式
|
||||
```bash
|
||||
python main.py /tmp/test_4x4.xlsx
|
||||
```
|
||||
**输出**:
|
||||
```
|
||||
[INFO] 解析完成: 6x6 方形,共 8 个Pin
|
||||
[INFO] 封装信息: QFP44
|
||||
|
||||
[SUCCESS] 转换完成!输出文件: /tmp/test_4x4_PinList.xlsx
|
||||
- 封装信息: QFP44
|
||||
- Pin数量: 8
|
||||
```
|
||||
**结果**: ✅ 通过
|
||||
|
||||
### 输出文件验证
|
||||
- **输入**: `sample_4x4.xlsx` → **输出**: `sample_4x4_PinList.xlsx`
|
||||
- **A1**: QFP44 ✅
|
||||
- **A列**: Pin1, Pin2, Pin3, Pin4, Pin5, Pin6, Pin7, Pin8 ✅
|
||||
- **B列**: 1, 2, 3, 4, 5, 6, 7, 8 ✅
|
||||
- **排序**: 递增 ✅
|
||||
|
||||
---
|
||||
|
||||
## 模块单元测试
|
||||
|
||||
### xlsx_roundtrip
|
||||
- 写入 → 读取 → 验证数据一致 ✅
|
||||
|
||||
### pinmap_parser
|
||||
- 4x4方形解析 ✅
|
||||
- 长方形解析 ✅
|
||||
- 角点去重 ✅
|
||||
|
||||
### validator
|
||||
- 连续性检查 ✅
|
||||
- 唯一性检查 ✅
|
||||
- PinName缺失检测 ✅
|
||||
- 结构完整性检查 ✅
|
||||
|
||||
### pinlist_generator
|
||||
- PinList生成 ✅
|
||||
- NC默认值 ✅
|
||||
- 递增排序 ✅
|
||||
|
||||
---
|
||||
|
||||
## 问题汇总
|
||||
|
||||
| 问题 | 严重性 | 状态 |
|
||||
|------|--------|------|
|
||||
| 无 | - | - |
|
||||
|
||||
**所有测试用例通过,无阻塞性问题。**
|
||||
|
||||
---
|
||||
|
||||
## 改进建议
|
||||
|
||||
1. **XLS读取测试**: 当前环境无.xls测试样本,建议在Windows环境用真实.xls文件验证BIFF8解析
|
||||
2. **字体格式保留**: 当前版本未实现字体格式保留(架构设计中有提及),可在后续版本添加
|
||||
3. **GUI模式**: tkinter文件选择对话框在Linux无头环境下需回退到命令行参数,已实现
|
||||
4. **性能优化**: 当前实现适合<1000引脚场景,超大文件可后续优化
|
||||
|
||||
---
|
||||
|
||||
## 结论
|
||||
|
||||
✅ **所有测试用例通过,项目可进入发布阶段。**
|
||||
|
||||
**交付物清单**:
|
||||
- `Code/src/main.py` — 主入口
|
||||
- `Code/src/file_selector.py` — 文件选择
|
||||
- `Code/src/xls_reader.py` — XLS读取引擎 (19KB)
|
||||
- `Code/src/xlsx_reader.py` — XLSX读取引擎
|
||||
- `Code/src/xlsx_writer.py` — XLSX写入引擎
|
||||
- `Code/src/pinmap_parser.py` — PinMAP解析器
|
||||
- `Code/src/validator.py` — 数据验证器
|
||||
- `Code/src/pinlist_generator.py` — PinList生成器
|
||||
- `Code/src/models.py` — 数据模型
|
||||
- `Code/src/utils.py` — 工具函数
|
||||
- `Code/docs/architecture-design.md` — 架构设计文档
|
||||
- `Test/fixtures/` — 测试夹具 (6个文件)
|
||||
- `Test/test_report.md` — 测试报告
|
||||
|
||||
---
|
||||
|
||||
*测试完成 — 2026-05-25*
|
||||
Reference in New Issue
Block a user