提高代码测试精度的方法及装置、存储介质及电子设备制造方法及图纸

技术编号:36756754 阅读:16 留言:0更新日期:2023-03-04 10:48
本发明专利技术提供一种提高代码测试精度的方法及装置、存储介质及电子设备,包括:获取测试任务,并获得测试任务中的变更代码;获取变更代码的关系数据,关系数据包含变更代码的逻辑分支和测试逻辑分支时所应用的用例之间的映射关系;执行测试用例,以对变更代码进行测试,并采集变更代码的测试覆盖数据;基于测试覆盖数据,确定变更代码中尚未测试的逻辑分支;当确定关系数据中存在与尚未测试的逻辑分支对应的映射关系时,执行与该映射关系对应的用例,以测试尚未测试的逻辑分支。本发明专利技术分析出测试的变更代码中尚未被测试的逻辑分支,并确定与该逻辑分支对应的用例,执行用例以对逻辑分支测试,从而提高变更代码的测试覆盖率和测试精度。度。度。

【技术实现步骤摘要】
提高代码测试精度的方法及装置、存储介质及电子设备


[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]第三确定子单元,用于将执行状态表征为未执行的代码行确定为目标代码行;
[0043]第四确定子单元,用于确定所述目标代码行所属的逻辑分支,并将该逻辑分支确定为尚未测试的逻辑分支。
[0044]上述的装置,可选的,还包括:
[0045]第五确定子单元,用于确定所述尚未测试的逻辑分支的分支识别信息;
[0046]第六确定子单元,用于确定所述关系数据中是否存在与所述分支识别信息相匹配的分支信息;
[0047]第七确定子单元,用于当确定所述关系数据中存在与所述分支识别信息相匹配的分支信息时,将该分支信息所对应的映射关系确定为所述尚未测试的逻辑分支的映射关系。
[0048]一种存储介质,所述存储介质包括存储的指令,其中,在所述指令运行时控制所述存储介质所在的设备执行如上所述的提高代码测试精度的方法。
[0049]一种电子设备,包括存储器,以及一个或者一个以上的指令,其中一个或者一个以上指令存储于存储器中,且经配置以由一个或者一个以上处理器执行如上所述的提高代码测试精度的方法。
[0050]与现有技术相比,本专利技术具有以下优点:
[0051]本专利技术提供一种提高代码测试精度的方法及装置、存储介质及电子设备,包括:获取测试任务,并确定测试任务中的变更代码;获取变更代码的关系数据,关系数据包含所述变更代码的逻辑分支和测试逻辑分支时所应用的用例之间的映射关系;执行预设的用例集中的各个测试用例,以对变更代码进行测试,并采集变更代码的测试覆盖数据;基于测试覆盖数据,确定变更代码中尚未测试的逻辑分支;当确定关系数据中存在与尚未测试的逻辑分支对应的映射关系时,基于与尚未测试的逻辑分支对应的映射关系确定目标用例,并执行目标用例,以测试尚未测试的逻辑分支。通过确定出测试的变更代码中尚未被测本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种提高代码测试精度的方法,其特征在于,包括:获取测试任务,并确定所述测试任务中的变更代码;获取所述变更代码的关系数据,所述关系数据包含所述变更代码的逻辑分支和测试逻辑分支时所应用的用例之间的映射关系;执行预设的测试用例,以对所述变更代码进行测试,并采集所述变更代码的测试覆盖数据;基于所述测试覆盖数据,确定所述变更代码中尚未测试的逻辑分支;当确定所述关系数据中存在与所述尚未测试的逻辑分支对应的映射关系时,基于与所述尚未测试的逻辑分支对应的映射关系确定目标用例,并执行所述目标用例,以测试所述尚未测试的逻辑分支。2.根据权利要求1所述的方法,其特征在于,所述确定所述测试任务中的变更代码,包括:获取所述测试任务中的待测试代码;基于所述测试任务的测试描述,确定所述测试任务的测试项目;获取所述测试项目的源代码,并基于所述源代码确定所述待测试代码中的变更代码。3.根据权利要求1所述的方法,其特征在于,所述采集所述变更代码的测试覆盖数据,包括:执行预设的覆盖率工具,以调用所述覆盖率工具中预先定制的方法采集所述变更代码中的代码行的探针数据;基于所述变更代码中的代码行的探针数据,生成测试覆盖数据。4.根据权利要求3所述的方法,其特征在于,所述基于所述测试覆盖数据,确定所述变更代码中尚未测试的逻辑分支,包括:基于所述探针数据中的状态信息,确定所述变更代码中的代码行的执行状态;将执行状态表征为未执行的代码行确定为目标代码行;确定所述目标代码行所属的逻辑分支,并将该逻辑分支确定为尚未测试的逻辑分支。5.根据权利要求1所述的方法,其特征在于,确定所述关系数据中存在与所述尚未测试的逻辑分支对应的映射关系的过程,包括:确定所述尚未测试的逻辑分支的分支识别信息;确定所述关系数据中是否存在与所述分支识别信息相匹配的分支信息;当确定所述关系数据中存在与所述分支识别信息相匹配的分支信息时,将该分支信息所对应的映射关系确定为所述...

【专利技术属性】
技术研发人员:张萌
申请(专利权)人:京东科技控股股份有限公司
类型:发明
国别省市:

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

1