夜雨聆风学习资料网

ARTICLE · 1298321

几百条 Excel 测试用例,如何整理成 AI 能理解、程序能处理的标准用例?

几百条 Excel 测试用例,如何整理成 AI 能理解、程序能处理的标准用例?

AITA 开发手记 02|用例导进来了,然后呢?

上一篇聊了聊,我为什么想做一个面向金融测试的 AI 测试平台。

真正开始动手以后,我先遇到了一个很基础的问题:

手里已经有 Excel 用例了,怎么把它们接进平台?

最开始,我觉得这件事应该不复杂。

读一下 Excel,把用例名称、前置条件、操作步骤、预期结果取出来,存进数据库,再交给 AI 整理。

但做着做着,我发现,读出单元格里的文字只是第一步。

真正麻烦的是:这些文字,人能大概看懂,但程序不一定知道该怎么处理。

01|表格里有内容,不代表用例就说清楚了

先看一条很常见的用例。

字段
内容
用例名称
交易额度校验
前置条件
已登录系统
操作步骤
新增交易,填写数据,提交
预期结果
额度不足时正确拦截

乍一看,该有的字段都有了。

熟悉系统的人拿到它,可能也能开始测试:找个账号,准备一笔交易,再看看系统有没有拦截。

但如果要交给程序继续处理,问题就来了。

“填写数据”,具体填哪些字段?

“额度不足”,当前额度是多少,申请金额又是多少?

“正确拦截”,是出现提示、禁止提交,还是进入另一条审批流程?

这些信息没有写出来,后面的脚本就很难有一个明确的执行依据。

所以,这次开发让我先想清楚了一件事:

我要整理的,不只是 Excel 的格式,还有用例里没有讲清楚的内容。

02|第一步,先把不同表格里的字段对上

当然,业务问题要慢慢解决,眼前还是得先把表格导进来。

不同项目的 Excel,表头往往不一样。

同样是操作步骤,有的叫“测试步骤”,有的叫“操作过程”;预期结果也可能叫“预期输出”或“检查点”。

还有一些表格,前几行是标题和说明,真正的表头在后面。一个文件里,也可能有多个工作表。

因此,我没有直接要求所有人先改成同一份模板,而是先做了字段映射。

简单来说,就是让使用者确认:

这一列是用例名称,这一列是前置条件,这一列是步骤,这一列是预期。

其他暂时用不上的业务列,也尽量保留下来。

比如风险类别、业务编号、用例等级,现在可能还没有对应的功能,但不应该因为平台暂时不认识,就把它们丢掉。

这一步看起来只是导入功能,却会影响后面所有处理。

字段一旦对错,AI 整理得再认真,也是在处理错位的内容。

03|导入以后,先别急着让 AI 全部重写

几百条用例导进来,很容易产生一个想法:

直接让 AI 帮我清洗一遍,不就好了?

我也考虑过这个方向,但这里有一个问题:清洗到底允许改到什么程度?

比如,原来的预期是:

超过限额时拦截。

AI 整理成:

当申请金额大于或等于可用额度时,系统应禁止提交。

读起来确实更完整了。

但它把“超过”变成了“大于或等于”。

只多了几个字,边界规则就变了。

如果这段内容直接覆盖原用例,后面的测试可能一直在验证一个没人确认过的规则。

所以,我现在采用的思路是:先保留原文,再生成建议,最后由人决定是否采纳。

AI 可以帮忙整理表达,也可以指出问题。但材料里没有的业务规则,应该先问清楚。

04|有些问题,普通程序就能先检查

在调用 AI 之前,其实可以先做一些基础检查。

例如:

  • 用例名称是不是空的。
  • 有没有操作步骤和预期结果。
  • 是否出现“正常”“正确”“符合要求”这类模糊表述。
  • 一条步骤里是不是塞了太多操作。
  • 是否存在名称相同或内容相似的用例。

这些检查不一定需要模型参与。

先把明显的问题找出来,既方便人工处理,也能让后面的 AI 整理更有针对性。

不过,检查结果也需要注意分寸。

比如,两条用例标题一样,不代表它们一定重复,可能只是测试数据或者角色不同。

遇到这种情况,我更倾向于提示“疑似重复”,让人看一下,而不是直接合并或删除。

毕竟,少一条测试覆盖,表格看起来可能还更整齐了,但问题反而被藏起来了。

05|AI 更有用的地方,是帮我把问题问出来

这次做用例整理,我越来越觉得,AI 的价值不只是把句子写得顺一点。

有时候,它能帮我们发现:这条用例到底还缺什么。

还是拿额度校验举例。

原始内容是:

提交超额度交易,验证系统拦截。

整理时,值得提出的问题可能是:

这里指的是单笔限额,还是累计限额?

用什么数据构造“超额度”?

在哪个操作之后检查结果?

拦截后,交易应该处于什么状态?

这些问题一旦列出来,人工审核就有了具体的着力点。

测试人员可以去查需求,也可以找业务人员确认。确认完,再补回用例。

当然,AI 也可能漏问题,或者提出不适用的建议。所以这一步仍然是辅助审阅,需要结合实际业务核对。

理想的结果,是让人少做一些重复整理,多花一点时间确认真正影响结论的地方。

06|整理完成以后,为什么还要转成 JSON?

到了这一步,用例已经比原来清楚了。

但如果后续每个模块都直接读取 Excel,就会遇到另一个麻烦:大家都得理解不同表格的格式。

生成脚本要读一次,执行要读一次,报告可能还要重新找一遍用例编号。

以后换了模板,这些地方又要跟着改。

所以,我在中间加了一层标准用例描述,用 JSON 保存。

它主要表达几件事:

  • 这条用例是谁,有哪个版本。
  • 测试前需要满足什么条件。
  • 按顺序做哪些操作。
  • 在什么时机检查什么结果。
  • 最初来自哪份材料。

举个简化后的例子。假设业务已经确认了额度规则和下面这些测试条件,一条描述可以整理成这样:

{"case_id": "CASE-001","case_version": 1,"title": "申请金额超过可用额度时拦截","preconditions": ["测试账号具备交易录入权限","可用额度为100万元"  ],"steps": [    {"id": "s1","description": "填写申请金额101万元"    },    {"id": "s2","description": "提交申请"    }  ],"assertions": [    {"id": "a1","after_step": "s2","expected": "提示额度不足,申请未提交成功"    }  ],"source": {"file": "交易测试用例.xlsx","sheet": "额度校验","row": 12  }}

这是说明思路的简化示例,金额和规则均为假设,不是实际项目规则,也不是可执行脚本。

JSON 的好处,是后面的程序可以按照相对固定的结构读取内容。

比如,知道 steps 里是步骤,知道某条断言关联 s2,也知道出了问题可以回到 Excel 的哪一行。

但这里有一个很容易误解的地方:

变成 JSON,不等于变成自动化。

上面的“提交申请”,还没有对应到具体页面、按钮和执行方法。“额度不足”也还需要确定从哪里读取、怎样比较。

这些都需要后续继续处理。

标准描述解决的是“内容怎么组织”,自动化绑定解决的才是“具体怎么执行”。

07|为什么我还要保留来源和版本?

刚开始整理用例时,很容易只关注最后那份干净的数据。

但真正用起来以后,经常需要回头查:

这条用例最初在哪个文件里?

这段预期是导入时就有,还是 AI 建议后改的?

审核通过以后,又有没有人修改过?

如果没有来源和版本,最后只能重新翻表格、查聊天记录。

因此,AITA 里会保留用例的导入批次、工作表和行号,也会记录后续修改。

用例发生变化后,之前导出的 JSON 也需要标记为过期,不能让人误以为它还是当前版本。

这部分功能可能没有 AI 生成那么显眼,但对于持续维护一个项目很重要。

毕竟,用例整理不会只做一次,需求还会继续改。

08|目前做到了哪里?

目前,AITA 这部分已经有了 Excel 导入、字段映射、基础问题检查、AI 清洗建议、人工采纳,以及标准 JSON 预览和导出的基础链路。

但它还有一些限制。

比如,目前导入主要支持 .xlsx,复杂的合并单元格、图片里的内容,还不能指望平台完整理解。字段映射也需要人工确认。

至于整理后的用例能不能真正支持后面的自动化,还要拿具体业务场景继续验证。

接下来,我准备沿着这条线往下做:

选一条确认过的用例,看看它怎么对应到页面操作,哪些步骤能够复用,哪些地方还得补数据、补规则或者人工实现。

这次做下来,我最大的感受是:

把用例交给 AI 之前,先得知道哪些内容已经确定,哪些问题还没有答案。

表格读出来很快,把一条用例说明白,往往才是更费功夫的部分。

AITA 开发手记继续更新。下一篇,准备聊聊:AI 整理出来的用例,哪些修改可以采纳,哪些必须再问一句“依据是什么”?


关于 AI 测研社

专注 AI 测试工程化与自动化 Agent。

分享真实项目、可运行代码、技术实践和开源工具,探索 AI 如何融入自动化测试工作流。

回首页,搜索你想要的文档

在首页搜索框输入关键词,快速定位资料

文库首页搜索指引 立即搜索

相关学习资料