【技术实现步骤摘要】
单元测试代码的生成方法、装置、电子设备和存储介质
[0001]本公开涉及计算机
,尤其涉及数据处理、人工智能等
技术介绍
[0002]在相关技术中,主要通过人工梳理新增功能代码的业务流程,并采用手写单元测试代码的方式对该功能代码进行测试,并且在下游请求时,都是直连真实的测试环境,不仅耗费研发成本,还容易造成线上事故。
技术实现思路
[0003]本公开提供了一种单元测试代码的生成方法、装置、电子设备和存储介质。
[0004]根据本公开的一方面,提供了一种单元测试代码的生成方法,包括:获取存量代码中的目标功能代码,其中,目标功能代码由存量代码中的原始功能代码修改得到;从目标功能代码中提取函数信息和语句信息,其中,函数信息至少包括目标功能代码中函数的第一输入参数,语句信息至少包括目标功能代码中的第一条件语句代码,第一输入参数用于表征目标功能代码实现的数据功能;基于函数信息和语句信息,生成与目标功能代码对应的单元测试代码,其中,单元测试代码中函数的第二输入参数与第一输入参数相匹配,第二输入参数用于表征单元测试代码用于测试目标功能代码的测试用例的数量,单元测试代码中的第二条件语句代码与第一条件语句代码相匹配;基于单元测试代码对目标功能代码进行功能测试。
[0005]根据本公开的另一方面,提供了另一种单元测试代码的生成方法,包括:获取存量代码,其中,存量代码中至少包括目标功能代码,目标功能代码由存量代码中的原始功能代码修改得到;将存量代码输入至单元测试代码的生成模型中进行分析处理, ...
【技术保护点】
【技术特征摘要】
1.一种单元测试代码的生成方法,其特征在于,包括:获取存量代码中的目标功能代码,其中,所述目标功能代码由所述存量代码中的原始功能代码修改得到;从所述目标功能代码中提取函数信息和语句信息,其中,所述函数信息至少包括所述目标功能代码中函数的第一输入参数,所述语句信息至少包括所述目标功能代码中的第一条件语句代码,所述第一输入参数用于表征所述目标功能代码实现的数据功能;基于所述函数信息和所述语句信息,生成与所述目标功能代码对应的单元测试代码,其中,所述单元测试代码中函数的第二输入参数与所述第一输入参数相匹配,所述第二输入参数用于表征所述单元测试代码用于测试所述目标功能代码的测试用例的数量,所述单元测试代码中的第二条件语句代码与所述第一条件语句代码相匹配;基于所述单元测试代码对所述目标功能代码进行功能测试。2.根据权利要求1所述的方法,其特征在于,基于所述函数信息和所述语句信息,生成与所述目标功能代码对应的单元测试代码,包括:基于所述函数信息和所述语句信息,对所述目标功能代码按照功能类别进行分区,得到与所述目标功能代码的分区结果相对应的测试组代码模板,其中,所述测试组代码模板中至少包括所述分区结果中每个功能分区对应的测试组代码;基于所述测试组代码模板,生成所述单元测试代码。3.根据权利要求2所述的方法,其特征在于,基于所述测试组代码模板,生成所述单元测试代码,包括:基于所述第一输入参数,对所述测试组代码模板中至少一所述测试组代码进行修改,得到所述单元测试代码。4.根据权利要求1所述的方法,其特征在于,获取存量代码中的目标功能代码,包括:对所述存量代码的语法树进行扫描,确定所述存量代码中函数的逻辑分支;按照所述逻辑分支从所述存量代码中提取所述目标功能代码。5.根据权利要求1所述的方法,其特征在于,在基于所述单元测试代码对所述目标功能代码进行功能测试之后,所述方法还包括:基于所述单元测试代码覆盖所述存量代码中与所述原始功能代码对应的原始单元测试代码,其中,所述原始单元测试代码用于对所述原始功能代码进行功能测试。6.根据权利要求1所述的方法,其特征在于,在基于所述单元测试代码对所述目标功能代码进行功能测试之前,所述方法还包括:对所述单元测试代码和所述目标功能代码进行静态代码分析,确定所述第二输入参数与所述第一输入参数的第一匹配结果,以及确定所述第一条件语句与所述第二条件语句代码的第二匹配结果;基于所述第一匹配结果和所述第二匹配结果,确定所述单元测试代码中是否包含错误代码,其中,所述错误代码至少用于表征所述单元测试代码无法用于对所述目标功能代码进行测试。7.根据权利要求6所述的方法,其特征在于,基于所述第一匹配结果和所述第二匹配结果,确定所述单元测试代码中是否包含错误代码,包括:响应于所述第一匹配结果为所述第二输入参数与所述第一输入参数未成功匹配,和/
或所述第二匹配结果为所述第一条件语句与所述第二条件语句代码未成功匹配,确定所述单元测试代码和/或所述目标功能代码中包含错误代码。8.根据权利要求1所述的方法,其特征在于,在基于所述单元测试代码对所述目标功能代码进行功能测试之前,所述方法还包括:获取所述单元测试代码的断言代码,其中,所述断言代码从断言代码模板中提取得到,所述断言代码模板中至少包括所述断言代码;基于所述断言代码对所述单元测试代码进行调试。9.一种单元测试代码的生成方法,其特征在于,包括:获取存量代码,其中,所述存量代码中至少包括目标功能代码,所述目标功能代码由所述存量代码中的原始功能代码修改得到;将所述存量代码输入至单元测试代码的生成模型中进行分析处理,得到与所述目标功能代码对应的单元测试代码,其中,所述单元测试代码的生成模型为基于权利要求1至8中任意一项所述的方法确定。10.一种单元测试代码的生成装置,其特征在于,包括:第一获取单元,用于获取存量代码中的目标功能代码,其中,所述目标功能代码由所述存量代码中的原始功能...
【专利技术属性】
技术研发人员:王俊,
申请(专利权)人:北京百度网讯科技有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。