基于形式化马具工程的黑盒测试用例生成与自动化执行方法及系统与流程

摘要: 本发明属于软件工程与人工智能交叉领域,具体涉及软件测试自动化、黑盒测试、基于大语言模型(largelanguagemodel,llm)的智能体技术,以及面向ll...
基于形式化马具工程的黑盒测试用例生成与自动化执行方法及系统与流程

本发明属于软件工程与人工智能交叉领域,具体涉及软件测试自动化、黑盒测试、基于大语言模型(largelanguagemodel,llm)的智能体技术,以及面向llm的约束工程技术,提供了一种基于形式化马具工程的黑盒测试用例生成与自动化执行方法及系统。

背景技术:

1、软件测试是保障软件质量的关键环节,据统计,测试活动通常占整个软件开发成本的40%-50%。在敏捷开发和持续集成/持续部署(ci/cd)范式普及的背景下,测试自动化已成为提升交付效率的核心手段。然而,当前自动化测试实践仍面临显著挑战,功能性黑盒测试的自动化困境尤为突出,集中体现在测试用例生成和测试用例执行两个方面。

2、测试用例生成方面,随着自然语言处理(nlp)和大语言模型技术的发展,文档驱动测试(document-driventesting,ddt)成为研究热点。文档驱动测试强调从软件需求规格说明书、prd、接口文档等自然语言材料中提取功能点、业务规则与约束,并据此生成测试设计、测试场景乃至可执行测试用例,其优势在于可在软件生命周期早期发现需求歧义,并减少对源代码的依赖,天然契合黑盒测试场景。然而,文档的非结构化特性导致传统依赖固定脚本的自动化解析困难。现有研究尝试利用llm提取需求中的测试场景,但面临边界模糊、幻觉、质量不可控和可解释性弱等问题。以openclaw为代表的智能体虽然能够兼顾自然语言与视觉元素感知,较好地理解需求要素并生成高质量测试用例,但本质上仍属于“模型能力依赖型”方案:其效果随模型版本、温度参数、上下文长度波动较大。此外,现有方案多聚焦于“生成”环节,缺乏对生成用例的质量自动评估机制,这导致自动化测试工具在实际工程中落地困难,人工干预成本居高不下。

3、测试用例执行方面,黑盒测试强调从用户视角验证软件功能,不依赖内部代码结构。传统自动化测试框架(如selenium、appium)虽能执行预定义脚本,但高度依赖人工编写测试用例,导致“自动化执行”与“用例设计”之间存在巨大鸿沟。现有以openclaw为代表的智能体已经基于playwright能力具备了操作web端软件完成自动化测试执行的基本条件,但缺乏对llm能力范围和操作自由度的有效约束,难以对llm的输入/输出进行实时监控、过滤和引导,缺乏对llm行为(如输出格式、工具调用范围、token消耗等)的系统性约束框架。此外,这类方法对执行结果的判定依赖模型主观判断,可解释性与稳定性不足,缺少面向批量执行、断点续跑、依赖排序的工程化状态机。

4、综上所述,现有技术存在以下技术问题:

5、(1)llm生成测试用例时输出格式不稳定,对复杂web软件的多步骤、多状态、多依赖测试场景适应能力不足;

6、(2)llm执行测试用例时行为不可控,token消耗高,测试过程与结果缺乏可追溯、可解释的执行证据链;

7、(3)批量执行缺少状态机、断点续跑、异常隔离的工程化机制,无法满足企业级测试的可靠性要求。

技术实现思路

1、针对上述现有技术的不足,本发明提出了一种基于形式化马具工程的黑盒测试用例生成与自动化执行方法及系统,旨在实现从测试用例生成、测试用例自动化执行到测试记录生成的全链路自动化,降低测试成本,提升测试质量与效率。

2、本发明将harness engineering(马具工程)思想落地为系统化多级约束框架,所述约束框架包括:提示词约束、schema约束、记忆和资源约束、状态同步约束以及安全护栏约束,所有约束均可配置规则。通过赋予有边界的大语言模型软件探索权限与文档阅读权限,增强大语言模型对软件的整体理解从而生成高质量测试用例;通过设计多级约束系统框架和工程化状态机,确保大语言模型执行测试用例时行为可控、过程可追溯、结果可解释。

3、智能体设计思想说明:

4、在本发明的设计构思中,测试用例生成子智能体和测试用例执行子智能体是对系统在不同阶段所承担功能的整合性表述,用于从功能视角描述本发明的工作逻辑。其中,测试用例生成子智能体对应于步骤s2中在预设的第一约束框架下驱动大语言模型执行软件探索和测试用例生成的操作;测试用例执行子智能体对应于步骤s3和步骤s4中在预设的第二约束框架下驱动大语言模型执行测试用例、获取当前软件界面状态并进行步骤修正的操作。在系统实现层面,上述功能由认知模块、决策模块、执行模块和管理模块协同完成。所述智能体概念旨在帮助理解本发明的设计逻辑,不构成对系统模块划分的额外限定。

5、本发明在总体技术路线上遵循“分层解耦、约束驱动、人机协同”原则,划分为四个层次,并由管理模块提供贯穿全链路的持久化与审计支持。

6、如图1所示,本发明自上而下划分为交互层、认知层、决策层和执行层四个层次,交互层作为系统门户连接用户与系统;认知层对文档和软件进行语义理解与建模;决策层以大语言模型为中枢进行测试决策;执行层调用预定义工具完成具体操作。各层之间通过数据流驱动、控制流约束实现“感知—认知—决策—执行—反馈”的闭环协作。

7、(1)交互层:提供文档解析、软件连接、人工介入、参数及提示词配置和全流程可视化审计等相关接口。对应交互模块。

8、(2)认知层:提供文档结构理解、功能边界界定、上下文建模等软件理解能力;提供任务追踪、约束记忆、状态分析等任务理解能力。将对软件和任务的理解固化为记忆并持久化存储,记忆会随任务执行不断更新优化。对应认知模块。

9、(3)决策层:基于支持工具调用的大语言模型底座,通过提示词与代码结合实现的第一约束框架和第二约束框架,在用例生成、执行规划、步骤修正、质量评估等任务中提供决策建议。对应决策模块。

10、(4)执行层:提供ui操作、状态监控、异常恢复等一系列预定义工具及工具使用说明;提供"局部重试→路径回退→人工介入"的三级容错机制;根据决策层提供的自然语言描述操作对应工具完成具体操作,并实时获取当前软件界面状态反馈至决策层;向用户提供实时、可视化的操作过程与操作状态。对应执行模块。

11、管理模块:对全生命周期中的系统级约束(包括工具注册表与参数校验、安全护栏、provider重试与降级等)、软件认知、操作记忆、日志信息、用户提示词、上下文与skill治理、配置、执行状态等信息进行统一持久化存储和管理,贯穿上述四个层次,支持全流程中的信息透明化、可追踪化和可视化。

12、四层之间并非简单的数据流水线,而是一种“约束传播”关系:交互层定义任务契约的初始边界,认知层将契约转化为知识约束并注入决策层,决策层在约束下生成策略并下达至执行层,执行层通过观测-验证机制将偏差信号反向传播至认知层(用于校正软件理解)与决策层(用于触发重规划),形成“感知-认知-决策-执行-反馈”的约束演化闭环。

13、为形式化描述多层约束的治理机制,本文将马具约束框架定义为一个五元组:

14、

15、各元素的语义及其与四层架构的映射关系如表1所示。与传统智能体框架中静态、通用的约束配置不同,本发明五元组的核心特征在于:各层约束均由认知层的结构化知识表示动态编译而来,并随执行反馈在线演化,而非一次性预设固定提示词。

16、表1 马具约束框架五元组定义

17、

18、p(prompt 约束层):不是静态提示词,而是由认知层根据当前知识子集动态编译的约束脚本。其内容包含:任务契约(来自交互层的标准化需求边界)、测试专家经验模板(预定义的领域规则库,如“黑盒测试用例必须包含前置条件与预期结果”)、以及人工干预记忆(历史人工修正记录的固化模式)。p 作用于决策层,但受认知层知识边界的严格限制——认知层仅将经过验证的知识子集 编译为 prompt 片段,避免无关信息稀释上下文。

19、 (schema 约束层):为了加强系统对模型输出进行约束,本文定义了面向黑盒测试的领域模式语言(test domain schema language),包括测试用例模式(编号/描述/前置条件/执行步骤/预期结果)、证据链模式(时序/指令/语义/截图/元数据)、操作指令模式(元素定位/动作/参数/预期状态)及 ui 元素引用模式(基于探索摘要的受控引用)。 保证了跨层数据交换的语义完整性,即决策层输出的用例必须符合 方可进入执行层;执行层产生的证据链也必须符合 方可回流至认知层。该模式库支持执行过程中的演化——执行中修正的用例会反向更新证据链、操作指令和ui元素引用模式实例,形成“执行-结构”的反馈约束。

20、 (状态同步约束层):构建贯穿测试生成与执行全生命周期的有限状态机。状态空间 不仅包含执行状态,还包含认知状态(探索轮数、fallback触发次数)。转移规则 不仅由操作结果触发,还由认知规则触发——当认知层检测到探索轮数、fallback触发次数高于阈值或时, 自动触发步骤重写或人工介入,实现“认知-执行”耦合治理。

21、 (安全护栏):基于认知层 ui 探索摘要动态构建的操作边界。其内容包括:命令白名单(基于 mcp 协议注册表,仅允许调用预注册的工具)、url 范围(基于任务契约)、ui操作权限边界(禁止通过javascript等操作绕过ui操作逻辑,直接为前端元素赋值)、以及操作记录(每步操作必须产生截图、日志与语义描述,形成可审计证据)。 的配置契约由交互层初始化,但操作边界由认知层根据实时探索结果动态投影,确保“所见即可操,未探不可触”。

22、 (记忆与资源约束层):认知记忆的层次化治理机制。其管理四类记忆实体:ui探索记忆(结构化页面元素与操作逻辑)、文档理解记忆(功能边界与依赖图谱)、操作记忆(历史成功/失败步骤,减少重复探索)、以及人工干预记忆(修正决策的持久化)。其中操作记忆的具体实现包括:记录已验证的元素定位路径(如id=login-btn)和成功操作序列,避免对同一元素的重复探索;记录高频失败模式(如“双击vs单击”陷阱),标记置信度,连续失败超阈值时触发选择性遗忘机制,降低该知识条目优先级;人工修正记录(如“步骤3应改为点击而非输入”)被抽象为规则,相似任务激活时自动应用,避免重复错误。 通过运行时上下文筛选(仅加载与当前步骤强相关的记忆子集)与重复操作抑制,防止资源消耗随测试深度指数增长,实现 token 经济性与认知记忆持久化的双重治理。

23、五层约束并非相互独立,而是通过约束传播机制由通用持久化管理器统一治理,支持动态加载、版本化审计与运行时调整。

24、约束传播机制:智能体的运行过程本质上是约束策略在架构中的传播与演化过程。本文将跨层协同形式化为约束机制,包含正向生成路径与反向校正路径。整体机制如图2所示。

25、约束正向生成路径:正向传播描述从任务输入到可执行策略的约束编译链条,将认知层编译后的多类约束联合注入决策层,为更清晰地描述上述正向传播过程,算法1给出了从任务契约到操作序列的约束编译伪代码。

26、

算法1. 正向约束编译与策略生成

输入: 任务契约 t=(u,d,k), 当前阶段 phase  输出: 操作序列 a  // 认知层:基于相关性评分提取知识子集  1:  k' ←extractrelevantknowledge(k, t_current, θ_rel)  // 决策层:在 harness 约束下生成策略  2:  p ← compileprompt(k')             // 编译 prompt 约束  3:  σ_inst ← instantiateschema(k', phase)  // 实例化 schema 约束  4:  f_proj ←projectguardrails(k'_ui)  // 投影安全护栏边界  5:  π ← policygeneration(u, d, k', p, σ_inst, f_proj)  // 执行层:在护栏与记忆约束下实例化操作  6:  a ← executeactions(π, f_proj, r)  7:  return a

27、针对异常矫正的约束反向校正路径:执行层产生的观测异常 (如页面状态异常、工具调用失败、元素定位失效、步骤执行失败)通过两条路径回流:

28、(1)路径一:认知校正路径。由元素定位失效、页面状态异常、工具调用失败的观测偏差 用于校正认知层的软件理解偏差,更新 ui 探索摘要、功能边界定义与元素定位知识,修正知识约束 。并将校正后的知识约束加入记忆库,影响后续所有任务的生成。记作:

29、

30、其中  为认知层维护的增量更新算子,支持选择性遗忘错误信息,并对记忆库中的知识条目(包括 ui 元素定位规则、人工修正模式、功能边界定义等)进行优先级重排——对于在  中高频出现的修正模式,提升其对应知识条目在 k′中的相关性评分与检索优先级。 执行以下操作:(a) 将  中元素定位失效模式加入  的失效模式库,并标记置信度;(b) 若同一失效模式连续出现超过阈值  ,则触发 r 中的选择性遗忘机制,降低该知识条目的优先级;(c) 将人工修正模式固化至 。

31、(2)路径二:策略重规划路径。由步骤执行失败的 触发决策层重新评估当前策略 的有效性,认知层重新编译 prompt 约束 、调整模式实例 、或激活 的fallback 容错状态转移,生成修正后的策略  。形式化地:

32、

33、其中 为约束配置,  为经偏差反馈调整后的约束配置(如 状态转移、 模式修正)。

34、该闭环机制确保了约束框架不是静态的预定义规则,而是能够根据执行反馈在线演化的动态治理系统。

35、基于上述约束驱动的四层架构,本发明在业务运行时的核心工作流程可描述为:

36、测试用例生成阶段:由认知层提供文档理解和功能边界界定,决策层在第一约束框架下驱动大语言模型进行软件探索和测试用例生成,执行层调用预定义工具集完成页面操作与元素感知,管理模块将生成的测试用例持久化存储。以上功能在逻辑上可视为测试用例生成子智能体的整体输出。

37、测试用例执行阶段:由决策层在第二约束框架下驱动大语言模型进行执行规划,执行层调用预定义工具集逐步骤执行测试操作并实时反馈软件界面状态,决策层根据反馈状态进行步骤修正,管理模块记录全过程的执行证据信息。以上功能在逻辑上可视为测试用例执行子智能体的整体输出。

38、管理模块:作为贯穿四个层次的基础设施,对全生命周期中的系统级约束、软件认知、操作记忆、日志信息、用户提示词、上下文与skill治理、配置、执行状态等信息进行统一持久化存储和管理,支持全流程中的信息透明化、可追踪化和可视化。

39、为实现上述目的,本发明提供了一种基于形式化马具工程的黑盒测试用例生成与自动化执行方法,包括以下步骤:

40、步骤s1:获取被测软件的访问地址及自然语言需求文档,解析所述文档以提取结构化内容。

41、具体地,用户在web前端创建测试任务,填写被测软件url与测试账号等附加说明,并上传需求文档(支持word、pdf、markdown)。系统对文档进行解析,提取章节结构(章节名称与章节内容)并持久化到数据库。需要说明的是,文档解析、生成与章节关联分析模块本身不属于本发明保护范围,本发明聚焦于其后继的测试用例生成与执行。

42、步骤s2:基于所述结构化内容与所述访问地址,在预设的第一约束框架下驱动大语言模型执行软件探索和测试用例生成,并持久化存储生成的测试用例集。

43、具体地,用户在前端选择一个或多个测试章节创建测试任务,系统首先从数据库读取任务关联文档,匹配待测章节与关联性章节对应内容。随后将软件url、章节内容、系统概述、账号信息等信息作为提示词输入到测试用例生成子智能体中。测试用例生成子智能体收到提示词后,首先调用预定义工具(本实施例中为基于playwright库封装的浏览器操作工具)打开网页,通过页面快照命令(如snapshot)探索页面元素(包括dom结构、可视元素、可交互组件等),结合需求章节与真实页面信息,在预设的第一约束框架下驱动大语言模型输出符合格式的测试用例。所述第一约束框架包括schema格式约束、操作安全护栏约束和记忆与资源约束。测试用例包括用例编号、用例描述、前置条件、执行步骤、预期结果。此后调用代码将解析结果写入数据库表,状态置为“待执行”。解析失败或为空时,系统记录警告日志并保留原始响应片段供人工排查。

44、步骤s3:获取待执行的测试用例,并在预设的第二约束框架下驱动大语言模型逐步骤执行所述测试用例。

45、具体地,用户在前端选择需要执行的子任务或用例集合,点击批量执行按钮创建批量执行任务管理器。此后,测试用例执行子智能体调用代码计算总用例数、已完成的用例数,调用大语言模型基于用例的描述与前置条件判断用例依赖关系。所述依赖关系为:当第一测试用例的执行结果构成第二测试用例的前置条件时,将所述第一测试用例的执行顺序排在所述第二测试用例之前。若排序失败,则回退到原始顺序。排序完成后,更新任务管理器及前端状态。对排序后的每个用例,测试用例执行子智能体创建执行状态管理器记录操作过程、状态和结果,创建日志目录后开始执行。在执行过程中,在预设的第二约束框架下驱动大语言模型逐步骤执行所述测试用例。所述第二约束框架包括schema格式约束、操作安全护栏约束和状态同步约束。

46、步骤s4:在执行每一测试步骤时,获取当前软件界面状态;当所述状态与所述测试用例中对应步骤的描述不一致时,调用所述大语言模型对当前步骤进行修正,并基于修正后的步骤继续执行。

47、具体地,每一步骤的执行包括以下子步骤:

48、(1)从数据库读取用例详情,格式化账号信息并填充构造提示词,提示词包含指示大语言模型结合当前软件页面状态判断下一步该执行的测试步骤,并返回对应预定义工具调用指令集合。指令集合涉及的核心能力包括:元素感知定位、点击、输入、截图、自适应等待机制等;

49、(2)调用工具执行引擎并创建实例。执行引擎基于标准协议定义了工具集、工具使用说明以及可配置的工具使用组合。在本实施例中,所述标准协议为mcp(model contextprotocol)协议,封装了playwright库作为核心工具。工具使用说明中规定了工具使用的skill,例如分辨率被设置为1920×1080等。工具使用组合默认采用“一步一截图”的操作配置,并定义了相关的存储路径;

50、(3)工具执行实例按指令集执行指令。执行过程中实时获取当前软件界面状态,所述当前软件界面状态包括当前页面的文档对象模型(dom)结构、可视元素信息及统一资源定位符。当所述状态与所述测试用例中对应步骤的描述存在偏差时(所述偏差包括但不限于:元素定位失效、页面跳转逻辑变化、文案变更及中间状态偏差),调用所述大语言模型对当前步骤进行修正,生成修正后的测试步骤,并基于修正后的步骤继续执行。在执行过程中引入三级容错机制:

51、第一级:同一操作指令执行失败时进行局部重试,重试次数为预设次数(优选为3次),重试间隔采用指数退避策略(如1秒、2秒、4秒);

52、第二级:所述局部重试失败后,回退至当前测试用例的上一已成功执行的步骤所对应的软件界面状态,并以该状态为起点重新执行当前步骤;

53、第三级:以所述上一已成功执行的步骤所对应的软件界面状态为起点重新执行当前步骤失败后,标记当前测试用例为需人工复核状态,跳过当前测试用例的后续步骤并保存断点信息;

54、(4)当前轮指令集执行完毕后,根据指令集执行情况判定:若指令集全部执行成功,则当前步骤被置为执行成功,开始执行下一步测试步骤,过程同(1);若指令集执行失败,且三级容错机制已被触发至第二级或第三级,则调用大语言模型分析执行失败原因,并结合最后一次执行时的日志记录给出对当前测试步骤的修复版本,然后重新执行修补后的测试步骤,直到步骤执行成功或者达到最大修复轮数。修复后的测试步骤将在执行完毕后更新原有测试用例。

55、(5)单条用例执行完成后,调用大语言模型分析最终执行的软件界面状态,并与测试用例中的预期结果描述进行对比,判定执行结果为“通过”或“未通过”。对结果为“未通过”的测试用例,分析失败原因。此后,更新数据库表的测试用例步骤、测试结果、执行证据链、截图记录等。

56、步骤s5:记录每一测试步骤的执行证据信息,形成可追溯的执行证据链,并根据执行结果生成测试判定。

57、具体地,每一测试步骤的执行证据信息包括:工具调用指令、操作语义描述以及执行结果快照;所述执行结果快照为每一测试步骤执行后的软件界面截图。在执行完每一步骤后,调用大语言模型根据当前软件界面状态与预期结果进行比对,生成单步执行是否通过的判定;在单条测试用例的所有步骤执行完毕后,综合各步骤的判定结果生成该测试用例的最终测试结果。

58、在批量执行测试用例时,系统在后台启动监控线程,主协程每3秒查询数据库对应测试用例的状态,并向前端推送进度。当一个批量执行测试子任务的所有用例执行完成后,子任务状态置为completed,继续下一个子任务。若用户触发停止,则设置停止事件,当前子任务完成后整体状态置为stopped;若选择清除状态,则将未完成的用例重置为“待执行”。

59、测试人员可在前端查看每条用例的原始状态(描述、前置条件、测试步骤、预期结果)、执行过程(执行状态、实际结果、判定结论)、操作证据链(按时间顺序排列的操作步骤,包含每步命令、动作语义、页面url/title、每个关键步骤的截图)以及每个测试步骤对应的大语言模型原始响应与执行记录。若发现误判,可基于结构化数据进行修正,而无需重新执行整个批量任务。

60、另一方面,本发明还提供了一种基于形式化马具工程的黑盒测试智能体系统,所述系统用于实现上述的方法,所述系统包括:

61、交互模块,用于获取被测软件的访问地址及自然语言需求文档,以及向用户提供测试任务创建、参数配置和过程可视化的交互接口;

62、认知模块,用于解析所述需求文档以提取结构化内容,对被测软件的功能边界及上下文进行建模,将所述结构化内容、建模结果、软件操作以及人工修正历史固化为持久化记忆;所述持久化记忆随测试任务的执行过程动态更新;

63、决策模块,连接所述认知模块和所述执行模块,用于在预设的第一约束框架下驱动大语言模型生成测试用例,以及在预设的第二约束框架下驱动大语言模型对测试用例进行执行规划;

64、执行模块,用于提供对被测软件进行操作的预定义工具集,按照所述执行规划逐步骤执行所述测试用例,实时获取当前软件界面状态并反馈至所述决策模块;

65、所述决策模块还用于:在执行每一测试步骤时,将所述执行模块反馈的当前软件界面状态与所述测试用例中对应步骤的描述进行比对,当存在偏差时调用所述大语言模型生成修正后的测试步骤,并驱动所述执行模块基于修正后的步骤继续执行;

66、管理模块,用于对测试用例、执行状态、执行证据信息及系统配置进行统一持久化存储和管理。

67、进一步地,所述执行模块包括:

68、工具执行引擎,基于标准协议封装了对被测软件进行操作的原子能力,所述原子能力至少包括元素定位、点击操作、输入操作、页面导航及界面快照获取;

69、容错子模块,用于在操作失败时执行三级容错机制:第一级为局部重试,第二级为路径回退,第三级为标记需人工复核并跳过当前用例;

70、状态监控子模块,用于实时获取当前软件界面状态,并向前端推送执行进度信息。

71、进一步地,所述决策模块在执行每一测试步骤时,将所述执行模块反馈的当前软件界面状态与所述测试用例中对应步骤的描述进行比对,当存在偏差时调用所述大语言模型生成修正后的测试步骤,并将修正后的步骤经由所述执行模块执行;所述管理模块记录的所述执行证据信息包含所述大语言模型在生成和修正过程中的原始响应,以及在执行阶段的工具调用指令、操作语义描述和界面快照。

72、本发明相较于现有技术具有以下有益效果:

73、(1)显著降低token消耗,提升执行效率

74、传统“端到端”大语言模型测试方案往往一次性将完整需求文档、历史对话、页面dom、执行日志全部塞入上下文,且不限制大语言模型行为与探索边界,导致token消耗随测试深度指数增长。本发明通过构建大语言模型行为的双层约束框架——第一约束框架(schema格式约束、操作安全护栏约束、记忆与资源约束)和第二约束框架(schema格式约束、操作安全护栏约束、状态同步约束),在执行阶段通过工具调用范围约束和操作权限约束限定大语言模型的操作边界,避免无效探索和重复操作;同时通过r(记忆与资源约束层)对上下文进行层次化管理,仅加载与当前步骤强相关的记忆子集,避免历史对话和页面状态的冗余累积。由于token消耗的降低,使得普通开源大语言模型(如35b参数以内)即可在有限的上下文窗口内稳定完成复杂测试任务,无需依赖大规模闭源模型。

75、为进一步验证本发明在实际工程环境中的效果,选取典型web应用(含登录、查询、表单提交等复合操作场景)进行对比实验,以nanobot(openclaw类方法,简化版)作为基线方案,采用相同的开源大语言模型底座,结果如下:

76、在执行成功率方面,本发明执行正确率为93.4%,nanobot为82%,本发明在相同测试任务下将执行成功率提升了约11个百分点,主要得益于双层约束框架对llm操作边界的实时规范与执行中动态修正机制对异常步骤的即时恢复。在token消耗方面,本发明平均每个用例消耗约138万tokens,而nanobot平均消耗约291万tokens,本发明token节省约52.5%。上述效果直接归因于记忆与资源约束层(r)的运行时上下文筛选机制——仅加载与当前步骤强相关的记忆子集,避免历史对话和页面状态的冗余累积。

77、在用例生成质量方面,采用三个维度进行量化评估:需求覆盖率(rcr)反映生成的测试步骤覆盖需求描述的功能点比例,生成有效率(vr)反映输出用例的格式完整性与可执行性,深度schema违规率(dscr)为三层递进的步骤级细粒度合规指标,其计算公式为:

78、

79、其中i f 为json schema格式校验指示函数,i c 为关键字段非空与步骤完整性指示函数,n t 为经人工审计判定为不合法的步骤数,nt 为总步骤数,dscr数值越低表示合规性越好。实验结果为:本发明需求覆盖率90.9%(无约束llm为28.8%、有工具无约束llm为57.1%),生成有效率100%(有工具无约束llm为98.0%),深度schema违规率0.477(有工具无约束llm为0.692)。

80、(2)提升对复杂web软件的适用性

81、复杂web软件通常具有多页面跳转、动态加载、状态依赖、权限角色差异等特征,自动化执行困难。本发明通过以下设计提升适用性:

82、“先探索后执行”策略:测试用例生成前大语言模型先探索软件页面,了解视觉元素与操作逻辑,使得生成的用例与实际界面状态一致,减少执行阶段的偏差;

83、依赖排序(步骤s3中分析用例间的前置条件关系,确定执行顺序),确保依赖用例的前置条件已就绪;

84、执行中步骤修正(步骤s4):当页面状态与用例描述不一致时,就地调用大语言模型修正当前步骤而非整体重试,大幅提高复杂多步骤场景下的执行成功率;

85、三级容错机制(第一级局部重试、第二级路径回退、第三级人工介入),逐级递进,保证执行流程在各种异常情况下均有对应处理策略,避免整体失败;

86、断点续跑与批量调度:支持批量执行中的状态持久化和任务暂停/恢复,适应企业级长时间回归测试场景。

87、(3)增强可解释性与可追溯性

88、本发明通过步骤s5记录的完整执行证据链(工具调用指令+操作语义描述+执行结果快照+大语言模型原始响应),使得测试过程中的每一个决策和操作均有据可查。用例、执行步骤链、截图证据、执行记录表均持久化到结构化数据库,支持人工复核与审计。执行过程中的每一步操作、大语言模型的每一次决策都有对应的自然语言描述和可视化证据(截图),测试人员无需具备技术背景即可理解执行过程。同时,系统支持批量执行状态可视化,向前端实时推送子任务、当前用例、已完成数等进度信息,支持人工实时干预,误判时可直接基于结构化数据进行修正而无需重新执行。

89、(4)发挥系统化约束框架优势

90、本发明将harness engineering思想落地为一套完整、可复用、可配置的黑盒测试约束框架,不是依赖模型本身能力,而是通过输出格式约束、schema约束、工具调用范围约束、操作权限约束、状态同步约束、状态机流转约束、安全护栏、配置项、工具注册表参数校验等多层约束,使普通35b以内开源大语言模型即可稳定完成复杂测试任务。实验结果表明,采用本发明的约束框架后,开源大语言模型的用例生成质量和执行稳定性的效果可达到基于openclaw同提示词在千亿级别(1tb级别)参数量模型上的用例生成和执行效果,大幅降低了企业对昂贵商业大模型的依赖。

91、(5)安全性提升

92、本发明通过命令白名单、工作区隔离、url拦截、ui操作权限边界以及工具基类的参数校验等多重安全机制,显著降低了大语言模型被诱导执行危险操作的风险(如执行系统命令、访问非授权url、操作越权资源等),使其更适用于企业级测试环境中的自动化执行。