System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本申请涉及计算机,特别涉及一种测试用例的生成方法、装置、设备及存储介质。
技术介绍
1、测试用例(test case)用于对软件功能进行测试,测试用例用于提供对软件功能进行测试需要使用的参数和测试时需要调用的函数。
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、通过代码路径信息和代码文本文档来自技高网...
【技术保护点】
1.一种测试用例的生成方法,其特征在于,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,所述代码路径信息包括函数调用信息和参数路径信息;
3.根据权利要求2所述的方法,其特征在于,所述根据所述函数调用信息和所述代码文件,确定所述调用函数的模拟信息,包括:
4.根据权利要求2所述的方法,其特征在于,所述调用函数的所述模拟信息中还包括占位符;
5.根据权利要求4所述的方法,其特征在于,所述根据所述函数类型和所述计算参数,确定所述调用函数的所述占位符的数量,包括:
6.根据权利要求2所述的方法,其特征在于,所述调用函数的所述模拟信息中还包括所述调用函数的重载信息;
7.根据权利要求2所述的方法,其特征在于,所述根据所述参数路径信息和所述代码文件,确定所述输入参数和所述输出参数的驱动信息,包括:
8.根据权利要求1至7任一所述的方法,其特征在于,所述获取代码文件,包括:
9.根据权利要求8所述的方法,其特征在于,所述获取所述代码文件对应的代码路径信息,包括:
10.根据权
11.一种测试用例的生成装置,其特征在于,所述装置包括:
12.一种计算机设备,其特征在于,所述计算机设备包括:处理器和存储器,所述存储器中存储有至少一段程序;所述处理器,用于执行所述存储器中的所述至少一段程序以实现上述如权利要求1至10任一所述的测试用例的生成方法。
13.一种计算机可读存储介质,其特征在于,所述可读存储介质中存储有可执行指令,所述可执行指令由处理器加载并执行以实现上述如权利要求1至10任一所述的测试用例的生成方法。
14.一种计算机程序产品,其特征在于,所述计算机程序产品包括计算机指令,所述计算机指令存储在计算机可读存储介质中,处理器从所述计算机可读存储介质读取并执行所述计算机指令,以实现上述如权利要求1至10任一所述的测试用例的生成方法。
...【技术特征摘要】
1.一种测试用例的生成方法,其特征在于,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,所述代码路径信息包括函数调用信息和参数路径信息;
3.根据权利要求2所述的方法,其特征在于,所述根据所述函数调用信息和所述代码文件,确定所述调用函数的模拟信息,包括:
4.根据权利要求2所述的方法,其特征在于,所述调用函数的所述模拟信息中还包括占位符;
5.根据权利要求4所述的方法,其特征在于,所述根据所述函数类型和所述计算参数,确定所述调用函数的所述占位符的数量,包括:
6.根据权利要求2所述的方法,其特征在于,所述调用函数的所述模拟信息中还包括所述调用函数的重载信息;
7.根据权利要求2所述的方法,其特征在于,所述根据所述参数路径信息和所述代码文件,确定所述输入参数和所述输出参数的驱动信息,包括:
8.根据权利要求1至7任一所述的方法,其特征在于,所述获取代码文件,包括:
9.根据权利要求8所述的方法,其特征在于,所...
【专利技术属性】
技术研发人员:高文冠,
申请(专利权)人:腾讯数码天津有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。