AI测试 探索 AI 驱动的无监督自动化测试

dylanz666 · June 12, 2025 · Last by sir replied at June 13, 2025 · 1193 hits

近期一直在琢磨利用 AI 到底能对我的工作带来哪些帮助或创意,作为一名自动化测试爱好者与从业者,把 AI 应用到自动化测试,我觉得是一件很酷的事情!

于是便有了今天这篇文章。

注:AI 驱动的无监督自动化测试,目前只是我的一次探索,尚未提供完善的代码。本文自动化指的是网页端 UI 自动化测试 。

学习路径

一、自动化测试痛点;
二、总体想法;
三、具体实现;
四、演示;
五、总结;

一、自动化测试痛点;

自动化测试人员在编写自动化用例时,通常必不可少的步骤有:

  • 需求分析:

理解和分析软件需求文档,明确测试目标和范围。
确定需要自动化的测试用例,通常选择重复性高、稳定性强的用例。

  • 测试用例设计:

编写详细的测试用例,包括测试目的、输入数据、预期结果和执行步骤。
确保测试用例具有可重复性和可维护性。

等其他步骤。

这两个步骤需要自动化测试人员介入,而编写自动化测试用例更是重中之重,基本上可以认为是前期投入最多的,正因如此,我想在这方面做出有创意的改变!

二、总体想法;

我的想法是,一定要:简单、简单、再简单!
要做到:

  1. 提供一个页面 url,直接执行脚本,便能展开对测试对象的测试;
  2. 不需要像过往编写脚本那样,需要收集与维护元素定位方式;
  3. 不需要像过往编写脚本那样,需要编写与维护很多业务层面、逻辑层面的代码;

三、具体实现;

代码位于 git 仓库:https://github.com/dylanz666/ai-driven-e2e-automation.git

此处截取核心演示代码:

说明:

  1. 该代码执行时只能针对第一个页面进行测试,实际上,只需要在这个代码之上再套一个 for 循环,便能实现简单的跨页面端到端测试,例如:

此处不作 demo。

  1. 如果要自动生成不同用例并展开测试,则可以简单利用 pytest 的 -n 参数,由 pytest 多次执行本代码,运行时由核心代码自动生成不同用例并执行。
  2. 代码中使用的 AI 由我司提供,基于 Chat GPT。 如此设计,我完成了:
  • 文本用例由 AI 自动生成;
  • 页面元素定位方式由 AI 自动检索;
  • 用例断言也由 AI 自动完成;

对于页面操作部分,如点击、输入文本等,我只提供了通用的底层,只需要在脚本中根据 AI 生成的用例去调用底层即可。做到了针对 AI 生成的不同用例,我们不需要再维护脚本的效果~

四、演示;

(由于 testhome 无法插入视频,我就口述一下吧,运行代码打开网页后,经过 AI 用例生成、AI 元素定位之后,自动在搜索输入框输入用例中的字符串,点击 “百度一下,百度完成后由 AI 对搜索结果进行判断,最终判定本次自动化测试是否成功。)

注意:视频中在输入框中输入文本、点击 “百度一下” 按钮、最后的断言,都不是由自动化测试人员一行代码一行代码敲出来的,而是由 AI 规划并实现的!

五、总结;

通过上述设计与实现,我觉得已经基本实现了 “AI 驱动的无监督自动化测试”,解放了自动化测试人员的双手,但很容易想到其也存在明显局限性:

1. 更适合针对流程简单、对外开放的产品进行 high level 测试、探索性测试、sanity 测试;
2. 对于需要在测试过程中使用业务数据和业务预期的产品,目前不适合;
3. 对 AI 的依赖很大,其可靠性、使用成本需要谨慎考虑,毕竟 AI 非常花钱。

当然,能够针对不同业务需求,在自动化测试的不同角度训练出针对性的解决方案与模型,定是更完美的,但这对方方面面的要求就很高喽!
而我这样简单的探索与设计,个人觉得,不失为一个敲门砖,不失为一个小创意!

本文主要目的是为了跑通我 “让 AI 自发对测试对象进行测试” 的想法,并未作全盘考虑,请见谅~

Respect!

免费的点赞、关注来一个?感恩~

共收到 1 条回复 时间 点赞

自动化一般讲究覆盖度,想问一下这块让来 AI 自动生成的话如何保障覆盖度呢

需要 Sign In 后方可回复, 如果你还没有账号请点击这里 Sign Up