本公开实施例涉及代码测试技术,尤其涉及一种基于代码覆盖率的流程控制方法及电子设备。
背景技术:
1、代码覆盖率是用于描述程序中源代码被测试的比例和程度,测试时被执行的代码行视为已覆盖,未被执行的代码行视为未覆盖。
2、通常在代码的研发过程中,需要研发人员自发对代码进行测试,而对代码是否真实的进行了测试以及测试时代码的覆盖率等,完全由研发人员自行控制,这就导致无法对研发过程中的代码测试环节进行管控。
技术实现思路
1、本公开实施例提供一种基于代码覆盖率的流程控制方法及电子设备,以基于代码覆盖率自动对研发流程进行管控。
2、第一方面,本公开实施例提供一种基于代码覆盖率的流程控制方法,包括:
3、获取用于对源代码进行测试的测试任务,调用与所述源代码的编程语言类型对应的插桩引擎对所述源代码进行插桩处理,得到插桩后的代码;
4、根据所述测试任务测试所述插桩后的代码,并确定代码覆盖率;
5、对所述测试任务进行分析,确定测试类型;
6、若所述代码覆盖率不满足与所述测试类型对应的覆盖率阈值,则调用与所述测试类型对应的原子模块更新所述源代码的测试任务,并基于更新后的测试任务执行所述根据所述测试任务测试所述插桩后的代码的步骤。
7、第二方面,本公开实施例提供一种基于代码覆盖率的流程控制装置,包括:
8、插桩模块,用于获取用于对源代码进行测试的测试任务,调用与所述源代码的编程语言类型对应的插桩引擎对所述源代码进行插桩处理,得到插桩后的代码;
9、覆盖率确定模块,用于根据所述测试任务测试所述插桩后的代码,并确定代码覆盖率;
10、分析模块,用于对所述测试任务进行分析,确定测试类型;
11、原子能力模块,用于若所述代码覆盖率不满足与所述测试类型对应的覆盖率阈值,则调用与所述测试类型对应的原子模块更新所述源代码的测试任务,所述覆盖率确定模块基于更新后的测试任务执行所述根据所述测试任务测试所述插桩后的代码的步骤。
12、第三方面,本公开实施例提供一种电子设备,包括:至少一个处理器和存储器;
13、所述存储器存储计算机执行指令;
14、所述至少一个处理器执行所述存储器存储的计算机执行指令,使得所述至少一个处理器执行如上第一方面以及第一方面各种可能的设计所述的基于代码覆盖率的流程控制方法。
15、第四方面,本公开实施例提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机执行指令,当处理器执行所述计算机执行指令时,实现如上第一方面以及第一方面各种可能的设计所述的基于代码覆盖率的流程控制方法。
16、第五方面,本公开实施例提供一种计算机程序产品,包括计算机程序,所述计算机程序在被处理器执行时实现如上第一方面以及第一方面各种可能的设计所述的基于代码覆盖率的流程控制方法。
17、本实施例提供的基于代码覆盖率的流程控制方法及电子设备,包括:获取用于对源代码进行测试的测试任务,调用与源代码的编程语言类型对应的插桩引擎对源代码进行插桩处理,得到插桩后的代码;根据测试任务测试插桩后的代码,并确定代码覆盖率;对测试任务进行分析,确定测试类型;若代码覆盖率不满足与测试类型对应的覆盖率阈值,则调用与测试类型对应的原子模块更新源代码的测试任务,并基于更新后的测试任务执行根据测试任务测试插桩后的代码的步骤。本公开提供的方案中,可以在覆盖率测试不满足要求时,调用原子模块更新测试任务,重新对源代码进行测试,从而能够提高研发流程的管控效率和研发效率。
1.一种基于代码覆盖率的流程控制方法,其特征在于,包括:
2.根据权利要求1所述的方法,其特征在于,所述调用与所述测试类型对应的原子模块更新所述源代码的测试任务,包括:
3.根据权利要求1或2所述的方法,其特征在于,
4.根据权利要求1所述的方法,其特征在于,所述根据所述测试任务运行所述插桩后的代码,并确定代码覆盖率,包括:
5.根据权利要求4所述的方法,其特征在于,若所述执行数据表征代码执行失败,则所述方法还包括:
6.根据权利要求1所述的方法,其特征在于,若所述代码覆盖率满足与所述测试类型对应的覆盖率阈值,则所述方法还包括:
7.根据权利要求1所述的方法,其特征在于,所述根据所述测试任务执行所述插桩后的代码,包括:
8.一种基于代码覆盖率的流程控制装置,其特征在于,包括:
9.一种电子设备,其特征在于,包括:至少一个处理器和存储器;
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机执行指令,当处理器执行所述计算机执行指令时,实现如权利要求1至7任一项所述的方法。
11.一种计算机程序产品,包括计算机程序,所述计算机程序在被处理器执行时实现根据权利要求1-7中任一项所述的方法。
