Files
pinmap-to-pinlist/Test/test_report.md

5.6 KiB
Raw Blame History

PinMAP ↔ PinList 双向转换器 测试报告

日期: 2026-06-12 测试类型: 集成测试 + 端到端测试 测试环境: Python 3.x, Linux x64


测试概览

类别 用例数 通过 失败
MAP->List 回归 6 6 0
List->MAP 新增 17 17 0
v1.5 模板/样式集成 14 14 0
总计 37 37 0

Part 1: MAP→List 回归测试

TC-MAP-001: 标准4x4 PinMAP转换

  • 结果: 通过
  • 详情: 封装=QFP-16, Pin数=16, 序号 1-16, 引脚名=Pin1..Pin16

TC-MAP-002: 长方形PinMAP转换

  • 结果: 通过
  • 详情: 封装=LQFP100, Pin数=11, 序号递增

TC-MAP-003: 序号不连续检测

  • 结果: 通过
  • 详情: 错误: Pin序号不连续 — 缺失的序号: [3]

TC-MAP-004: 序号重复检测

  • 结果: 通过
  • 详情: 错误: Pin序号重复 — 重复的序号: [2]

TC-MAP-005: PinName缺失警告

  • 结果: 通过
  • 详情: 警告: 检测到 3 个引脚缺少 PinName — 缺失引脚序号: [2, 3, 4],将默认为 NC

TC-MAP-006: A1为空检测

  • 结果: 通过
  • 详情: 正确报错: A1 单元格为空,缺少封装信息

Part 2: List→MAP 新增功能测试

TC-LM-001: 5×5 PinList→PinMAP (20引脚)

  • 结果: 通过
  • 详情: 解析成功, 封装=QFP-20, Pin数=20, 5×5布局验证通过

TC-LM-002: 6×10 PinList→PinMAP (32引脚)

  • 结果: 通过
  • 详情: 解析成功, 封装=LQFP-32, Pin数=32, 6×10布局+文件输出验证通过

TC-LM-003: 带模板文件的转换

  • 结果: 通过
  • 详情: 模板样式读取成功, 带模板输出文件包含styles.xml

TC-LM-004: Pin序号不连续

  • 结果: 通过
  • 详情: 正确报错: Pin序号不连续 — 缺失的序号: [3]

TC-LM-005: Pin序号重复

  • 结果: 通过
  • 详情: 正确报错: Pin序号不连续 — 缺失的序号: [4]

TC-LM-006: Pin总数不匹配

  • 结果: 通过
  • 详情: 正确报错: Pin数量与网格周长不匹配 — 网格 3×4 需要 14 个引脚,但 PinList 有 8 个

TC-LM-007: 缺少PinName (warning)

  • 结果: 通过
  • 详情: 验证通过(有warning): 检测到 1 个引脚缺少 PinName — 缺失引脚序号: [2],将默认为 NC

TC-LM-008: 非4倍数提示

  • 结果: 通过
  • 详情: 验证通过, Pin数=14 (非4倍数)

TC-LM-009: 布局计算正确性

  • 结果: 通过
  • 详情: 布局计算正确: left=3, bottom=3, right=3, top=3, 逆时针顺序正确

TC-LM-010: 模板文件检测(无模板)

  • 结果: 通过
  • 详情: 无模板文件时优雅返回None

TC-LM-011: 无效尺寸输入(行数<2)

  • 结果: 通过
  • 详情: 正确报错: 行数无效: 1至少需要 2 行

TC-LM-011b: 无效尺寸输入(列数<2)

  • 结果: 通过
  • 详情: 正确报错: 列数无效: 1至少需要 2 列

TC-LM-012: 输出文件正确性

  • 结果: 通过
  • 详情: 输出文件验证通过: A1=QFP-12, 包含Pin1-Pin12

TC-LM-013: 端到端Roundtrip (MAP→List→MAP)

  • 结果: 通过
  • 详情: Roundtrip成功: PinList(12) → PinMAP(3×3) → PinList(12), 序号一致

TC-LM-014: 输出路径生成

  • 结果: 通过
  • 详情: 路径生成正确: /path/to/my_pinlist_PinMAP.xlsx

TC-LM-015: 空PinList文件

  • 结果: 通过
  • 详情: 正确报错: 未找到任何引脚数据A/B 列为空)

TC-LM-016: A1为空的PinList

  • 结果: 通过
  • 详情: 正确报错: A1 单元格为空,无法获取封装信息

Part 3: v1.5 模板/样式集成测试

TC-v1.5-001: MAP->List 加载 PinList 模板

  • 结果: 通过
  • 详情: 模板加载成功: fonts=2, borders=2, width_A=25.0

TC-v1.5-002: MAP->List 无模板降级

  • 结果: 通过
  • 详情: 无模板文件时优雅返回 None

TC-v1.5-003: List->MAP 加载 PinMAP 模板

  • 结果: 通过
  • 详情: 模板加载成功: fonts=2, borders=2, row_height=25.0

TC-v1.5-004: List->MAP 无模板降级

  • 结果: 通过
  • 详情: 无模板文件时优雅返回 None

TC-v1.5-005: 两个方向独立使用各自模板

  • 结果: 通过
  • 详情: 两个模板独立: PL fonts=2, PM fonts=2

TC-v1.5-006: 模板损坏优雅降级

  • 结果: 通过
  • 详情: 损坏模板优雅返回 None

TC-v1.5-007: 模板字体应用到输出文件

  • 结果: 通过
  • 详情: 输出 styles.xml 包含模板字体(宋体 14pt)

TC-v1.5-008: 模板列宽应用到输出文件

  • 结果: 通过
  • 详情: 列宽验证通过: A=25.0, B=18.0

TC-v1.5-009: 模板行高应用到输出文件

  • 结果: 通过
  • 详情: 行高验证通过: ht=25

TC-v1.5-010: 两个方向不同模板各自的格式

  • 结果: 通过
  • 详情: 两个方向输出字体不同: PinList->楷体, PinMAP->宋体

TC-v1.5-011: 完整往返+模板隔离

  • 结果: 通过
  • 详情: 往返成功: 16 pins, 楷体->PinList, 宋体->PinMAP

TC-v1.5-012: 无模板完整流程

  • 结果: 通过
  • 详情: 无模板完整流程正常

TC-v1.5-013: 极简模板(只有字体)

  • 结果: 通过
  • 详情: 极简模板: font=Courier New

TC-v1.5-014: 列宽扩展

  • 结果: 通过
  • 详情: 列宽扩展正确: A=15.0, B=12.0, C=10.0, D=8.0, E=8.0

结论

所有测试用例通过,项目可进入发布阶段。


测试完成