一种测试覆盖率计算方法、系统、终端及存储介质技术方案

技术编号:37076986 阅读:29 留言:0更新日期:2023-03-29 19:53
本发明专利技术公开了一种测试覆盖率计算方法、系统、终端及存储介质,包括:实时获取存量代码对应的存量代码链路、以及第一代码相较于存量代码的变更代码;基于存量代码链路,对变更代码进行语法树分析,以获得变更代码对应的变更代码关联链路;对变更代码进行插桩处理,并按照预设的算法,结合插桩处理结果和变更代码关联链路,计算得到变更代码对应的测试覆盖率;其中,第一代码是在存量代码的基础上进行代码的增加、删减或者修改处理而形成的。本发明专利技术通过在测试过程中依据代码变更内容进行测试覆盖率计算,以提升测试覆盖率的计算准确性和测试质量。质量。质量。

【技术实现步骤摘要】
一种测试覆盖率计算方法、系统、终端及存储介质


[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]为了解决相同的技术问题,本专利技术还提供了一种计算机可读存储介质,述计算机可读存储介质包括存储的计算机程序;其中,在所述计算机程序运行时控制所述本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种测试覆盖率计算方法,其特征在于,包括:实时获取存量代码对应的存量代码链路、以及第一代码相较于所述存量代码的变更代码;基于所述存量代码链路,对所述变更代码进行语法树分析,以获得所述变更代码对应的变更代码关联链路;对所述变更代码进行插桩处理,并按照预设的算法,结合插桩处理结果和所述变更代码关联链路,计算得到所述变更代码对应的测试覆盖率;其中,所述第一代码是在所述存量代码的基础上进行代码的增加、删减或者修改处理而形成的。2.如权利要求1所述的一种测试覆盖率计算方法,其特征在于,所述基于所述存量代码链路,对所述变更代码进行语法树分析,以获得所述变更代码对应的变更代码关联链路,具体为:基于所述变更代码,对所述第一代码进行遍历,以确定所述第一代码中的变更点;结合所述变更点和所述存量代码链路,对所述变更代码进行语法树分析,以获得所述变更代码对应的所述变更代码关联链路。3.如权利要求1所述的一种测试覆盖率计算方法,其特征在于,所述对所述变更代码进行插桩处理,并按照预设的算法,结合插桩处理结果和所述变更代码关联链路,计算得到所述变更代码对应的测试覆盖率,具体为:在所述变更代码中插入桩,以获得对应的待测试代码,并对所述待测试代码进行代码链路分析,以获得对应的第一数目;其中,所述第一数目是被所述变更代码影响的桩的数目;按照所述变更代码关联链路,对所述待测试代码进行代理运行,并获取对应的第二数目;其中,所述第二数目是在代理运行过程中被覆盖的桩的数目;按照预设的算法,结合所述第一数目和所述第二数目,计算得到所述变更代码对应的所述测试覆盖率。4.如权利要求1所述的一种测试覆盖率计算方法,其特征在于,还包括:将所述测试覆盖率上传至数据库,以供用户查阅。5.一种测试覆盖率计算系统,其特征在于,包括:数据获取模块,用于实时获取存量代码对应的存量代码链路、以及第一代码相较于所述存量代码的变更代码;其中,所述第一代码是在所述存量代码的基础上...

【专利技术属性】
技术研发人员:许卓怀严泳键张建生杨英炯朱晗鸣
申请(专利权)人:广发银行股份有限公司
类型:发明
国别省市:

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

1