-
当用户已提供测试文档时,优先直接使用该文档生成测试用例,不要求先完成步骤 4/5。
-
当用户已提供测试文档时,测试文档中的每一个场景都必须写出至少一个对应测试用例;不得只挑选部分场景生成,也不得把多个独立场景合并成一个概括性 case。
-
若测试文档中的某个场景还能进一步拆成多个原子行为,则必须继续拆分并为每个原子行为分别写 case;但无论是否拆分,原始场景本身不得遗漏,必须在覆盖映射中能追踪到至少一个已生成用例。
-
@testing:case 命名格式为 test_<测试对象>_<场景>。
-
@testing:case 名称中的 <场景> 必须写成可读的测试场景描述,直接体现被验证的行为/条件/预期,不得仅使用 point_id、编号或其简单拼接作为场景名。
-
若测试文档中存在 point_id(如 MCBL_N01),该编号只用于内部覆盖映射和核对,不得作为最终 case 名主体;默认不要输出形如 test_xxx_MCBL_N01、test_xxx_SECBL_N03 的名称。
-
若确需保留编号用于追踪,必须采用“场景名优先、编号次要”的形式,且场景名不可省略;例如 test_context_by_limit_offset_olap_cross_partition_pagination,而不是 test_context_by_limit_offset_olap_MCBL_N01。
-
当用户文档存在无编号/编号不全/编号重复时,先完成内部唯一编号重建,再建立覆盖映射并生成 case。
-
生成前先建立“测试要点清单 -> case 名称”映射表;每个测试要点条目至少映射一个 case。
-
生成后做覆盖核对:已覆盖测试要点数 == 测试要点总数 才允许输出“最终完整版测试用例”。
-
输出顺序必须固定:先完整输出全部异常用例,再完整输出全部正常用例;在任一正常用例开始前,不得夹杂未输出的异常用例。
-
异常用例包括但不限于:参数个数错误、语法错误、NULL、非法数据类型、非法数据形式、非法取值、长度不匹配、类型不匹配、环境/引擎/表类型不支持、联动约束不满足。
-
只有当全部异常场景都已写完并完成覆盖核对后,才可开始编写正常路径与正确性用例。
-
需要异常校验时,添加 exception=1。
-
预期语法错误,比如参数个数少于预期,添加 syntaxError=1。
-
覆盖参数个数错误。
-
覆盖异常路径。
-
覆盖边界情况(如空向量、空表、NULL、极值、单元素输入)。
-
覆盖正常路径。
-
对接口每一个参数,必须覆盖 数据类型 中涉及的所有数据类型(包括 NULL) 和数据结构。对于不支持的类型分别输出异常用例,对
于支持的类型要测试所有支持的数据类型x数据形式的组合。
-
覆盖类型相关主要分支(如标量、向量、矩阵、表、字典);是否全部覆盖取决于函数语义。
-
若测试方案对新增计算函数有额外要求,补充流计算支持、性能或 SQL 相关覆盖。
-
若行为依赖排序、分区、键值列、时间类型或 Decimal/Integral 精度,必须显式覆盖这些差异。
-
对每个参数,凡设计文档或参考样例中能识别出的非法类型、非法数据形式、空值形式、长度不匹配、类型不匹配、取值越界、重载差异,都应分别生成独立 case,不得用一个 case 代替一组类型。
-
对涉及表、分布式表、共享表、流表、分区表的参数,若文档未明确排除,默认分别考虑并生成对应 case;若不支持,则写异常用例。
-
默认生成完整版测试用例,不遗漏场景4或上下文中设计的任何一个测试点,不生成概括性草案。
-
只要输入中存在测试文档(测试场景文档/测试要点文档),最终输出的测试用例必须做到“文档场景全覆盖”;若有任一场景未写出用例,则不得声称已完成或已生成最终版。
-
除非用户明确要求缩减覆盖,否则禁止使用“先给一版主干用例 / 先给代表性用例 / 先给骨架后续补充”的策略。
-
若当前结果仍有任一参数未完成 NULL、类型错误、结构错误、非法取值、联动约束的独立覆盖,则不得将其作为最终测试用例输出。
-
若不清楚用法,先去参考文档 中找示例,不要直接猜测。
-
若无法生成完整版测试用例,允许的输出只能是: