软件工程任务执行环境的构建方法及其装置设备及介质与流程
本发明涉及计算机,尤其涉及一种软件工程任务执行环境的构建方法及其装置。
背景技术:
1、随着大语言模型在软件工程领域的广泛应用,利用真实代码仓库的缺陷修复数据来构建后训练数据集成为关键任务。在构建这一类基准数据集的过程中,需要为每一个软件工程任务实例准备一个可执行的容器化运行环境,以支持后续的评测与数据产出。
2、为满足上述执行环境构建需求,现有的执行环境构建方法通常采用静态配置结合传统测试流水线的方案,即主要依赖预先编写的容器配置文件与评测脚本,随后将其交由常规的流水线系统,按照固定的流程进行环境构建与测试运行,以期产出可用的评测环境与数据。
3、然而,现有的构建方式在实际应用中存在明显的局限性。一方面,现有的构建机制属于基于固定指令的单向执行流程,在面对依赖版本漂移或编译错误等复杂异常时,缺乏对错误上下文的深度解析与自适应调整能力,导致构建中断率极高且难以实现规模化。另一方面,现有的验证机制通常仅根据固定状态下的脚本执行结果来评估环境,无法全面检验构建的执行环境是否精准契合软件任务真实的底层演进逻辑,导致最终产出的执行环境缺乏充分的可信度,数据质量难以保障。
技术实现思路
1、本发明提供一种软件工程任务执行环境的构建方法及其装置,用以解决现有环境构建机制受限于静态单向流水线而导致错误自适应修复能力缺失,以及因环境评估维度单一引发的测试结果易虚假通过、真实缺陷复现保真度低及评测数据质量不可靠的缺陷,实现由单一智能体主导的配置生成与诊断自纠错全闭环,并协同缺陷与修复双重代码状态下的动态矩阵校验及防作弊交叉复核,确保所构建环境的高有效性与测试结果的绝对客观,从而以全自动化的方式高可靠地产出规模化、可复现的软件工程任务数据。
2、本发明提供一种软件工程任务执行环境的构建方法,包括如下步骤:
3、基于目标软件工程任务的任务信息,确定所述目标软件工程任务的缺陷代码状态与修复代码状态;
4、控制目标智能体基于所述任务信息,生成用于构建容器执行环境的环境配置文件,以及用于对所述容器执行环境进行验证的评测脚本;
5、调用预置的工具接口基于所述环境配置文件构建所述容器执行环境,在所述容器执行环境分别处于所述缺陷代码状态与所述修复代码状态的情况下运行所述评测脚本,得到双态运行结果;
6、基于所述双态运行结果,生成表征所述容器执行环境是否通过验证的验证反馈信息,所述验证反馈信息包含接受标志以及在未通过验证时的推理说明;
7、若所述接受标志指示所述容器执行环境未通过验证,控制所述目标智能体读取所述推理说明,并根据所述推理说明对所述环境配置文件与所述评测脚本中的至少一者进行迭代修正;
8、基于所述迭代修正的修正结果返回执行构建并验证所述容器执行环境的步骤,直至重新获取的所述接受标志指示所述容器执行环境通过验证;
9、保存构建成功的所述容器执行环境以及所述评测脚本。
10、根据本发明提供的一种软件工程任务执行环境的构建方法,所述目标软件工程任务的任务信息包括测试补丁,所述控制目标智能体基于所述任务信息,生成用于构建容器执行环境的环境配置文件,以及用于对所述容器执行环境进行验证的评测脚本,包括:
11、控制所述目标智能体解析所述测试补丁,提取所述测试补丁中包含的测试参考信息;
12、基于所述测试参考信息,生成包含至少一个第一测试用例与至少一个第二测试用例的所述评测脚本;
13、其中,所述第一测试用例配置为预期由运行失败转换为运行通过的测试用例,所述第二测试用例配置为预期保持运行通过的测试用例。
14、根据本发明提供的一种软件工程任务执行环境的构建方法,所述在所述容器执行环境分别处于所述缺陷代码状态与所述修复代码状态的情况下运行所述评测脚本,得到双态运行结果,包括:
15、控制所述容器执行环境切换至所述缺陷代码状态并运行所述评测脚本,获取所述第一测试用例的第一执行状态以及所述第二测试用例的第二执行状态;
16、控制所述容器执行环境切换至所述修复代码状态并运行所述评测脚本,获取所述第一测试用例的第三执行状态以及所述第二测试用例的第四执行状态;
17、将所述第一执行状态、所述第二执行状态、所述第三执行状态以及所述第四执行状态组合,得到所述双态运行结果。
18、根据本发明提供的一种软件工程任务执行环境的构建方法,所述基于所述双态运行结果,生成表征所述容器执行环境是否通过验证的验证反馈信息,包括:
19、判定所述第一执行状态、所述第二执行状态、所述第三执行状态以及所述第四执行状态是否满足预设的验证通过条件,所述验证通过条件为所述第一执行状态为运行失败、所述第三执行状态为运行通过,且所述第二执行状态与所述第四执行状态均为运行通过;
20、在满足所述验证通过条件的情况下,生成所述接受标志指示所述容器执行环境通过验证的所述验证反馈信息;
21、在未满足所述验证通过条件的情况下,生成所述验证反馈信息,所述验证反馈信息包含指示所述容器执行环境未通过验证的所述接受标志,以及基于未满足的具体状态特征所确定的所述推理说明。
22、根据本发明提供的一种软件工程任务执行环境的构建方法,在所述基于所述双态运行结果,生成表征所述容器执行环境是否通过验证的验证反馈信息之前,还包括:
23、获取在运行所述评测脚本的过程中产生的运行日志;
24、对所述评测脚本与所述运行日志进行文本特征匹配,确定所述容器执行环境的第一防作弊鉴定结果;
25、相应地,所述基于所述双态运行结果,生成表征所述容器执行环境是否通过验证的验证反馈信息,包括:
26、基于所述双态运行结果与所述第一防作弊鉴定结果,生成表征所述容器执行环境是否通过验证的所述验证反馈信息。
27、根据本发明提供的一种软件工程任务执行环境的构建方法,所述基于所述双态运行结果与所述第一防作弊鉴定结果,生成表征所述容器执行环境是否通过验证的所述验证反馈信息,包括:
28、将所述评测脚本、所述运行日志以及所述双态运行结果输入至防作弊鉴定模型;
29、获取所述防作弊鉴定模型输出的第二防作弊鉴定结果,所述第二防作弊鉴定结果包含对所述评测脚本是否真实运行的判断内容及关联的推理说明;
30、基于所述双态运行结果、所述第一防作弊鉴定结果以及所述第二防作弊鉴定结果,生成表征所述容器执行环境是否通过验证的所述验证反馈信息。
31、根据本发明提供的一种软件工程任务执行环境的构建方法,所述对所述评测脚本与所述运行日志进行文本特征匹配,确定所述容器执行环境的第一防作弊鉴定结果,包括:
32、提取所述评测脚本的第一文本内容以及所述运行日志的第二文本内容;
33、将预设的作弊特征串分别与所述第一文本内容以及所述第二文本内容进行匹配,获取匹配结果;
34、根据所述匹配结果,识别所述容器执行环境是否存在目标作弊模式,所述目标作弊模式包括测试用例被跳过、硬编码返回通过以及冗余测试掩盖真实失败中的至少一种;
35、基于对所述目标作弊模式的识别结果,确定所述第一防作弊鉴定结果。
36、根据本发明提供的一种软件工程任务执行环境的构建方法,在所述保存构建成功的所述容器执行环境以及所述评测脚本之后,还包括:
37、基于保存的所述容器执行环境或所述环境配置文件,构建用于交叉复核的后验证环境;
38、在所述后验证环境分别处于所述缺陷代码状态与所述修复代码状态的情况下,运行所述评测脚本,获取交叉复核运行结果;
39、基于所述交叉复核运行结果,确定所述目标软件工程任务是否通过后验证复核;
40、在确定通过所述后验证复核的情况下,将所述目标软件工程任务的关联数据存入预设数据库。
41、根据本发明提供的一种软件工程任务执行环境的构建方法,所述任务信息包括目标代码仓库的仓库地址以及基础提交标识,基于所述任务信息,确定所述目标软件工程任务对应的所述缺陷代码状态,包括:
42、基于所述仓库地址,获取所述目标代码仓库的初始代码库;
43、从所述初始代码库中提取出与所述基础提交标识对应版本的代码数据;
44、将所述代码数据对应的代码状态,确定为所述缺陷代码状态。
45、根据本发明提供的一种软件工程任务执行环境的构建方法,所述调用预置的工具接口基于所述环境配置文件构建所述容器执行环境,包括:
46、响应于所述目标智能体对预设的环境构建接口的调用请求,获取所述调用请求中携带的所述环境配置文件;
47、基于所述环境配置文件,执行容器镜像构建操作,得到所述容器执行环境。
48、根据本发明提供的一种软件工程任务执行环境的构建方法,所述在所述容器执行环境分别处于所述缺陷代码状态与所述修复代码状态的情况下运行所述评测脚本,包括:
49、响应于所述目标智能体输出的状态切换指令,控制所述容器执行环境切换至所述缺陷代码状态;
50、响应于所述目标智能体输出的脚本执行指令,控制处于所述缺陷代码状态的所述容器执行环境运行所述评测脚本;
51、响应于所述目标智能体输出的所述状态切换指令,控制所述容器执行环境切换至所述修复代码状态;
52、响应于所述目标智能体输出的所述脚本执行指令,控制处于所述修复代码状态的所述容器执行环境运行所述评测脚本。
53、本发明还提供一种软件工程任务执行环境的构建装置,包括如下模块:
54、状态确定模块,用于基于目标软件工程任务的任务信息,确定所述目标软件工程任务的缺陷代码状态与修复代码状态;
55、配置生成模块,用于控制目标智能体基于所述任务信息,生成用于构建容器执行环境的环境配置文件,以及用于对所述容器执行环境进行验证的评测脚本;
56、环境构建模块,用于调用预置的工具接口基于所述环境配置文件构建所述容器执行环境;
57、双态运行模块,用于在所述容器执行环境分别处于所述缺陷代码状态与所述修复代码状态的情况下运行所述评测脚本,得到双态运行结果;
58、结果验证模块,用于基于所述双态运行结果,生成表征所述容器执行环境是否通过验证的验证反馈信息,所述验证反馈信息包含接受标志以及在未通过验证时的推理说明;
59、迭代控制模块,用于在所述接受标志指示所述容器执行环境未通过验证时,控制所述目标智能体读取所述推理说明,并根据所述推理说明对所述环境配置文件与所述评测脚本中的至少一者进行迭代修正;以及,基于所述迭代修正的修正结果返回执行构建并验证所述容器执行环境的步骤,直至重新获取的所述接受标志指示所述容器执行环境通过验证;
60、数据保存模块,用于保存构建成功的所述容器执行环境以及所述评测脚本。
61、本发明还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述任一种所述软件工程任务执行环境的构建方法。
62、本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上述任一种所述软件工程任务执行环境的构建方法。
63、本发明提供的软件工程任务执行环境的构建方法及其装置,基于单一智能体自主迭代地生成配置文件与评测脚本,结合双态执行验证与自动化防作弊鉴定机制,并经独立后验证阶段交叉复核后决定数据是否入库,从而彻底消除人工构建高昂成本与环境不可复现等缺陷,以完全自主闭环的方式高效产出高质量、可复现且可信的软件工程后训练数据。
版权声明:本站专利文献数据主要来源于国家知识产权局等公开渠道,由 技术新讯 进行整理汇编。页面设计及数据汇编的著作权归本站所有。全部内容仅供个人学习、科研评估与技术交流参考,严禁用于任何商业用途(包括但不限于直接生产制造、技术转让、倒卖数据等)。
免责条款:专利技术具有时效性,本站不对资料的绝对准确性、完整性和可实施性提供任何明示或暗示的担保。因参考本站内容造成的直接或间接损失,本站不承担相关法律责任。若您认为本站内容有侵权问题,请及时提供权属证明与我们联系,本站将在核实后依法处理。反馈意见:yyfuon@163.com