SuperAPI AI 工具集

atb-csv-testcase-generator

测试与质量

查看项目

更新于 10-24 05:38

技能介绍

ATB CSV Testcase Generator 是一个面向 ATB 算子的测试用例生成技能,用于产出 CSV 格式的泛化测试用例,支持正例、反例与性能测试三类设计。

用途与调用时机:当用户需要为 ATB 算子创建 CSV 测试用例,或需要生成正例、反例、性能测试用例时调用此技能。

主要能力:

  1. 正例设计:验证正常功能,覆盖典型场景,数量建议 5-15 个。
  2. 反例设计:覆盖所有参数校验分支,数量建议 10-20 个,覆盖数据类型、数据格式、维度数量、维度值、参数校验、输出 Shape 与 UB 边界等校验类型。
  3. 性能测试设计:按大/中/小 shape、不同数据类型与边界值设计,数量建议 5-10 个,TestType 列填写 Performance 即标记为性能测试。
  4. CSV 格式规范:遵循 21 列格式(CaseNum、CaseName、OpName、OpParam、InNum、InDType、InFormat、InShape、OutNum、OutDType、OutFormat、OutShape、DataGenType、DataGenRange、InTensorFile、OutTensorFile、TestType、TestLevel、FromModel、SocVersion、ExpectedError),并给出数据类型名称映射与常用 ExpectedError 类型说明。
  5. 多设备测试设计:设计时需同时覆盖 Ascend910B 与 Ascend950;场景完全一致时合并为一条(SocVersion 写 Ascend910B;Ascend950),存在 dtype、format、参数约束、维度限制、ExpectedError 或性能基准差异时分离为两条。实际运行时仅执行 Ascend910B 用例,Ascend950 用例由用户在 950 设备上手动验证。

使用方式:

  1. 执行前必须从用户处获取 ATB 仓库路径(ATB_REPO_PATH)。
  2. 获取算子接口规格,阅读源码中的参数校验逻辑(如查看 <ATB_REPO_PATH>/src/ops/ops_infer/<op_name>/<op_name>_operation.cpp 并用 grep 查找 ERROR_INVALID 分支)。
  3. 依次设计正例、反例与性能测试。
  4. 创建双文件输出:功能 CSV(正例+反例)为 <ATB_REPO_PATH>/tests/apitest/opstest/csv/<op_name>_func.csv,性能 CSV 为 <ATB_REPO_PATH>/tests/apitest/opstest/csv/<op_name>_perf.csv,可选生成合并文件 <op_name>_test.csv;拆分目的是让功能用例快速验证,性能用例单独运行以避免耗时与 OOM。
  5. 必须调用评审 agent 对 CSV 进行评审,检查完整度、正确性、Shape 一致性、设备分离与格式规范。
  6. 运行测试验证,示例命令:source <CANN_PATH>/set_env.sh;source <ATB_REPO_PATH>/output/atb/set_env.sh --cxx_abi=1;cd <ATB_REPO_PATH>/tests/framework/python/CsvOpsTestTool;python3 atb_csv_ops_test.py -i <CSV_FILE_PATH>。
  7. 设置用户确认检查点,未收到用户确认前不得进入实际迁移阶段。

适用场景:ATB 算子测试用例编写、正反例与性能用例设计、CSV 格式规范化、多 SoC 版本用例拆分。

限制:依赖用户提供 ATB 仓库路径与算子接口规格;实际测试环境仅执行 Ascend910B 用例;CSV 需遵循 21 列格式并使用 data_generation.py 支持的数据类型名称;具体收费、价格与更多平台信息暂未提供。