Skip to content

Latest commit

 

History

History
99 lines (80 loc) · 3.75 KB

File metadata and controls

99 lines (80 loc) · 3.75 KB

集成测试矩阵设计

设计原则

  1. 一个测试用例 = 一条转换路径:输入格式A → 输出格式B
  2. 优先文本输出:便于验证和diff比较
  3. 覆盖主要格式:测试最常用的输入法格式
  4. 最小化测试数量:避免冗余测试

测试矩阵

核心转换路径测试(文本输出)

测试ID 输入格式 输入文件 输出格式 说明 词条数
T1 搜狗.scel 唐诗300首.scel 搜狗文本 最常用格式 3,563
T2 QQ拼音.txt QQPinyin.txt 搜狗文本 QQ文本→搜狗 4
T3 QQ拼音.qpyd 成语.qpyd 搜狗文本 QQ分类→搜狗 1,657
T4 QQ拼音.qcel 星际战甲.qcel 搜狗文本 QQ英文→搜狗 4,675
T5 百度.bdict travel.bdict 搜狗文本 百度→搜狗 ~200
T6 Rime luna_pinyin_export.txt 搜狗文本 Rime→搜狗 14
T7 灵格斯.ld2 i.ld2 搜狗文本 灵格斯→搜狗 大量
T8 自定义 array30.txt 搜狗文本 行列30→搜狗 大量
T9 纯汉字 纯汉字.txt 搜狗文本 无拼音→搜狗 13

二进制格式输出测试

测试ID 输入格式 输入文件 输出格式 说明
T10 搜狗文本 唐诗300首(已转) 搜狗.scel 验证二进制导出
T11 搜狗文本 唐诗300首(已转) QQ.qpyd 验证QQ二进制导出

特殊场景测试

测试ID 场景 输入文件 输出格式 说明
T12 编码GBK gbzy.txt 搜狗文本 GBK编码
T13 UTF-8无BOM u8nobomzy.txt 搜狗文本 UTF-8无BOM
T14 英文词条 QQPinyin_English.txt 搜狗文本 包含英文
T15 大文件性能 诗词名句大全.scel 搜狗文本 13MB, 342K词条

测试套件组织

方案A:按输入格式分组(当前方案)

test-cases/
├── sougou-scel/        # 搜狗.scel测试
├── qq-pinyin-txt/      # QQ拼音文本测试
├── qq-qpyd/            # QQ分类词库测试
├── qq-qcel/            # QQ英文词库测试
├── baidu-bdict/        # 百度测试
├── rime/               # Rime测试
├── lingoes-ld2/        # 灵格斯测试
├── self-defining/      # 自定义格式测试
└── special-cases/      # 特殊场景测试

方案B:单一综合测试套件(推荐)

test-cases/
└── conversion-matrix/   # 所有转换路径测试
    ├── test-config.yaml # 包含所有测试用例
    ├── README.md
    └── expected/        # 所有预期输出
        ├── t1-scel-to-sgpy.expected
        ├── t2-qqpy-to-sgpy.expected
        ├── t3-qpyd-to-sgpy.expected
        └── ...

方案C:混合方案(建议)

test-cases/
├── imports/             # 输入格式测试(文本输出)
│   ├── test-config.yaml # 包含T1-T9
│   └── expected/
└── exports/             # 输出格式测试(二进制输出)
    ├── test-config.yaml # 包含T10-T11
    └── expected/

优化后的优势

  1. 测试数量减少:从30+个测试用例优化到15个核心测试
  2. 维护成本降低:单一配置文件,统一管理
  3. 覆盖率不变:仍然覆盖所有主要格式
  4. 执行速度更快:减少重复的设置开销
  5. 更清晰的测试目的:每个测试明确一条转换路径

实施建议

  1. 保留现有的测试套件作为参考
  2. 创建新的 conversion-matrix 测试套件
  3. 逐步迁移,确保测试通过
  4. 最终删除旧的测试套件

下一步

选择方案B或C,创建统一的测试配置文件。