System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本申请涉及软件测试,特别是涉及一种函数测试方法、装置、计算机设备和存储介质。
技术介绍
1、软件代码单元测试是代码开发过程不可缺少的一步,它对软件的质量保证至关重要。对于开发人员来说,在开发过程中做好单元测试,能够尽早发现软件中的错误,对于保证代码质量十分重要。
2、随着软件管理和应用的平台化和智能化发展,以及提高软件管理和维护的便利性和效率的需要,需要统一软件开发语言。目前软件存在采用不同开发语言开发的问题,因此需将软件开发语言统一起来,如将fortran(formula translation,公式翻译)和java(一种面向对象的编程语言)等其他语言开发的软件统一转为c++语言开发。对于核电领域的计算类软件,其逻辑关系比较复杂,测试单元和数据量通常很大,数据准备难度大,开展单元测试需要耗费大量人力和物力,并且对单元测试质量要求较高,否则后续系统测试中发现问题,难以排查,并将付出更大的人力物力成本。
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、获取待测函数、包含参考函数的参考代码和多个测试用例;待测函数和参考函本文档来自技高网...
【技术保护点】
1.一种函数测试方法,其特征在于,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,所述对所述参考代码进行改造处理,得到代码生成工具,包括:
3.根据权利要求2所述的方法,其特征在于,所述解析所述参考代码,得到所述参考函数的输入变量、输出变量和逻辑代码,包括:
4.根据权利要求1所述的方法,其特征在于,所述基于所述输入变量值、所述输出变量值和所述待测函数,在所述代码生成工具运行后,生成所述测试用例对应的测试代码,包括:
5.根据权利要求4所述的方法,其特征在于,所述参考函数的输出变量的数量和所述待测输出变量的数量均为多个;所述基于所述输出变量值和所述待测输出变量,确定比较代码,包括:
6.根据权利要求1所述的方法,其特征在于,所述基于多个测试用例各自对应的运行结果,得到所述待测函数的测试结果,包括:
7.一种函数测试装置,其特征在于,所述装置包括:
8.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至6中任一项所述的
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至6中任一项所述的方法的步骤。
10.一种计算机程序产品,包括计算机程序,其特征在于,该计算机程序被处理器执行时实现权利要求1至6中任一项所述的方法的步骤。
...【技术特征摘要】
1.一种函数测试方法,其特征在于,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,所述对所述参考代码进行改造处理,得到代码生成工具,包括:
3.根据权利要求2所述的方法,其特征在于,所述解析所述参考代码,得到所述参考函数的输入变量、输出变量和逻辑代码,包括:
4.根据权利要求1所述的方法,其特征在于,所述基于所述输入变量值、所述输出变量值和所述待测函数,在所述代码生成工具运行后,生成所述测试用例对应的测试代码,包括:
5.根据权利要求4所述的方法,其特征在于,所述参考函数的输出变量的数量和所述待测输出变量的数量均为多个;所述基于所述输出变量值和所述待测输出变量,确定比较代码,包括:...
【专利技术属性】
技术研发人员:卢勇,张红杨,金鑫,彭思涛,厉井钢,刘虓瀚,张香菊,
申请(专利权)人:中广核研究院有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。