AI智能体在测试自动化中的作用

2025-05-11   出处: Medium  作/译者:Camille/小窝

什么是AI智能体?

当AI不再仅仅是回答你的问题,而是能够主动采取行动并自主行事时,会发生什么呢?AI智能体正在改变在无需人工干预情况下人工智能所能做到的事情。

但究竟什么是AI智能体呢?

当与 ChatGPT 或其他聊天机器人互动时,提出问题,它会给出回应。然而,AI智能体更进一步,能够自主地采取行动、做出决策,或者与外部系统进行交互。

AI智能体是一种能够自主工作以实现特定目标的系统。

2023 年在柏林举行的 AutomationSTAR 会议上,马塞尔・韦塞尔卡(Marcel Veselka)关于AI智能体在质量保证(QA)未来中所能扮演角色的阐述给了我启发。

从那以后,我一直在研究智能体人工智能,并且这方面已经有了一些重大进展。在这篇博客文章中,我想探讨一下自主型AI智能体在质量保证中可以发挥怎样的作用。

为了让这篇博客聚焦于各种可能性,我有意忽略了关于不在你的项目中引入AI的任何伦理、安全或其他合理的担忧 😃

我之前的智能体工作流程演示

为了展示这些自主智能体在未来质量保证中可能发挥的作用,我去年创建了一个演示,展示了完全自主的拉取请求(pull request)审查。它基本上模仿了手动测试人员会做的简化版本的工作:

  • 首先,它通过读取拉取请求或 Jira 问题的上下文来确定要运行哪些测试用例。
  • 然后,它使用一个自主的浏览器智能体在预览环境中实际执行这些测试用例。
  • 最后,它直接在拉取请求上报告结果。
    (演示地址:https://github.com/tlolkema/autonomous-pr-test

虽然这个演示非常简化,但它确实展示了在开发流程中使用自主智能体的潜力。

智能体人工智能系统的现状

在我完成演示后的几个月里,各大AI公司都开始推出他们的智能体人工智能系统。

如下一些例子:

  • Anthropic 发布了 “计算机使用(Computer use)”、“模型上下文协议(Model Context Protocol,MCP)”,最近又发布了 Claude Code。
  • OpenAI 发布了 Operator。
  • 谷歌发布了 Project Mariner。

除了这些,还有一些令人兴奋的开源项目,比如:

  • Browser Use

OpenAI、Anthropic、谷歌 xAI 以及其他参与者都推出了他们的推理模型。其理念是,推理能力越强,这些模型就越能够指导AI智能体。

目前(2025 年 3 月),控制计算机或浏览器的AI智能体的能力还尚未达到人类水平,但它们能够处理的任务列表每天都在增加。

OpenAI Operator:
“在这些基准测试中,CUA在 WebArena 上实现了 58.1% 的成功率,在 WebVoyager 上针对基于网络的任务实现了 87% 的成功率。虽然 CUA 在大多数任务相对简单的 WebVoyager 上取得了较高的成功率,但在像 WebArena 这样更复杂的基准测试中,CUA 仍需要更多改进,以缩小与人类表现之间的差距。”

模型上下文协议(MCP)

智能体人工智能领域中一个令人兴奋的发展是 Anthropic 的模型上下文协议(MCP)。MCP 旨在对大语言模型(LLM)连接到各种工具的方式进行标准化。

它并不局限于 Anthropic 的 Claude 模型或任何特定的大语言模型,并且已经可以与广泛的工具进行通信。

一个 MCP 服务器基本上是一组用于调用特定工具的指令。它们创建起来非常简单,这也就解释了为什么 Anthropic 和社区已经提供了大量受支持的 MCP 服务器列表。

你会发现有用于自动化工具(如 Puppeteer 和 Playwright)的 MCP 服务器、与 Git 交互的 MCP 服务器、连接到搜索引擎的 MCP 服务器,或者与几种流行的 API 配合使用的 MCP 服务器。
(相关地址:https://github.com/modelcontextprotocol/servers

“MCP 是一种开放协议,它对应用程序如何为大语言模型提供上下文进行了标准化。可以把 MCP 想象成人工智能应用程序的 USB-C 接口。就像 USB-C 为将你的设备连接到各种外围设备和配件提供了一种标准化的方式一样,MCP 为将人工智能模型连接到不同的数据源和工具提供了一种标准化的方式。”

让我们来看看官方的 Puppeteer MCP 服务器是什么样的 🚀
(相关地址:https://github.com/modelcontextprotocol/servers/blob/main/src/puppeteer/index.ts

遵循 MCP 协议,我们可以定义大语言模型可以调用的工具。

在这个例子中是 Puppeteer 的点击(click)方法:

{
    name: "puppeteer_click",
    description: "Click an element on the page",
    inputSchema: {
        type: "object",
        properties: {
            selector: { type: "string", description: "CSS selector for element to click" },
        },
        required: ["selector"],
    },
},

以及这个点击方法的实现:

case "puppeteer_click":
    try {
        await page.click(args.selector);
        return {
            content: [{
                type: "text",
                text: `Clicked: ${args.selector}`,
            }],
            isError: false,
        };
    } catch (error) {
        return {
            content: [{
                type: "text",
                text: `Failed to click ${args.selector}: ${(error as Error).message}`,
            }],
            isError: true,
        };
    }

如你所见,创建一个 MCP 服务器实际上相当简单 😃

而且很有可能已经有人为你喜欢的工具构建了一个 MCP 服务器!

MCP 会成为未来的标准吗?还是我们会看到更多的闭源人工智能代理占据主导地位呢?这仍然悬而未决。只有时间才能证明最终哪种方法会胜出。

自主测试与脚本化测试自动化

自主测试会完全取代脚本化测试自动化吗?

我认为短期内不会。

自主系统永远不会像脚本测试自动化那样快速、可重现且准确。这是因为AI智能体必须不断评估它们的行动,并确定为实现目标下一步应该做什么。

虽然脚本自动化遵循预定的路径,具有可预测的时间安排和结果,但AI智能体必须不断地处理、分析和决策 —— 这会影响速度和一致性。

正因为如此,预定的脚本总是能更快地实现目标,并且可以完全重复执行。这些对于自动化回归测试来说是重要的因素。

我预计脚本测试自动化仍将是回归测试的主要方法。

然而,AI智能体在一次成功的测试之后,可以在自行创建这些脚本以扩展现有测试套件方面发挥重要作用。它们可以观察自己成功的测试路径,并生成优化的脚本。

自主型AI智能体的优势在哪里?

AI智能体在测试新功能时真正发挥出了优势。

想象一下:你刚刚构建了一个新功能,立刻就有几个AI智能体行动起来。一个智能体专注于检查可访问性问题,另一个测试核心功能,还有一个专门查找安全问题。

这比在这些领域进行手动测试要快得多,并且能快速反馈哪些地方需要修复。

AI智能体对于那些棘手的自动化测试领域尤其有帮助,比如测试屏幕阅读器的可访问性。当页面结构不同时,按照预定义的一组指令进行的围绕屏幕阅读器的自动化测试可能会失败。然而,AI智能体仍然可以通过直接根据可访问性指南评估情况,而不是遵循严格的测试步骤,来评估这种检查是否正常工作。

未来展望

我认为随着越来越多的测试由AI智能体来处理,质量保证工程师的角色将会发生演变。质量保证工程师将不得不确定基于智能体的测试的质量,并设计将这些智能体集成到持续集成 / 持续交付(CI/CD)管道中的方案。

在不久的将来,我预计我们会看到多种测试类型并存。

  • 脚本测试自动化将继续处理对速度和可重复性要求最高的回归测试。
  • AI智能体将处理传统自动化难以应对的复杂探索性场景和边缘情况。
  • 随着智能体发现意外问题的能力越来越强,我们可能会看到手动探索性测试的减少。


声明:本文为本站编辑转载,文章版权归原作者所有。文章内容为作者个人观点,本站只提供转载参考(依行业惯例严格标明出处和作译者),目的在于传递更多专业信息,普惠测试相关从业者,开源分享,推动行业交流和进步。 如涉及作品内容、版权和其它问题,请原作者及时与本站联系(QQ:1017718740),我们将第一时间进行处理。本站拥有对此声明的最终解释权!欢迎大家通过新浪微博(@测试窝)或微信公众号(测试窝)关注我们,与我们的编辑和其他窝友交流。
22° /222 人阅读/0 条评论 发表评论

登录 后发表评论
最新文章