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的价值:
- 加载技能:自动读取
online_search技能文档并理解规则 - 检查环境:发现Calibrate未运行,自动启动应用
- 定位入口:找到「在线找书」控件并打开
- 应用默认规则:因用户未指定书店,取消其他书店的选中状态,只保留默认书店
- 执行搜索:识别关键词并提交搜索
- 验证结果:获取到16条结果,逐条查看后关闭界面
最终Agent完成了一条符合业务规范的复合操作,而不是机械地点击界面元素。

对测试实践的两个启发
知识沉淀比脚本复用更有弹性。 传统自动化测试把业务逻辑硬编码在脚本里,界面一变就全盘失效。Skill方案把业务规则从代码中剥离成自然语言文档,Agent每次执行时实时读取,调整规则只需改文档,不用动脚本。
模糊指令测试更接近真实用户。 作者强调,用户行为常常不精确。让Agent带着业务知识处理模糊指令,能覆盖「用户没说清楚时系统如何兜底」这类场景,这是按步骤编写的用例难以模拟的。

模糊指令测试指的是向被测系统输入不完整、不精确或存在多种合理解释的操作请求,观察系统能否依据默认规则或兜底逻辑给出合理响应。这类测试在传统脚本化用例中较难覆盖,因为脚本通常要求步骤和参数完全确定。而具备业务知识的 Agent 可以在模糊输入下自主补全上下文(如选择默认书店、约定结果条数),从而模拟真实用户“没说清楚”时的系统行为。这种测试方式有助于发现默认值缺失、异常处理不当、业务规则冲突等边界问题,是对精确用例的有益补充,但需要注意其结果的可复现性依赖 Agent 决策的稳定性。
适用边界与待验证问题
需要说明的是,以上内容基于单一视频来源的演示,Skill的具体格式规范、Agent的解析能力上限、复杂业务规则的表达能力等细节,视频未展开。对于业务规则复杂、状态依赖多的应用,纯文档形式的技能描述是否足够,仍需实际项目验证。不过「用可读文档给Agent补充领域知识」这个思路,在Qt应用乃至更广泛的UI自动化测试中,都提供了一条低成本、易维护的路径。
相关推荐

Anthropic Fable 5.2实测:一句话生成3A游戏与Excel克隆
Anthropic Fable 5.2实测:三行提示词生成可玩《战争机器》克隆、完整Excel和DaVinci Resolve克隆,解析基准测试、Ultra Code模式、token成本与定价策略,评估它是否值得替代Opus 5.5。

赛博寻书:BT社区如何「劫走」塞林格遗作
塞林格未发表的《The Ocean Full of Bowling Balls》仅存于大学图书馆且禁止复制。一个私密BT tracker悬赏六TB上传积分,社区从背诵接力到eBay买书扫描,最终成功让文本流出,却因传播过快被管理员删种。本文复盘这场赛博寻书行动及其讽刺结局。

弹劾防长赫格塞斯?五角大楼战争与中期选举风暴
五角大楼气氛紧张,伊朗战事持续八个月仍无退出方案。评论分析赫格塞斯弹劾动议的真实动机:不是罢免,而是留下政治记录,并剖析战争如何通过油价与生活成本影响中期选举选情。