System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本申请涉及测试,具体涉及测试数据的生成方法、装置、介质及设备。
技术介绍
1、人工智能(artificial intelligence,ai)是计算机科学的一个综合技术,通过研究各种智能机器的设计原理与实现方法,使机器具有感知、推理与决策的功能。人工智能技术是一门综合学科,涉及领域广泛,例如自然语言处理、机器学习、深度学习等几大方向。随着技术的发展,人工智能技术将在更多的领域得到应用,并发挥越来越重要的价值。
2、在软件测试领域,以chatgpt(chat generative pre-trained transformer,聊天生成式预训练转换器)为代表的大规模生成式语言模型发布后,利用大规模生成式语言模型可以实现根据提示词生成单元测试用例的功能。但是,直接将待测试程序作为提示词输入大模型存在代码泄漏的隐患,同时大模型所生成的测试用例覆盖率低。
技术实现思路
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、第三方面,本申请提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有至少一条指令或至少一段程序,所述至少一条指令或至少一本文档来自技高网...
【技术保护点】
1.一种测试数据的生成方法,其特征在于,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,所述基于所述待测试程序,进行代码建模,得到程序模型信息,包括:
3.根据权利要求2所述的方法,其特征在于,所述基于静态代码分析工具,对所述待测试程序进行静态分析,得到程序特征信息,包括:
4.根据权利要求1所述的方法,其特征在于,所述基于所述程序模型信息,进行路径遍历,得到所述待测试程序对应的至少一条测试路径,并确定每条测试路径的路径信息,包括:
5.根据权利要求4所述的方法,其特征在于,所述将每条测试路径的路径信息转换为与每条测试路径对应的提示信息,包括:
6.根据权利要求1所述的方法,其特征在于,所述方法还包括:
7.根据权利要求1所述的方法,其特征在于,所述方法还包括:
8.根据权利要求1所述的方法,其特征在于,所述方法还包括:
9.根据权利要求8所述的方法,其特征在于,所述方法还包括:
10.一种测试数据的生成装置,其特征在于,所述装置包括:
11.一种计算
12.一种计算机设备,其特征在于,所述计算机设备包括处理器和存储器,所述存储器中存储有至少一条指令或至少一段程序,所述至少一条指令或至少一段程序由所述处理器加载并执行以实现如权利要求1至9中任一项所述的一种测试数据的生成方法。
...【技术特征摘要】
1.一种测试数据的生成方法,其特征在于,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,所述基于所述待测试程序,进行代码建模,得到程序模型信息,包括:
3.根据权利要求2所述的方法,其特征在于,所述基于静态代码分析工具,对所述待测试程序进行静态分析,得到程序特征信息,包括:
4.根据权利要求1所述的方法,其特征在于,所述基于所述程序模型信息,进行路径遍历,得到所述待测试程序对应的至少一条测试路径,并确定每条测试路径的路径信息,包括:
5.根据权利要求4所述的方法,其特征在于,所述将每条测试路径的路径信息转换为与每条测试路径对应的提示信息,包括:
6.根据权利要求1所述的方法,其特征在于,所述方法还包括:
7.根据权利要求1所述...
【专利技术属性】
技术研发人员:高文冠,
申请(专利权)人:腾讯科技上海有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。