测试报告的生成方法及装置制造方法及图纸

技术编号:18710717 阅读:24 留言:0更新日期:2018-08-21 22:39
本发明专利技术公开了一种测试报告的生成方法及装置。其中,该方法包括:对目标文件进行插桩操作,得到插桩后的文件,其中,目标文件通过对待测试应用的源代码进行编译得到;对插桩后的文件进行打包操作,得到待测试应用的安装包,其中,安装包中包括插桩后的类文件,插桩后的类文件用于指示源代码中需要被测试到的代码;对安装包进行测试,生成测试指示文件,其中,测试指示文件用于指示在进行测试的过程中源代码中被实际测试到的代码;至少根据测试指示文件和插桩后的类文件生成测试报告,其中,测试报告至少用于指示需要被测试到的代码与被实际测试到的代码之间的比对关系。本发明专利技术解决了相关技术中测试覆盖率收集效率低的技术问题。

Method and device for generating test report

The invention discloses a method and a device for generating test reports. Among them, the method includes: inserting the target file to get the file after inserting the pile, in which the target file is compiled by the source code of the application to be tested; packaging the file after inserting the pile to get the installation package of the application to be tested, in which the installation package includes the class file after inserting the pile. Class files after piling are used to indicate the code to be tested in the source code; test the installation package to generate test instructions files, where the test instructions file is used to indicate the code actually tested in the source code during testing; at least according to the test instructions file and class files after piling are generated Test reports, in which the test reports are at least used to indicate the comparison between the code to be tested and the code to be actually tested. The invention solves the technical problems of low collection efficiency of test coverage in related technologies.

【技术实现步骤摘要】
测试报告的生成方法及装置
本专利技术涉及通信领域,具体而言,涉及一种测试报告的生成方法及装置。
技术介绍
现有测试覆盖率收集方法(例如,对安卓系统进行测试)主要有Emma、cobertura、JaCoCo等。目前,大部分对测试覆盖率进行收集的技术方案只是实现了通过手动测试执行收集到测试覆盖率,测试覆盖率的收集效率较低。另一方面,现有技术方案主要为全量覆盖率的收集,生成的覆盖率报告主要为全量覆盖率,无法进行只包含改动代码的差异覆盖率分析。当需要分析某部分改动代码的覆盖率时,不能高效地进行分析,分析效率较低。例如,基于emma收集覆盖率,无法进行分支覆盖率分析,分析不全面。针对相关技术中的测试覆盖率收集效率低的问题,目前尚未提出有效的解决方案。
技术实现思路
本专利技术实施例提供了一种测试报告的生成方法及装置,以至少解决相关技术中测试覆盖率收集效率低的技术问题。根据本专利技术实施例的一个方面,提供了一种测试报告的生成方法,包括:对目标文件进行插桩操作,得到插桩后的文件,其中,所述目标文件通过对待测试应用的源代码进行编译得到;对所述插桩后的文件进行打包操作,得到所述待测试应用的安装包,其中,所述安装包中包括插桩后的类文件,所述插桩后的类文件用于指示所述源代码中需要被测试到的代码;对所述安装包进行测试,生成测试指示文件,其中,所述测试指示文件用于指示在进行所述测试的过程中所述源代码中被实际测试到的代码;至少根据所述测试指示文件和所述插桩后的类文件生成测试报告,其中,所述测试报告至少用于指示所述需要被测试到的代码与所述被实际测试到的代码之间的比对关系。根据本专利技术实施例的另一方面,还提供了一种测试报告的生成装置,包括:插桩模块,用于对目标文件进行插桩操作,得到插桩后的文件,其中,所述目标文件通过对待测试应用的源代码进行编译得到;打包模块,用于对所述插桩后的文件进行打包操作,得到所述待测试应用的安装包,其中,所述安装包中包括插桩后的类文件,所述插桩后的类文件用于指示所述源代码中需要被测试到的代码;测试模块,用于对所述安装包进行测试,生成测试指示文件,其中,所述测试指示文件用于指示在进行所述测试的过程中所述源代码中被实际测试到的代码;生成模块,用于至少根据所述测试指示文件和所述插桩后的类文件生成测试报告,其中,所述测试报告至少用于指示所述需要被测试到的代码与所述被实际测试到的代码之间的比对关系。在本专利技术实施例中,采用对待测试应用的源代码进行编译得到的目标文件进行插桩操作,并对插桩后得到的文件进行打包,得到待测试应用的安装包;对得到的安装包进行测试,生成测试指示文件,并根据生成的测试指示文件以及插桩后的类文件,生成测试报告的方式,通过对待测试应用的源代码进行编译后得到的目标文件进行插桩,可以根据需要选择需要插桩的目标文件,达到了有针对性测试的目的,从而实现了提高测试覆盖率分析效率的技术效果,进而解决了相关技术中测试覆盖率收集效率低的技术问题。附图说明此处所说明的附图用来提供对本专利技术的进一步理解,构成本申请的一部分,本专利技术的示意性实施例及其说明用于解释本专利技术,并不构成对本专利技术的不当限定。在附图中:图1是根据本专利技术实施例的一种测试报告的生成方法的应用环境示意图;图2是根据本专利技术实施例的一种可选的测试报告的生成方法的流程图;图3是根据本专利技术实施例的一种可选的测试报告的生成装置的示意图;图4是根据本专利技术实施例的另一种可选的测试报告的生成方法的流程图;图5是根据本专利技术实施例的一种可选的Jar包的示意图;图6是根据本专利技术实施例的一种可选的通过Jenkins配置参数的示意图;图7是根据本专利技术实施例的一种可选的生成的apk包和class文件的示意图;图8(a)是根据本专利技术实施例的一种可选的在Jenkins配置svn地址的示意图;图8(b)是根据本专利技术实施例的一种可选的在Jenkins配置用户名的示意图;图9是根据本专利技术实施例的一种可选的配置构建描述的示意图;图10是根据本专利技术实施例的一种可选的配置项目ID和创建精准入库任务的示意图;图11是根据本专利技术实施例的一种可选的检验代码的脚本的示意图;图12是根据本专利技术实施例的一种可选的编写的用于实现插桩的命令的示意图;图13是根据本专利技术实施例的一种可选的编译打包的示意图;图14是根据本专利技术实施例的一种可选的用于备份class的命令的示意图;图15是根据本专利技术实施例的一种可选的保存存档文件的示意图;图16是根据本专利技术实施例的一种可选的代码覆盖率生成工具的示意图;图17是根据本专利技术实施例的一种可选的用于生成覆盖率报告的文件的示意图;图18是根据本专利技术实施例的一种可选的修改后的build_property文件的示意图;图19是根据本专利技术实施例的一种可选的生成的覆盖率报告的示意图;图20是根据本专利技术实施例的一种可选的用于体现测试覆盖率情况的代码的示意图;图21是根据本专利技术实施例的一种可选的测试报告生成设备的示意图。具体实施方式为了使本
的人员更好地理解本专利技术方案,下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本专利技术一部分的实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本专利技术保护的范围。需要说明的是,本专利技术的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本专利技术的实施例中能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。实施例1在本专利技术实施例中,提供了一种上述测试报告的生成方法的实施例。作为一种可选的实施方式,该测试报告的生成方法可以但不限于应用于如图1所示的应用环境中,用于生成测试报告的设备102可以通过网络104与远端服务器106建立连接,并通过网络104调用远端服务器106的接口。上述应用场景仅是一种示例,本实施例中对此不做任何限定。可选地,在本实施例中,上述用于生成测试报告的设备可以包括但不限于以下至少之一:手机、平板电脑、笔记本电脑及其他移动硬件设备。上述远端服务器可以包括但不限于以下至少之一:平板电脑、笔记本电脑、PC机等。可选地,在本实施例中,上述网络可以包括但不限于:有线网络,如广域网、城域网、局域网。上述仅是一种示例,本实施例中对此不做任何限定。根据本专利技术实施例,提供了一种测试报告的生成方法,如图2所示,该方法包括:步骤S202,对目标文件进行插桩操作,得到插桩后的文件,其中,上述目标文件通过对待测试应用的源代码进行编译得到;步骤S204,对插桩后的文件进行打包操作,得到待测试应用的安装包,其中,上述安装包中包括插桩后的类文件,插桩后的类文件用于指示源代码中需要被测试到的代码;步骤S206,对上述安装包进行测试,生成测试指示文件,其中,上述测试指示文件用于指示在进行测试的过程中源本文档来自技高网
...

【技术保护点】
1.一种测试报告的生成方法,其特征在于,包括:对目标文件进行插桩操作,得到插桩后的文件,其中,所述目标文件通过对待测试应用的源代码进行编译得到;对所述插桩后的文件进行打包操作,得到所述待测试应用的安装包,其中,所述安装包中包括插桩后的类文件,所述插桩后的类文件用于指示所述源代码中需要被测试到的代码;对所述安装包进行测试,生成测试指示文件,其中,所述测试指示文件用于指示在进行所述测试的过程中所述源代码中被实际测试到的代码;至少根据所述测试指示文件和所述插桩后的类文件生成测试报告,其中,所述测试报告至少用于指示所述需要被测试到的代码与所述被实际测试到的代码之间的比对关系。

【技术特征摘要】
1.一种测试报告的生成方法,其特征在于,包括:对目标文件进行插桩操作,得到插桩后的文件,其中,所述目标文件通过对待测试应用的源代码进行编译得到;对所述插桩后的文件进行打包操作,得到所述待测试应用的安装包,其中,所述安装包中包括插桩后的类文件,所述插桩后的类文件用于指示所述源代码中需要被测试到的代码;对所述安装包进行测试,生成测试指示文件,其中,所述测试指示文件用于指示在进行所述测试的过程中所述源代码中被实际测试到的代码;至少根据所述测试指示文件和所述插桩后的类文件生成测试报告,其中,所述测试报告至少用于指示所述需要被测试到的代码与所述被实际测试到的代码之间的比对关系。2.根据权利要求1所述的方法,其特征在于,至少根据所述测试指示文件和所述插桩后的类文件生成测试报告包括:对所述插桩后的类文件和所述测试指示文件进行比较,得到比较结果,其中,所述比较结果至少用于指示所述需要被测试到的代码中未被实际测试到的代码;生成至少包括所述比较结果的测试报告。3.根据权利要求2所述的方法,其特征在于,在对所述插桩后的类文件和所述测试指示文件进行比较,得到比较结果之后、且在生成至少包括所述比较结果的测试报告之前,还包括:在所述源代码中标记出所述被实际测试到的代码和所述未被实际测试到的代码;生成至少包括所述比较结果的测试报告包括:生成所述测试报告,其中,所述测试报告至少包括所述比较结果以及完成了所述标记的所述源代码。4.根据权利要求1所述的方法,其特征在于,对目标文件进行插桩操作,得到插桩后的文件包括:获取插桩前的类文件的位置,其中,所述目标文件包括所述插桩前的类文件;调用第一接口函数、根据所述插桩前的类文件的位置对所述目标文件进行插桩操作,其中,所述第一接口函数用于将注入代码插入到所述位置所指示的插桩前的类文件中,所述注入代码用于检测所述源代码中所述需要被测试到的代码是否被实际测试到。5.根据权利要求1所述的方法,其特征在于,对所述安装包进行测试,生成测试指示文件包括:调用第二接口函数获取内存中的测试指示数据,其中,所述测试指示数据用于指示在进行所述测试的过程中所述源代码中所述被实际测试到的代码;生成包含所述测试指示数据的所述测试指示文件。6.根据权利要求1至5中任一项所述的方法,其特征在于,在对所述安装包进行测试,生成测试指示文件之前,所述方法还包括:调用第三接口函数清除内存中的测试指示数据。7.根据权利要求1至5中任一项所述的方法,其特征在于,所述源代码中需要被测试到的代码包括:所述源代码从修改前到修改后所...

【专利技术属性】
技术研发人员:刘洋刘楚蓉
申请(专利权)人:腾讯科技深圳有限公司
类型:发明
国别省市:广东,44

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

1