技术新讯 > 计算推算,计数设备的制造及其应用技术 > 代码测试方法、装置、计算机设备及存储介质与流程  >  正文

代码测试方法、装置、计算机设备及存储介质与流程

  • 国知局
  • 2024-07-31 22:54:44

本申请涉及计算机,尤其涉及一种代码测试方法、装置、计算机设备及存储介质。

背景技术:

1、在开发软件的过程中,往往需要对软件代码进行测试,以确保代码的正常运行。目前,计算机设备可通过检测到用于进行代码测试的用户指令,响应于该指令,执行指定的自动化测试脚本的方式完成代码测试。然而,采用该方法,在开发人员修改代码后,测试人员需要分析修改要点,并根据修改要点判断是否需要发起自动化测试脚本进行代码测试。这样,不但测试效率低,而且还存在人工判断不准确的可能。因此,如何提高代码测试的效率和准确率成为了一个亟待解决的问题。

技术实现思路

1、本申请实施例提供了一种代码测试方法、装置、计算机设备及存储介质,可提高代码测试的效率和准确率。

2、第一方面,本申请提供了一种代码测试方法,该方法包括:

3、对目标代码库对应的git提交记录进行解析,获得提交信息;该提交信息包括被修改的文件路径以及被修改的代码行;

4、基于提交信息,确定目标代码库的代码修改信息所影响的至少一个子程序;

5、确定每个子程序的入口程序;

6、基于每个子程序的入口程序,确定目标测试脚本;

7、调用目标测试脚本,对目标代码库中的代码进行测试。

8、在其中一个实施例中,确定每个子程序的入口程序,包括:周期性的对目标代码库中的代码进行上下文扫描,确定代码之间的调用关系;基于调用关系,构建代码调用图谱;基于代码调用图谱,确定每个子程序的入口程序。

9、在其中一个实施例中,基于代码调用图谱,确定每个子程序的入口程序,包括:针对每个子程序,在代码调用图谱中,确定子程序对应的一个或多个候选入口程序;针对一个或多个候选入口程序,以候选入口程序为起点遍历代码调用图谱,确定每个候选入口程序与子程序之间的调用路径;基于每个候选入口程序与子程序之间的调用路径,从目标代码库中确定该子程序的入口程序。

10、在其中一个实施例中,该方法还包括:检测到用于指定每个子程序的入口程序的用户操作;基于用户操作,确定每个子程序的入口程序。

11、在其中一个实施例中,基于提交信息,确定目标代码库的代码修改信息所影响的至少一个子程序,包括:从提交信息中,获取至少一条代码修改信息;代码修改信息为与被修改的代码相关的信息;基于至少一条代码修改信息,确定目标代码库的代码修改信息所影响的至少一个子程序。

12、在其中一个实施例中,基于每个子程序的入口程序,确定目标测试脚本,包括:从一个或多个测试脚本中,选择脚本命名与每个子程序的入口程序相匹配的测试脚本,作为目标测试脚本。

13、在其中一个实施例中,调用目标测试脚本,对目标代码库中的代码进行测试之前,该方法还包括:确定代码测试所需的测试环境是否配置成功;在确定代码测试所需的测试环境配置成功的情况下,执行的调用目标测试脚本,对目标代码库中的代码进行测试的步骤。

14、在其中一个实施例中,该方法还包括:在用户界面显示代码测试结果;代码测试结果包括代码测试通过、代码测试不通过、代码错误信息、代码覆盖率。

15、第二方面,本申请提供了一种代码测试装置,该装置包括:

16、解析模块,用于对目标代码库对应的git提交记录进行解析,获得提交信息;提交信息包括被修改的文件路径以及被修改的代码行;

17、子程序确定模块,用于基于提交信息,确定目标代码库的代码修改信息所影响的至少一个子程序;

18、入口程序确定模块,用于确定每个子程序的入口程序;

19、测试脚本确定模块,用于基于每个子程序的入口程序,确定目标测试脚本;

20、测试模块,用于调用目标测试脚本,对目标代码库中的代码进行测试。

21、第三方面,本申请提供了一种电子设备,包括存储器和处理器,存储器存储有计算机程序,处理器执行计算机程序时实现以下步骤:

22、对目标代码库对应的git提交记录进行解析,获得提交信息;提交信息包括被修改的文件路径以及被修改的代码行;

23、基于提交信息,确定目标代码库的代码修改信息所影响的至少一个子程序;

24、确定每个子程序的入口程序;

25、基于每个子程序的入口程序,确定目标测试脚本;

26、调用目标测试脚本,对目标代码库中的代码进行测试。

27、第四方面,本申请还提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:

28、对目标代码库对应的git提交记录进行解析,获得提交信息;提交信息包括被修改的文件路径以及被修改的代码行;

29、基于提交信息,确定目标代码库的代码修改信息所影响的至少一个子程序;

30、确定每个子程序的入口程序;

31、基于每个子程序的入口程序,确定目标测试脚本;

32、调用目标测试脚本,对目标代码库中的代码进行测试。

33、第五方面,本申请还提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现以下步骤:

34、对目标代码库对应的git提交记录进行解析,获得提交信息;提交信息包括被修改的文件路径以及被修改的代码行;

35、基于提交信息,确定目标代码库的代码修改信息所影响的至少一个子程序;

36、确定每个子程序的入口程序;

37、基于每个子程序的入口程序,确定目标测试脚本;

38、调用目标测试脚本,对目标代码库中的代码进行测试。

39、上述代码测试方法、装置、计算机设备及存储介质,可通过对目标代码库对应的git提交记录进行解析,获得提交信息;基于提交信息,确定代码修改信息所影响的至少一个子程序;进一步的,确定每个子程序的入口程序,最后,基于每个子程序的入口程序,确定目标测试脚本,并调用目标测试脚本,对目标代码库中的代码进行测试。这样,可以准确的确定出需要进行代码测试的至少一个子程序(或者称为测试范围)以及每个子程序对应的入口程序(或者称为测试点),从而,在进行代码测试时,一方面,可以减少不必要的测试工作量,提高代码测试的效率;另一方面,能够提高代码测试的准确率。

技术特征:

1.一种代码测试方法,其特征在于,所述方法包括:

2.根据权利要求1所述的方法,其特征在于,所述确定每个所述子程序的入口程序,包括:

3.根据权利要求2所述的方法,其特征在于,所述基于所述代码调用图谱,确定每个所述子程序的入口程序,包括:

4.根据权利要求2所述的方法,其特征在于,所述方法还包括:

5.根据权利要求1至4任一项所述的方法,其特征在于,所述基于所述提交信息,确定所述目标代码库的代码修改信息所影响的至少一个子程序,包括:

6.根据权利要求1至4任一项所述的方法,其特征在于,所述基于每个所述子程序的入口程序,确定目标测试脚本,包括:

7.根据权利要求1至4任一项所述的方法,其特征在于,所述调用所述目标测试脚本,对所述目标代码库中的代码进行测试之前,所述方法还包括:

8.根据权利要求1至4任一项所述的方法,其特征在于,所述方法还包括:

9.一种代码测试装置,其特征在于,所述装置包括:

10.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至8中任一项所述的方法的步骤。

11.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至8中任一项所述的方法的步骤。

12.一种计算机程序产品,包括计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至8中任一项所述的方法的步骤。

技术总结本申请公开了一种代码测试方法、装置、计算机设备及存储介质,涉及计算机机设领域,可应用于金融科技领域或其他相关领域。其中方法包括:对目标代码库对应的git提交记录进行解析,获得提交信息;该提交信息包括被修改的文件路径以及被修改的代码行;基于提交信息,确定目标代码库的代码修改信息所影响的至少一个子程序;确定每个子程序的入口程序;基于每个子程序的入口程序,确定目标测试脚本;调用目标测试脚本,对目标代码库中的代码进行测试。采用本方法,可提高代码测试的效率和准确率。技术研发人员:张若晨,暨光耀,温丽明,胡俊秀受保护的技术使用者:中国工商银行股份有限公司技术研发日:技术公布日:2024/7/29

本文地址:https://www.jishuxx.com/zhuanli/20240730/195275.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 YYfuon@163.com 举报,一经查实,本站将立刻删除。