[控场AI]
· 5 分钟阅读· 2,535 字

Qt应用自动化测试:用Skill为智能体注入业务知识

Qt应用自动化测试:用Skill为智能体注入业务知识

B站UP主分享用Skill文档为Agent注入业务知识,提升UI自动化测试真实性。

文章介绍了一种面向智能体UI自动化测试的Skill机制:针对Agent“懂操作、不懂业务”的痛点,在用户目录的.qk/skill文件夹下为每个被测应用创建技能文档,用自然语言描述搜索关键词类型、书店选择规则、结果数量约定和操作流程。Agent执行任务前自动加载对应Skill,从而在模糊指令下完成启动应用、应用默认规则、搜索并验证结果等复合操作。作者认为该方案将业务逻辑从脚本中剥离,规则调整只需改文档,维护成本更低,且模糊指令测试更接近真实用户行为。但方案基于单一视频演示,复杂业务场景的适用性仍需项目验证。

在智能体(Agent)驱动的自动化测试中,一个常见的痛点是:Agent虽然能操作图形界面,却对被测应用的业务规则一无所知。比如让它测试一个图书搜索功能,它不知道默认该选哪家书店、搜索结果该取多少条,只能靠界面元素「瞎猜」。B站UP主分享的这套方案,通过Skill机制把业务知识沉淀下来,让Agent在测试时自动加载、按规则执行,值得Qt应用测试团队参考。

为什么Agent需要业务知识

智能体做UI自动化测试,主流方式是探索模式——根据界面结构识别控件、模拟点击。据视频演示,当Agent操作一个名为Calibrate的应用时,虽然能找到「在线找书」入口并点击,但它并不理解这个业务场景背后的隐含规则:搜索关键词有哪些类型、书店如何选择、结果数量取几条。

这种「懂操作、不懂业务」的状态,导致测试用例与真实用户行为存在偏差。视频作者指出,真实用户在搜索时往往没有非常明确的行为路径,如果Agent能结合业务知识做出复合型操作,测试才更贴近实际使用场景。

我们来看一下这个怎么去做

探索模式是当前智能体驱动 UI 自动化的主流范式,其核心是让 Agent 通过感知界面结构(如控件的可访问性树、坐标、文本标签)来推断可执行动作,而不依赖预先编写的固定脚本。这类方法通常结合视觉语言模型或界面解析器,使 Agent 能在陌生界面上“边看边点”。但探索模式天然缺乏领域先验:它只能识别“这是一个按钮”,却无法判断“这个按钮在当前业务场景下是否应该被点击”。因此,当任务隐含业务规则(如默认选项、数据范围、操作顺序)时,纯探索式 Agent 容易产生看似合理却不符合业务约定的操作,这正是需要外部知识注入的根本原因。

Skill机制:把业务规则写成Agent可读的文档

解决方案的核心是一个位于用户目录下的.qk/skill文件夹。按视频演示的结构,针对每个被测应用可以创建独立子目录,例如为Calibrate应用建立online_search技能。

在这个技能目录里,用文档形式描述业务场景的关键要素:

  • 搜索关键词类型:书名、作者、关键词
  • 书店选择规则:明确指定时按指定执行,未指定时使用默认书店
  • 结果数量约定:未明确要求时返回约定条数(演示中为10条)
  • 操作流程:从进入页面到获取结果的步骤序列

据作者描述,这样定义之后,Agent在执行任务前会先阅读该技能文档,理解业务上下文再动手操作。

那这样的话就是我们定义好之后

Skill 机制借鉴了智能体框架中“工具/技能”的抽象思路:将一组领域知识、操作约束和流程说明封装为独立、可复用的文档单元,由 Agent 在任务执行前按需加载。与将逻辑硬编码在脚本中不同,Skill 文档通常采用自然语言或半结构化格式,便于人类维护和 Agent 解析。其关键设计在于“按需检索”——Agent 根据当前任务语义匹配相关 Skill,而不是一次性加载全部知识,从而避免上下文过载。这种模式在自动化测试中尤其有价值,因为它把“被测应用的业务规则”从测试代码中解耦出来,形成可独立演进的知识库,界面或流程变更时只需更新对应 Skill 文档。

实测:一句模糊指令背后的完整执行链

视频用一个模糊指令做验证:「帮我在Calibrate里找一些适合学习Python的电子书,结果给我看就行」。这条指令没有指定关键词类型,也没有指定书店。

Agent的执行过程体现了Skill的价值:

  1. 加载技能:自动读取online_search技能文档并理解规则
  2. 检查环境:发现Calibrate未运行,自动启动应用
  3. 定位入口:找到「在线找书」控件并打开
  4. 应用默认规则:因用户未指定书店,取消其他书店的选中状态,只保留默认书店
  5. 执行搜索:识别关键词并提交搜索
  6. 验证结果:获取到16条结果,逐条查看后关闭界面

最终Agent完成了一条符合业务规范的复合操作,而不是机械地点击界面元素。

那现在的话就是说他发现没有去执行

对测试实践的两个启发

知识沉淀比脚本复用更有弹性。 传统自动化测试把业务逻辑硬编码在脚本里,界面一变就全盘失效。Skill方案把业务规则从代码中剥离成自然语言文档,Agent每次执行时实时读取,调整规则只需改文档,不用动脚本。

模糊指令测试更接近真实用户。 作者强调,用户行为常常不精确。让Agent带着业务知识处理模糊指令,能覆盖「用户没说清楚时系统如何兜底」这类场景,这是按步骤编写的用例难以模拟的。

去做一些探索

模糊指令测试指的是向被测系统输入不完整、不精确或存在多种合理解释的操作请求,观察系统能否依据默认规则或兜底逻辑给出合理响应。这类测试在传统脚本化用例中较难覆盖,因为脚本通常要求步骤和参数完全确定。而具备业务知识的 Agent 可以在模糊输入下自主补全上下文(如选择默认书店、约定结果条数),从而模拟真实用户“没说清楚”时的系统行为。这种测试方式有助于发现默认值缺失、异常处理不当、业务规则冲突等边界问题,是对精确用例的有益补充,但需要注意其结果的可复现性依赖 Agent 决策的稳定性。

适用边界与待验证问题

需要说明的是,以上内容基于单一视频来源的演示,Skill的具体格式规范、Agent的解析能力上限、复杂业务规则的表达能力等细节,视频未展开。对于业务规则复杂、状态依赖多的应用,纯文档形式的技能描述是否足够,仍需实际项目验证。不过「用可读文档给Agent补充领域知识」这个思路,在Qt应用乃至更广泛的UI自动化测试中,都提供了一条低成本、易维护的路径。

#Qt自动化测试#智能体测试#Skill机制#Agent业务知识#UI自动化#AI测试#Q-Test
分享:

相关推荐