Files
pinmap-to-pinlist/Releases/v1.0.1/Test/test_report.md
Agent 836ad20515 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: 修改需求评估文档
2026-05-25 17:29:19 +08:00

4.2 KiB
Raw Permalink Blame History

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个PinPin1→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默认值
  • 递增排序

问题汇总

问题 严重性 状态
- -

所有测试用例通过,无阻塞性问题。


改进建议

  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