【技术实现步骤摘要】
获取函数的方法、装置及存储介质
[0001]本申请涉及计算机领域,特别涉及一种获取函数的方法、装置及存储介质。
技术介绍
[0002]代码生成技术一直是软件工程和人工智能领域学术研究的热点,并且因其巨大商业价值而备受工业界关注。近两年来,得益于人工智能研究在自然语言处理和程序语言处理方面取得的成果,将代码生成相关技术从学术研究逐步推向实际应用。
[0003]在相关技术中可以使用代码生成技术生成业务代码,业务代码往往包括多个函数。相关技术使用代码生成技术生成业务代码中的部分或全部函数,这样辅助用户编写业务代码,提高业务代码的编写效率。但是相关技术采用的代码生成技术生成函数的精度不高,这样需要用户花费大量时间检查生成的函数。
技术实现思路
[0004]本申请提供了一种获取函数的方法、装置及存储介质,以提高函数级代码生成的准确性,并减小用户检查和选择所生成函数的时间。所述技术方案如下:
[0005]第一方面,本申请提供了一种获取函数的方法,在所述方法中,获取待生成的目标函数的描述信息、函数签名和第一测试方法,该描述信息用于描述目标函数实现的功能,该函数签名用于标识目标函数,第一测试方法用于测试目标函数。基于第一测试方法、该描述信息和该函数签名,生成多个候选函数。基于第一测试方法测试该多个候选函数中的每个候选函数,得到每个候选函数的测试结果。基于每个候选函数的测试结果从该多个候选函数中选择目标函数。
[0006]由于获取第一测试方法,这样基于第一测试方法、目标函数的描述信息和函数签名, ...
【技术保护点】
【技术特征摘要】
1.一种获取函数的方法,其特征在于,所述方法包括:获取待生成的目标函数的描述信息、函数签名和第一测试方法,所述描述信息用于描述所述目标函数实现的功能,所述函数签名用于标识所述目标函数,所述第一测试方法用于测试所述目标函数;基于所述第一测试方法、所述描述信息和所述函数签名,生成多个候选函数;基于所述第一测试方法测试所述多个候选函数中的每个候选函数,得到所述每个候选函数的测试结果;基于所述每个候选函数的测试结果从所述多个候选函数中选择所述目标函数。2.如权利要求1所述的方法,其特征在于,所述获取待生成的目标函数的描述信息、函数签名和第一测试方法,包括:响应于针对待生成的业务代码的输入操作,获取所述输入操作向所述业务代码输入的所述目标函数的描述信息和函数签名;显示第一测试文件,所述第一测试文件包括第二测试方法,所述第二测试方法是基于所述函数签名生成的;响应于针对所述第一测试文件的修改操作,获取所述第一测试方法,所述修改操作用于对所述第一测试文件包括的所述第二测试方法进行修改和/或补充得到所述第一测试方法。3.如权利要求2所述的方法,其特征在于,所述方法还包括:响应于所述输入操作,显示第一提示元素,所述第一提示元素用于提示是否生成测试方法;响应于所述第一提示元素被触发产生的命令,获取配置信息,所述配置信息包括测试框架和所述第一测试文件的文件信息,所述测试框架包括测试方法生成模板;基于所述测试方法生成模板、所述文件信息和所述目标函数的函数签名,通过所述测试框架生成所述第一测试文件。4.如权利要求1
‑
3任一项所述的方法,其特征在于,所述第一测试方法包括多个测试样例,每个测试样例包括输入数据和期望输出数据,所述基于所述第一测试方法测试所述多个候选函数中的每个候选函数,得到所述每个候选函数的测试结果,包括:将第一候选函数与待生成的业务代码结合得到目标代码,所述待生成的业务代码是所述目标函数属于的业务代码,所述多个候选函数包括所述第一候选函数,所述目标代码用于对所述每个测试样例包括的输入数据进行处理,得到所述每个测试样例对应的处理结果;获取所述目标代码输出的所述每个测试样例对应的处理结果;分别比较所述每个测试样例包括的期望输出数据和所述每个测试样例对应的处理结果,得到所述第一候选函数的测试结果。5.如权利要求4所述的方法,其特征在于,所述方法还包括:对所述目标代码进行编译;在成功编译所述目标代码时,向所述目标代码输入所述每个测试样例包括的输入数据,使所述目标代码对所述每个测试样例包括的输入数据进行处理。
6.一种获取函数的装置,其特征在于,所述装置包括:获取单元,用于获取待生成的目标函数的描述信息、函数签名和第一测试方法,所述描述信息用于描述所述目标函数实现的功能,所述函数签名用于标识所述目标函数,所述第一测试方法用于测试所述目标函数;处理单元,用于基于所述第一测试方法、所述描述信息和所述函数签名,生成多个候选函数;...
【专利技术属性】
技术研发人员:申博,周建祎,梁广泰,王千祥,
申请(专利权)人:深圳华为云计算技术有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。