代码测试方法、装置、计算机设备和存储介质制造方法及图纸

技术编号:38514479 阅读:9 留言:0更新日期:2023-08-19 16:57
本申请涉及一种代码测试方法、装置、计算机设备和存储介质。所述方法包括:响应于代码编辑请求,获取项目代码的变动代码集合;将变动代码集合与覆盖代码集合进行匹配,确定针对变动代码集合的N个目标测试案例;覆盖代码集合为初始测试案例覆盖项目代码的代码集合;N为正整数;响应于获取到目标测试案例,基于目标测试案例对变动代码集合进行测试并输出测试结果。采用本方法能够提高测试效率。试结果。采用本方法能够提高测试效率。试结果。采用本方法能够提高测试效率。

【技术实现步骤摘要】
代码测试方法、装置、计算机设备和存储介质


[0001]本申请涉及大数据
,特别是涉及一种代码测试方法、装置、计算机设备、存储介质和计算机程序产品。

技术介绍

[0002]当前持续集成流水线中,自动化测试已经成为影响整个流水线效率以及交互质量的重要因素,而开展自动化测试的难点在于如何选择自动化脚本,实现精准高效的自动化测试。
[0003]然而,目前的代码测试方式或者传统方法,存在测试效率低的问题。

技术实现思路

[0004]基于此,有必要针对上述技术问题,提供一种能够提高测试效率的代码测试方法、装置、计算机设备、计算机可读存储介质和计算机程序产品。
[0005]第一方面,本申请提供了一种代码测试方法。所述方法包括:
[0006]响应于代码编辑请求,获取项目代码的变动代码集合;
[0007]将变动代码集合与覆盖代码集合进行匹配,确定针对变动代码集合的N个目标测试案例;覆盖代码集合为初始测试案例覆盖项目代码的代码集合;N为正整数;
[0008]响应于获取到目标测试案例,基于目标测试案例对变动代码集合进行测试并输出测试结果。
[0009]在其中一个实施例中,响应于代码编辑请求,获取项目代码的变动代码集合,包括:
[0010]响应于代码编辑请求,确定出项目代码的代码差异集合;
[0011]基于项目代码的验证关键点集合和代码差异集合,得到变动代码集合。
[0012]在其中一个实施例中,将变动代码集合与覆盖代码集合进行匹配,确定针对变动代码集合的N个目标测试案例,包括:
[0013]基于验证关键点集合,验证M个测试案例针对变动代码集合的有效性;M大于或等于N,且M为正整数;
[0014]在至少一个测试案例针对变动代码集合有效的情况下,匹配变动代码集合和覆盖代码集合,从各测试案例中确定N个目标测试案例。
[0015]在其中一个实施例中,方法还包括:
[0016]对项目代码进行程序静态分析,得到验证关键点集合。
[0017]在其中一个实施例中,方法还包括:
[0018]基于编译插桩的方式,建立多个测试案例与项目代码中代码段的映射关系;
[0019]响应于任一测试案例作为初始测试案例,基于映射关系生成覆盖代码集合。
[0020]在其中一个实施例中,方法还包括:
[0021]在测试案例针对变动代码集合无效的情况下,输出无效提示信息;
[0022]若获取到案例更新请求,则基于案例更新请求对测试案例进行更新。
[0023]第二方面,本申请提供了一种代码测试装置,装置包括:
[0024]变动代码获取模块,用于响应于代码编辑请求,获取项目代码的变动代码集合;
[0025]案例推荐模块,用于将变动代码集合与覆盖代码集合进行匹配,确定针对变动代码集合的N个目标测试案例;覆盖代码集合为初始测试案例覆盖项目代码的代码集合;N为正整数;
[0026]变动代码测试模块,用于响应于获取到目标测试案例,基于目标测试案例对变动代码集合进行测试并输出测试结果。
[0027]第三方面,本申请提供了一种计算机设备,包括存储器和处理器,存储器存储有计算机程序,处理器执行计算机程序时实现上述的方法的步骤。
[0028]第四方面,本申请提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述的方法的步骤。
[0029]第五方面,本申请提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述的方法的步骤。
[0030]上述代码测试方法、装置、计算机设备、计算机可读存储介质和计算机程序产品,通过响应于代码编辑请求,获取项目代码的变动代码集合,可以降低项目代码需要测试的代码量,进而提高自动化测试的准确度和效率;将项目代码的变动代码集合与覆盖代码集合进行匹配,其中,覆盖代码集合为初始测试案例覆盖项目代码的代码集合,确定针对项目代码的变动代码集合的N个目标测试案例,N为正整数,用于有针对性的对项目代码的变动代码集合进行相应的功能测试;响应于获取到目标测试案例,基于目标测试案例对项目代码的变动代码集合进行测试并输出测试结果,可以准确、高效地实现对项目代码的测试,得到针对项目代码的变动代码的快速有效的测试结果,通过上述方式进行代码的自动化测试,维护成本低且自动化程度较高。在持续集成或者交互流水线中,通过本方案使得每次提交代码时,能根据变动的代码精准自动选择测试案例进行自动测试验证,相对传统的自动化测试方案,效率更高,结果更精准。
附图说明
[0031]图1为一个实施例中代码测试方法的流程示意图;
[0032]图2为一个实施例中匹配变动代码集合和覆盖代码集合的示意图;
[0033]图3为另一个实施例中匹配变动代码集合和覆盖代码集合的示意图;
[0034]图4为一个实施例中代码测试步骤的流程示意图;
[0035]图5为一个实施例中得到变动代码集合的示意图;
[0036]图6为另一个实施例中得到变动代码集合的示意图;
[0037]图7为另一个实施例中代码测试步骤的流程示意图;
[0038]图8为又一个实施例中代码测试步骤的流程示意图;
[0039]图9为再一个实施例中代码测试步骤的流程示意图;
[0040]图10为一个实施例中代码测试装置的结构框图;
[0041]图11为一个实施例中计算机设备的内部结构图;
[0042]图12为另一个实施例中计算机设备的内部结构图。
具体实施方式
[0043]为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
[0044]需要说明的是,目前一般都是通过代码插桩,执行添加插桩代码后的基准版本软件代码的测试案例,并采集每个测试案例执行期间的插桩代码的运行记录;根据每个测试案例执行期间的插桩代码的运行记录,生成函数和测试案例的对应关系。现有的方案存在如下不足:无法精准测试,在实际项目中,一个功能测试案例的执行,实际覆盖率的代码量往往较大,导致很多无关代码也会执行测试案例,测试案例和代码的关系非常复杂,其中大部分的代码并不是该测试案例设计的验证目标;维护成本大,当程序代码修改后,测试案例对应的代码往往需要做对应的修改,否则测试案例会逐渐变成无效案例,但是如果每次代码提交都人工去评估测试案例是否需要修改,将造成成本较大,测试自动化程度低。
[0045]在一个实施例中,如图1所示,提供了一种代码测试方法。所述方法包括:
[0046]步骤110,响应于代码编辑请求,获取项目代码的变动代码集合;
[0047]具体而言,若接收到代码编辑请求,表明当前要对项目代码进行更新,则可以获取项目代码的变动代码集合,项目代码的变动代码集合可以包括变动文件名以及变动文件名的对应行本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种代码测试方法,其特征在于,所述方法包括:响应于代码编辑请求,获取项目代码的变动代码集合;将所述变动代码集合与覆盖代码集合进行匹配,确定针对所述变动代码集合的N个目标测试案例;所述覆盖代码集合为初始测试案例覆盖所述项目代码的代码集合;N为正整数;响应于获取到所述目标测试案例,基于所述目标测试案例对所述变动代码集合进行测试并输出测试结果。2.根据权利要求1所述的方法,其特征在于,所述响应于代码编辑请求,获取项目代码的变动代码集合,包括:响应于所述代码编辑请求,确定出所述项目代码的代码差异集合;基于所述项目代码的验证关键点集合和所述代码差异集合,得到所述变动代码集合。3.根据权利要求2所述的方法,其特征在于,所述将所述变动代码集合与覆盖代码集合进行匹配,确定针对所述变动代码集合的N个目标测试案例,包括:基于所述验证关键点集合,验证M个测试案例针对所述变动代码集合的有效性;M大于或等于N,且M为正整数;在至少一个所述测试案例针对所述变动代码集合有效的情况下,匹配所述变动代码集合和所述覆盖代码集合,从各所述测试案例中确定N个所述目标测试案例。4.根据权利要求2所述的方法,其特征在于,所述方法还包括:对所述项目代码进行程序静态分析,得到所述验证关键点集合。5.根据权利要求1所述的方法,其特征在于,所述方法还包括:基于编译插桩的方式,建立...

【专利技术属性】
技术研发人员:曾旭峰毛培芳何泉廖杰
申请(专利权)人:中国工商银行股份有限公司
类型:发明
国别省市:

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

1