代码策略校验方法、装置、设备及存储介质制造方法及图纸

技术编号:39328434 阅读:9 留言:0更新日期:2023-11-12 16:05
本申请公开了一种代码策略校验方法、装置、设备及存储介质,涉及计算机技术领域。所述方法包括:获取基于业务需求编写的代码,以及用于表征业务需求的业务规则;基于代码,确定代码编译策略网络,代码编译策略网络用于表征代码的执行逻辑的框架;基于业务规则,确定业务规则策略网络,业务规则策略网络用于表征业务需求的业务逻辑的框架;根据代码编译策略网络和业务规则策略网络,对代码的策略规则进行校验。本申请实施例根据代码生成代码策略规则网络,根据业务需求生成业务规则策略网络,通过比较两个网络,来校验代码是否符合业务需求,减少了代码策略校验所需要的成本,提高了代码策略校验的效率。代码策略校验的效率。代码策略校验的效率。

【技术实现步骤摘要】
代码策略校验方法、装置、设备及存储介质


[0001]本申请实施例涉及计算机
,特别涉及一种代码策略校验方法、装置、设备及存储介质。

技术介绍

[0002]随着计算机技术的发展,可以使用代码语言来表征业务需求,也即,将业务需求以代码的形式编写出来。
[0003]在相关技术中,通过人工来校验代码的策略规则是否符合用户需求。
[0004]然而,上述相关技术中依靠人工来对代码的策略规则进行校验,成本较高。

技术实现思路

[0005]本申请实施例提供了一种代码策略校验方法、装置、设备及存储介质。所述技术方案如下:
[0006]根据本申请实施例的一个方面,提供了一种代码策略校验方法,所述方法包括:
[0007]获取基于业务需求编写的代码,以及用于表征所述业务需求的业务规则;
[0008]基于所述代码,确定代码编译策略网络,所述代码编译策略网络用于表征所述代码的执行逻辑的框架;
[0009]基于所述业务规则,确定业务规则策略网络,所述业务规则策略网络用于表征所述业务需求的业务逻辑的框架;
[0010]根据所述代码编译策略网络和所述业务规则策略网络,对所述代码的策略规则进行校验。
[0011]根据本申请实施例的一个方面,提供了一种代码策略校验装置,所述装置包括:
[0012]代码获取模块,用于获取基于业务需求编写的代码,以及用于表征所述业务需求的业务规则;
[0013]第一网络确定模块,用于基于所述代码,确定代码编译策略网络,所述代码编译策略网络用于表征所述代码的执行逻辑的框架;
[0014]第二网络确定模块,用于基于所述业务规则,确定业务规则策略网络,所述业务规则策略网络用于表征所述业务需求的业务逻辑的框架;
[0015]代码校验模块,用于根据所述代码编译策略网络和所述业务规则策略网络,对所述代码的策略规则进行校验。
[0016]在一些实施例中,所述代码校验模块包括流水线提取单元、规则校验单元和结果确定单元。
[0017]所述流水线提取单元,用于从所述代码编译策略网络中确定多条策略规则流水线,所述策略规则流水线是所述代码编译策略网络中的一条可执行路径。
[0018]所述流水线提取单元,还用于从所述业务规则策略网络中确定多条业务规则流水线,所述业务规则流水线是所述业务规则策略网络中的一条可执行路径。
[0019]所述规则校验单元,用于当对所述多条策略规则流水线中的第一策略规则流水线进行校验时,若所述第一策略规则流水线针对第一输入数据的输出结果,与所述多条业务规则流水线中的第一业务规则流水线针对所述第一输入数据的输出结果相同,则确定所述第一策略规则流水线的校验结果为符合所述业务需求。
[0020]所述结果确定单元,用于根据所述多条策略规则流水线的校验结果,得到所述代码的策略规则的校验结果。
[0021]在一些实施例中,所述规则校验单元,还用于若所述第一策略规则流水线针对所述第一输入数据的输出结果,与所述多条业务规则流水线中的第一业务规则流水线针对所述第一输入数据的输出结果不同,则确定所述第一策略规则流水线的校验结果为不符合所述业务需求。
[0022]在一些实施例中,所述规则校验单元,还用于在所述第一策略规则流水线的校验结果为不符合所述业务需求的情况下,使用策略规则校验器对所述第一策略规则流水线和所述第一业务规则流水线进行逐节点校验;其中,所述逐节点检验是指校验所述第一策略规则流水线和所述第一业务规则流水线中的每一个策略节点的输出是否相同,所述第一策略规则流水线和所述第一业务规则流水线中都存在对应的多个策略节点。
[0023]在一些实施例中,所述代码校验模块还包括代码编写单元。
[0024]所述代码编写单元,用于在所述第一策略规则流水线的校验结果为不符合所述业务需求的情况下,对所述代码进行重新编写,根据重新编写后的代码生成新的代码编译策略网络。
[0025]所述代码校验模块,还用于根据所述新的代码编译策略网络和所述业务规则策略网络,对所述重新编写后的代码的策略规则进行校验。
[0026]在一些实施例中,所述第一网络确定模块包括语法树生成单元和第一网络确定单元。
[0027]所述语法树生成单元,用于生成所述代码对应的语法树,所述语法树中包括多个策略节点,所述策略节点表征所述代码中各个函数的运算逻辑或分支条件,所述策略节点之间的连接关系表示所述策略节点之间存在推进关系。
[0028]所述第一网络确定单元,用于根据所述语法树,确定所述代码编译策略网络,所述代码编译策略网络中包括多个所述策略节点。
[0029]在一些实施例中,所述第一网络确定单元,用于遍历所述语法树中的各个所述策略节点,根据所述策略节点之间的推进关系,确定所述策略节点之间的全部连接关系。
[0030]所述第一网络确定单元,还用于根据各个所述策略节点,以及所述策略节点之间的全部连接关系,确定所述代码编译网络。
[0031]在一些实施例中,所述第二网络确定模块包括函数获取单元和第二网络确定单元。
[0032]所述函数获取单元,用于从规则术语表中获取与所述业务需求相关的策略概念和策略函数;其中,所述规则术语表中包括多个策略概念以及与各个所述策略概念分别对应的策略函数,所述策略函数用于表征所述策略概念的实现方式,所述策略概念用于表征所述业务需求中的具体内容。
[0033]所述第二网络确定单元,用于基于与所述业务需求相关的策略概念和策略函数,
确定所述业务规则策略网络;其中,所述业务规则策略网络中包括多个策略节点,所述策略节点之间存在连接关系,所述策略节点表征所述策略函数的运算逻辑、分支条件或所述策略概念,所述策略节点之间的连接关系表征所述策略节点之间存在推进关系。
[0034]在一些实施例中,所述规则术语表中包括名词表、行为映射表、策略函数。
[0035]其中,所述行为映射表用于表征所述名词表中的名词与所述策略函数的对应关系,所述名词表中的名词包括所述业务需求中的具体内容。
[0036]在一些实施例中,所述第二网络确定单元,用于基于所述策略函数的运算逻辑、分支条件以及所述策略概念,确定所述策略节点。
[0037]所述第二网络确定单元,还用于根据所述业务需求,定义所述策略节点的推进条件和输出结果。
[0038]所述第二网络确定单元,还用于基于多个所述策略节点以及各个所述策略节点分别对应的所述推进条件和所述输出结果,确定所述业务规则策略网络中所述策略节点之间的连接关系。
[0039]所述第二网络确定单元,还用于根据所述业务规则策略网络中所述策略节点之间的连接关系,确定所述业务规则策略网络。
[0040]在一些实施例中,所述装置还包括输入确定模块和网络检验模块。
[0041]所述输入确定模块,用于根据所述策略概念,定义所述业务规则策略网络的策略前置条件和策略期望结果。
[0042]所述输本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种代码策略校验方法,其特征在于,所述方法包括:获取基于业务需求编写的代码,以及用于表征所述业务需求的业务规则;基于所述代码,确定代码编译策略网络,所述代码编译策略网络用于表征所述代码的执行逻辑的框架;基于所述业务规则,确定业务规则策略网络,所述业务规则策略网络用于表征所述业务需求的业务逻辑的框架;根据所述代码编译策略网络和所述业务规则策略网络,对所述代码的策略规则进行校验。2.根据权利要求1所述的方法,其特征在于,所述根据所述代码编译策略网络和所述业务规则策略网络,对所述代码的策略规则进行校验,包括:对所述代码编译策略网络和所述业务规则策略网络针对相同输入数据的输出结果进行比较,得到所述代码的策略规则的校验结果。3.根据权利要求2所述的方法,其特征在于,所述对所述代码编译策略网络和所述业务规则策略网络针对相同输入数据的输出结果进行比较,得到所述代码的策略规则的校验结果,包括:从所述代码编译策略网络中确定多条策略规则流水线,所述策略规则流水线是所述代码编译策略网络中的一条可执行路径;从所述业务规则策略网络中确定多条业务规则流水线,所述业务规则流水线是所述业务规则策略网络中的一条可执行路径;当对所述多条策略规则流水线中的第一策略规则流水线进行校验时,若所述第一策略规则流水线针对第一输入数据的输出结果,与所述多条业务规则流水线中的第一业务规则流水线针对所述第一输入数据的输出结果相同,则确定所述第一策略规则流水线的校验结果为符合所述业务需求;根据所述多条策略规则流水线的校验结果,得到所述代码的策略规则的校验结果。4.根据权利要求3所述的方法,其特征在于,所述方法还包括:若所述第一策略规则流水线针对所述第一输入数据的输出结果,与所述多条业务规则流水线中的第一业务规则流水线针对所述第一输入数据的输出结果不同,则确定所述第一策略规则流水线的校验结果为不符合所述业务需求。5.根据权利要求4所述的方法,其特征在于,所述方法还包括:在所述第一策略规则流水线的校验结果为不符合所述业务需求的情况下,使用策略规则校验器对所述第一策略规则流水线和所述第一业务规则流水线进行逐节点校验;其中,所述逐节点检验是指校验所述第一策略规则流水线和所述第一业务规则流水线中的每一个策略节点的输出是否相同,所述第一策略规则流水线和所述第一业务规则流水线中都存在对应的多个策略节点。6.根据权利要求4所述的方法,其特征在于,在所述第一策略规则流水线的校验结果为不符合所述业务需求的情况下,所述方法还包括:对所述代码进行重新编写,根据重新编写后的代码生成新的代码编译策略网络;根据所述新的代码编译策略网络和所述业务规则策略网络,对所述重新编写后的代码的策略规则进行校验。
7.根据权利要求1所述的方法,其特征在于,所述基于所述代码,确定代码编译策略网络,包括:生成所述代码对应的语法树,所述语法树中包括多个策略节点,所述策略节点表征所述代码中各个函数的运算逻辑或分支条件,所述策略节点之间的连接关系表示所述策略节点之间存在推进关系;根据所述语法树,确定所述代码编译策略网络,所述代码编译策略网络中包括多个所述策略节点。8.根据权利要求7所述的方法,其特征在于,所述根据所述语法树,确定所述代码编译策略网络,包括:遍历所述语法树中的各个所述策略节点,根据所述策略节点之间的推进关系,确定所述策略节点之间的全部连接关系;根据各个所述策略节点,以及所述策略节点之间的全...

【专利技术属性】
技术研发人员:张镇鸿侯锦坤郭润增王少鸣张晋铭
申请(专利权)人:腾讯科技深圳有限公司
类型:发明
国别省市:

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

1