弥合 QA 瓶颈:推出 agent-qa

在 AI 编码代理推动下,软件开发的快速加速带来了新的挑战:测试瓶颈。虽然 AI 能以闪电般的速度交付功能,但确保这些功能在生产环境中正常运行且不破坏已有行为仍是关键问题。传统上,将用户故事和产品需求文档(PRD)转换为可组合的端到端(E2E)测试,需要软件或 QA 工程师进行手动工作。

随着 AI 驱动的开发成为常态,手动创建测试成为瓶颈。即使让 AI 负责编写测试,也会出现重大风险:AI 可能会贪婪地追求通过测试,利用对代码的访问权违规或走捷径,未能真实模拟用户行为。

agent-qa 架构

为了解决此问题,agent-qa 提供了一个开源的代理式 QA 框架,允许开发者和产品经理使用自然语言编写测试。通过将测试定义与实现解耦,它确保测试从以用户为中心的视角编写,而非以代码为中心。

核心与框架

agent-qa 通过由核心和框架组成的双层架构运行:

  • 核心(The Kernel): 基于经过实战检验的框架,如 Playwright(用于网页)和 Appium(用于移动端)。核心充当执行引擎,在被测应用上执行计划的操作。
  • 框架(The Harness): AI 代理所在之处。框架管理测试过程的高层逻辑,遵循观察、规划、执行的持续循环。

代理循环

不同于静态脚本,agent-qa 中的代理并非仅按顺序执行步骤,而是采用动态循环:

  1. 观察(Observation): 代理观察 UI 的当前状态。
  2. 规划(Planning): 它确定实现自然语言测试中定义目标所需的下一步操作。
  3. 执行(Execution): 它向核心(Playwright/Appium)发送指令以执行该操作。
  4. 自我修复(Self-Healing): 若计划的操作失败,代理可以分析失败原因并尝试纠正路径以实现目标。
  5. 验证(Verification): 代理验证是否已达到预期结果。

通过记忆实现持续改进

agent-qa 的突出特性之一是其记忆系统。代理不会在每次测试运行时从零开始,而是从每次执行中生成“学习记忆”和“产品记忆”。这使得代理能够随时间演进,随着对应用特定 UI 模式和产品逻辑的熟悉度提升,提升效率和准确性。

社区观点

尽管自然语言测试的前景令人期待,社区中仍有开发者质疑此类框架的必要性。例如,一些用户已经使用 Codex 等工具实现循环,能够自主编写并运行 Playwright 测试。

然而,agent-qa 的核心价值在于防止“贪婪”AI 行为,即测试仅为通过而非真实验证用户行为。通过将自然语言作为真实依据,agent-qa 确保测试过程与用户意图和系统需求保持一致,而非关注代码的内部实现细节。

Sources