近期一直在琢磨利用 AI 到底能对我的工作带来哪些帮助或创意,作为一名自动化测试爱好者与从业者,把 AI 应用到自动化测试,我觉得是一件很酷的事情!
于是便有了今天这篇文章。
注:AI 驱动的无监督自动化测试,目前只是我的一次探索,尚未提供完善的代码。本文自动化指的是网页端 UI 自动化测试 。
一、自动化测试痛点;
二、总体想法;
三、具体实现;
四、演示;
五、总结;
自动化测试人员在编写自动化用例时,通常必不可少的步骤有:
理解和分析软件需求文档,明确测试目标和范围。
确定需要自动化的测试用例,通常选择重复性高、稳定性强的用例。
编写详细的测试用例,包括测试目的、输入数据、预期结果和执行步骤。
确保测试用例具有可重复性和可维护性。
等其他步骤。
这两个步骤需要自动化测试人员介入,而编写自动化测试用例更是重中之重,基本上可以认为是前期投入最多的,正因如此,我想在这方面做出有创意的改变!
我的想法是,一定要:简单、简单、再简单!
要做到:
代码位于 git 仓库:https://github.com/dylanz666/ai-driven-e2e-automation.git
此处截取核心演示代码:
说明:
此处不作 demo。
对于页面操作部分,如点击、输入文本等,我只提供了通用的底层,只需要在脚本中根据 AI 生成的用例去调用底层即可。做到了针对 AI 生成的不同用例,我们不需要再维护脚本的效果~
(由于 testhome 无法插入视频,我就口述一下吧,运行代码打开网页后,经过 AI 用例生成、AI 元素定位之后,自动在搜索输入框输入用例中的字符串,点击 “百度一下,百度完成后由 AI 对搜索结果进行判断,最终判定本次自动化测试是否成功。)
注意:视频中在输入框中输入文本、点击 “百度一下” 按钮、最后的断言,都不是由自动化测试人员一行代码一行代码敲出来的,而是由 AI 规划并实现的!
通过上述设计与实现,我觉得已经基本实现了 “AI 驱动的无监督自动化测试”,解放了自动化测试人员的双手,但很容易想到其也存在明显局限性:
1. 更适合针对流程简单、对外开放的产品进行 high level 测试、探索性测试、sanity 测试;
2. 对于需要在测试过程中使用业务数据和业务预期的产品,目前不适合;
3. 对 AI 的依赖很大,其可靠性、使用成本需要谨慎考虑,毕竟 AI 非常花钱。
当然,能够针对不同业务需求,在自动化测试的不同角度训练出针对性的解决方案与模型,定是更完美的,但这对方方面面的要求就很高喽!
而我这样简单的探索与设计,个人觉得,不失为一个敲门砖,不失为一个小创意!
本文主要目的是为了跑通我 “让 AI 自发对测试对象进行测试” 的想法,并未作全盘考虑,请见谅~
Respect!