获取函数的方法、装置及存储介质制造方法及图纸

技术编号:37969282 阅读:15 留言:0更新日期:2023-06-30 09:44
本申请公开了一种获取函数的方法、装置及存储介质,属于计算机领域。所述方法包括:获取待生成的目标函数的描述信息、函数签名和第一测试方法,所述描述信息用于描述所述目标函数实现的功能,所述函数签名用于标识所述目标函数,所述第一测试方法用于测试所述目标函数;基于所述第一测试方法、所述描述信息和所述函数签名,生成多个候选函数;基于所述第一测试方法测试所述多个候选函数中的每个候选函数,得到所述每个候选函数的测试结果;基于所述每个候选函数的测试结果从所述多个候选函数中选择所述目标函数。本申请能够提高函数级代码生成的准确性,并减小用户检查和选择所生成函数的时间。数的时间。数的时间。

【技术实现步骤摘要】
获取函数的方法、装置及存储介质


[0001]本申请涉及计算机领域,特别涉及一种获取函数的方法、装置及存储介质。

技术介绍

[0002]代码生成技术一直是软件工程和人工智能领域学术研究的热点,并且因其巨大商业价值而备受工业界关注。近两年来,得益于人工智能研究在自然语言处理和程序语言处理方面取得的成果,将代码生成相关技术从学术研究逐步推向实际应用。
[0003]在相关技术中可以使用代码生成技术生成业务代码,业务代码往往包括多个函数。相关技术使用代码生成技术生成业务代码中的部分或全部函数,这样辅助用户编写业务代码,提高业务代码的编写效率。但是相关技术采用的代码生成技术生成函数的精度不高,这样需要用户花费大量时间检查生成的函数。

技术实现思路

[0004]本申请提供了一种获取函数的方法、装置及存储介质,以提高函数级代码生成的准确性,并减小用户检查和选择所生成函数的时间。所述技术方案如下:
[0005]第一方面,本申请提供了一种获取函数的方法,在所述方法中,获取待生成的目标函数的描述信息、函数签名和第一测试方法,该描述信息用于描述目标函数实现的功能,该函数签名用于标识目标函数,第一测试方法用于测试目标函数。基于第一测试方法、该描述信息和该函数签名,生成多个候选函数。基于第一测试方法测试该多个候选函数中的每个候选函数,得到每个候选函数的测试结果。基于每个候选函数的测试结果从该多个候选函数中选择目标函数。
[0006]由于获取第一测试方法,这样基于第一测试方法、目标函数的描述信息和函数签名,生成多个候选函数,从而丰富了生成候选函数所使用的信息,提高生成候选函数的精度,即提高函数级代码生成的准确性。以及,在使用第一测试方法测试该多个候选函数时提高测试效率。又由于通过第一测试方法自动对多个侯选函数进行测试,相比人工测试,大幅度提高了测试效率,减小用户检查和选择所生成函数的时间。
[0007]在一种可能的实现方式中,响应于针对待生成的业务代码的输入操作,获取该输入操作向业务代码输入的目标函数的描述信息和函数签名。显示第一测试文件,第一测试文件包括第二测试方法,第二测试方法是基于该函数签名生成的。响应于针对第一测试文件的修改操作,获取第一测试方法,该修改操作用于对第一测试文件包括的第二测试方法进行修改和/或补充得到第一测试方法。
[0008]由于基于第二测试方法是基于该函数签名生成的,然后对第二测试方法进行修改和/或补充得到第一测试方法,这样可以减小需要修改或补充的内容,不仅提高了得到第一测试方法的效率,还减小了得到第一测试方法所需要的时间。
[0009]在另一种可能的实现方式中,响应于该输入操作,显示第一提示元素,第一提示元素用于提示是否生成测试方法。响应于第一提示元素被触发产生的命令,获取配置信息,该
配置信息包括测试框架和第一测试文件的文件信息,该测试框架包括测试方法生成模板。基于该测试方法生成模板、该文件信息和该目标函数的函数签名,通过该测试框架生成第一测试文件。
[0010]由于显示第一提示元素,第一提示元素用于提示是否生成测试方法,这样让用户自主选择是否采用自动生成方式生成测试方法,能够及时提醒用户。另外,该测试框架包括测试方法生成模板,通过测试框架保证能够成功生成第二测试方法。
[0011]在另一种可能的实现方式中,第一测试方法包括多个测试样例,每个测试样例包括输入数据和期望输出数据。将第一候选函数与待生成的业务代码结合得到目标代码,待生成的业务代码是目标函数属于的业务代码,该多个候选函数包括第一候选函数,目标代码用于对每个测试样例包括的输入数据进行处理,得到每个测试样例对应的处理结果。获取目标代码输出的每个测试样例对应的处理结果。分别比较每个测试样例包括的期望输出数据和每个测试样例对应的处理结果,得到第一候选函数的测试结果。如此实现通过第一测试方法自动测试该多个候选函数,减小测试候选函数所需要的时间。
[0012]在另一种可能的实现方式中,对目标代码进行编译。在成功编译目标代码时,向目标代码输入每个测试样例包括的输入数据,使目标代码对每个测试样例包括的输入数据进行处理。这样对编辑成功的目标代码进行测试,减小测试的数据量。
[0013]第二方面,本申请提供了一种获取函数的装置,用于执行第一方面或第一方面的任意一种可能的实现方式中的方法。具体地,所述装置包括用于执行第一方面或第一方面的任意一种可能的实现方式中的方法的单元。
[0014]第三方面,本申请提供了一种获取函数的集群,所述集群包括至少一个计算设备,所述至少一个计算设备中的每个设备包括至少一个处理器和至少一个存储器,所述至少一个存储器中存储有计算机可读指令;所述至少一个处理器执行所述计算机可读指令,以使得所述集群实现第一方面或第一方面的任意一种可能的实现方式中的方法。
[0015]第四方面,本申请提供了一种计算机程序产品,所述计算机程序产品包括在计算机可读存储介质中存储的计算机程序,并且所述计算程序通过处理器进行加载来实现上述第一方面或第一方面任意可能的实现方式的方法。
[0016]第五方面,本申请提供了一种计算机可读存储介质,用于存储计算机程序,所述计算机程序通过处理器进行加载来执行上述第一方面或第一方面任意可能的实现方式的方法。
[0017]第六方面,本申请提供了一种芯片,包括存储器和处理器,存储器用于存储计算机指令,处理器用于从存储器中调用并运行该计算机指令,以执行上述第一方面或第一方面任意可能的实现方式的方法。
附图说明
[0018]图1是本申请实施例提供的一种网络架构示意图;
[0019]图2是本申请实施例提供的一种获取函数的方法流程图;
[0020]图3是本申请实施例提供的一种业务代码编辑界面的示意图;
[0021]图4是本申请实施例提供的一种第一配置界面的示意图;
[0022]图5是本申请实施例提供的一种第二配置界面的示意图;
[0023]图6是本申请实施例提供的一种同屏显示业务代码编辑界面和第一界面的示意图;
[0024]图7是本申请实施例提供的一种同屏显示业务代码编辑界面、第一界面和多个第二界面的示意图;
[0025]图8是本申请实施例提供的一种显示语法错误的示意图;
[0026]图9是本申请实施例提供的一种显示测试通过的测试样例数量的示意图;
[0027]图10是本申请实施例提供的一种获取函数的装置结构示意图;
[0028]图11是本申请实施例提供的一种计算设备的结构示意图;
[0029]图12是本申请实施例提供的一种获取函数的集群的结构示意图;
[0030]图13是本申请实施例提供的另一种获取函数的集群的结构示意图。
具体实施方式
[0031]下面将结合附图对本申请实施方式作进一步地详细描述。
[0032]用户可以使用终端设备来开发业务代码,通常业务代码包括至少一个函数,为了增加开发业务代码的效率,减小用户编写程本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种获取函数的方法,其特征在于,所述方法包括:获取待生成的目标函数的描述信息、函数签名和第一测试方法,所述描述信息用于描述所述目标函数实现的功能,所述函数签名用于标识所述目标函数,所述第一测试方法用于测试所述目标函数;基于所述第一测试方法、所述描述信息和所述函数签名,生成多个候选函数;基于所述第一测试方法测试所述多个候选函数中的每个候选函数,得到所述每个候选函数的测试结果;基于所述每个候选函数的测试结果从所述多个候选函数中选择所述目标函数。2.如权利要求1所述的方法,其特征在于,所述获取待生成的目标函数的描述信息、函数签名和第一测试方法,包括:响应于针对待生成的业务代码的输入操作,获取所述输入操作向所述业务代码输入的所述目标函数的描述信息和函数签名;显示第一测试文件,所述第一测试文件包括第二测试方法,所述第二测试方法是基于所述函数签名生成的;响应于针对所述第一测试文件的修改操作,获取所述第一测试方法,所述修改操作用于对所述第一测试文件包括的所述第二测试方法进行修改和/或补充得到所述第一测试方法。3.如权利要求2所述的方法,其特征在于,所述方法还包括:响应于所述输入操作,显示第一提示元素,所述第一提示元素用于提示是否生成测试方法;响应于所述第一提示元素被触发产生的命令,获取配置信息,所述配置信息包括测试框架和所述第一测试文件的文件信息,所述测试框架包括测试方法生成模板;基于所述测试方法生成模板、所述文件信息和所述目标函数的函数签名,通过所述测试框架生成所述第一测试文件。4.如权利要求1

3任一项所述的方法,其特征在于,所述第一测试方法包括多个测试样例,每个测试样例包括输入数据和期望输出数据,所述基于所述第一测试方法测试所述多个候选函数中的每个候选函数,得到所述每个候选函数的测试结果,包括:将第一候选函数与待生成的业务代码结合得到目标代码,所述待生成的业务代码是所述目标函数属于的业务代码,所述多个候选函数包括所述第一候选函数,所述目标代码用于对所述每个测试样例包括的输入数据进行处理,得到所述每个测试样例对应的处理结果;获取所述目标代码输出的所述每个测试样例对应的处理结果;分别比较所述每个测试样例包括的期望输出数据和所述每个测试样例对应的处理结果,得到所述第一候选函数的测试结果。5.如权利要求4所述的方法,其特征在于,所述方法还包括:对所述目标代码进行编译;在成功编译所述目标代码时,向所述目标代码输入所述每个测试样例包括的输入数据,使所述目标代码对所述每个测试样例包括的输入数据进行处理。
6.一种获取函数的装置,其特征在于,所述装置包括:获取单元,用于获取待生成的目标函数的描述信息、函数签名和第一测试方法,所述描述信息用于描述所述目标函数实现的功能,所述函数签名用于标识所述目标函数,所述第一测试方法用于测试所述目标函数;处理单元,用于基于所述第一测试方法、所述描述信息和所述函数签名,生成多个候选函数;...

【专利技术属性】
技术研发人员:申博周建祎梁广泰王千祥
申请(专利权)人:深圳华为云计算技术有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1