- 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: 修改需求评估文档
4.2 KiB
4.2 KiB
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 命令行模式
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默认值 ✅
- 递增排序 ✅
问题汇总
| 问题 | 严重性 | 状态 |
|---|---|---|
| 无 | - | - |
所有测试用例通过,无阻塞性问题。
改进建议
- XLS读取测试: 当前环境无.xls测试样本,建议在Windows环境用真实.xls文件验证BIFF8解析
- 字体格式保留: 当前版本未实现字体格式保留(架构设计中有提及),可在后续版本添加
- GUI模式: tkinter文件选择对话框在Linux无头环境下需回退到命令行参数,已实现
- 性能优化: 当前实现适合<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