本发明涉及数据处理,尤其涉及一种增量代码覆盖率报告的生成方法、报告生成系统、设备和介质。
背景技术:
1、功能测试增量代码覆盖率是对功能测试结果进行精准度量的有效手段。通过功能测试增量代码覆盖率可以知道测试工作是否充分,还存在哪些潜在风险和弱点,指导用户(如测试人员)有目的地执行或设计更多测试用例。针对一个庞大且迭代频繁的项目,由于全量的代码覆盖率意义并不大,所以,可以只评估每个迭代的测试情况,并关注本次变更功能的测试情况,这样就能够更精准地了解本次迭代的代码覆盖率。
2、现有的测试覆盖率报告生成方法,往往是在部署的服务器上进行插桩,通过插桩的方式收集测试数据,再通过调用代码仓库接口传入相匹配的源代码及目标码文件,生成测试覆盖率报告。然而,在传入源代码时,需要与用户进行交互,通过用户指定代码库中的代码,再从代码托管平台获取到对应的源代码,进而生成测试覆盖率报告。在整个过程中,若用户指定错误,则获取的覆盖率数据是不准确的,此时,基于不准确的覆盖率数据不能说明测试工作是否充分,使得最终确定的测试覆盖率报告也不够准确,进而无法真正指导用户执行或设计更多有效测试用例。
技术实现思路
1、本发明提供一种增量代码覆盖率报告的生成方法、报告生成系统、设备和介质,用以解决现有的测试覆盖率报告生成方法与用户进行交互,使得最终确定的测试覆盖率报告不够准确,进而无法真正指导用户执行或设计更多有效测试用例的缺陷,该方法中,在报告生成系统中部署了版本号相同的部署包与源码包的情况下,能够有效保证部署包与源码包的一致性,进而保证获取的覆盖率数据的准确性,以便精准地衡量测试覆盖范围;再根据该源码包对应的差异代码值和准确性较高的覆盖率数据,使得最终确定的增量代码覆盖率报告的准确性也较高,进而能够指导用户执行或设计更多有效测试用例。
2、本发明提供一种增量代码覆盖率报告的生成方法,应用于报告生成系统,所述报告生成系统包括覆盖率统计平台,所述覆盖率统计平台部署有覆盖率测试插件和数据处理单元,所述方法包括:
3、通过所述覆盖率测试插件,获取测试系统对应的覆盖率数据;
4、通过所述数据处理单元,查找所述测试系统的部署包,并下载与所述部署包的版本号标识一致的源码包;解析所述源码包,得到差异代码值;
5、通过所述覆盖率测试插件,根据所述覆盖率数据和所述差异代码值,生成所述测试系统对应的增量代码覆盖率报告。
6、根据本发明提供的一种增量代码覆盖率报告的生成方法,所述报告生成系统还包括自动构建平台;所述部署包是所述自动构建平台基于以下步骤生成的:下载所述待测系统对应的发布代码;对所述发布代码进行编译和打包,生成第一代码包;根据所述第一代码包和所述发布代码的版本号标识,生成所述部署包。
7、根据本发明提供的一种增量代码覆盖率报告的生成方法,所述报告生成系统还包括差异代码服务;所述源码包是基于以下步骤生成的:通过所述自动构建平台,拉取所述待测系统对应的基线代码;通过所述差异代码服务,根据所述发布代码和所述基线代码,生成所述差异代码值;通过所述自动构建平台,对所述测试系统的源代码、编译生成的目标码,以及所述差异代码值进行打包,生成第二代码包;根据所述第二代码包和所述部署包的版本号标识,生成所述源码包。
8、根据本发明提供的一种增量代码覆盖率报告的生成方法,所述获取测试系统对应的覆盖率数据,包括:获取所述测试系统中部署的服务器;在所述服务器的数量为一个的情况下,将所述服务器对应的第一覆盖率数据确定为所述测试系统对应的覆盖率数据;在所述服务器的数量为多个的情况下,获取多个服务器各自对应的第二覆盖率数据;将多个第二覆盖率数据进行合并,得到所述测试系统对应的覆盖率数据。
9、根据本发明提供的一种增量代码覆盖率报告的生成方法,所述获取测试系统对应的覆盖率数据,包括:在所述测试系统中部署了覆盖率测试代理程序的情况下,重启所述测试系统;在预设时长后,执行覆盖率数据生成操作,生成所述测试系统对应的覆盖率数据。
10、根据本发明提供的一种增量代码覆盖率报告的生成方法,所述方法还包括:通过所述数据处理单元,解析所述源码包,得到所述源代码的路径和所述目标码的路径;所述通过所述覆盖率测试插件,根据所述覆盖率数据和所述差异代码值,生成所述测试系统对应的增量代码覆盖率报告,包括:通过所述覆盖率测试插件,根据所述源代码的路径、所述目标码的路径、所述覆盖率数据和所述差异代码值,生成所述增量代码覆盖率报告。
11、根据本发明提供的一种增量代码覆盖率报告的生成方法,所述报告生成系统还包括软件仓库;所述方法还包括:通过所述自动构建平台,将所述部署包和所述源码包上传至所述软件仓库;所述通过所述数据处理单元,查找所述测试系统的部署包,并下载与所述部署包的版本号标识一致的源码包,包括:通过所述数据处理单元,从所述软件仓库中查找所述测试系统的部署包,并从所述软件仓库中下载与所述部署包的版本号标识一致的源码包。
12、本发明还提供一种报告生成系统,包括覆盖率统计平台,所述覆盖率统计平台部署有覆盖率测试插件和数据处理单元;其中,
13、所述覆盖率测试插件,用于获取测试系统对应的覆盖率数据;
14、所述数据处理单元,用于查找所述测试系统的部署包,并下载与所述部署包的版本号标识一致的源码包;解析所述源码包,得到差异代码值;
15、所述覆盖率测试插件,还用于根据所述覆盖率数据和所述差异代码值,生成所述测试系统对应的增量代码覆盖率报告。
16、本发明还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述任一种所述增量代码覆盖率报告的生成方法。
17、本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上述任一种所述增量代码覆盖率报告的生成方法。
18、本发明还提供一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现如上述任一种所述增量代码覆盖率报告的生成方法。
19、本发明提供的增量代码覆盖率报告的生成方法、报告生成系统、设备和介质,该方法应用于报告生成系统,所述报告生成系统包括覆盖率统计平台,所述覆盖率统计平台部署有覆盖率测试插件和数据处理单元,所述方法通过所述覆盖率测试插件,获取测试系统对应的覆盖率数据;通过所述数据处理单元,查找所述测试系统的部署包,并下载与所述部署包的版本号标识一致的源码包;解析所述源码包,得到差异代码值;通过所述覆盖率测试插件,根据所述覆盖率数据和所述差异代码值,生成所述测试系统对应的增量代码覆盖率报告。该方法在报告生成系统中部署了版本号相同的部署包与源码包的情况下,能够有效保证部署包与源码包的一致性,进而保证获取的覆盖率数据的准确性,以便精准地衡量测试覆盖范围;再根据该源码包对应的差异代码值和准确性较高的覆盖率数据,使得最终确定的增量代码覆盖率报告的准确性也较高,进而能够指导用户执行或设计更多有效测试用例。