终端代码覆盖率监测方法、系统、介质和电子设备技术方案

技术编号:22135147 阅读:23 留言:0更新日期:2019-09-18 08:53
本发明专利技术提供一种终端代码覆盖率监测方法、系统、介质及电子设备。所述方法包括:对被测应用程序的源码文件进行编译,生成中间文件,并将所述中间文件及对应被测应用程序的识别信息上传至监控系统服务器;向所述中间文件逐行注入探针,生成插桩现场文件;对所述插桩现场文件进行编译,生成被测应用程序安装包;接收到测试指令后运行测试用例;收集所述运行测试用例过程中的探针信息,并上传所述探针信息及对应所述被测应用程序的识别信息至所述监控系统服务器;接收所述监控系统服务器根据中间文件及探针信息产出的终端代码覆盖率数据。所述方法能够自动收集终端代码覆盖率数据;且能够聚合多个终端测试应用程序的代码覆盖率数据,降低统计成本。

Terminal Code Coverage Monitoring Method, System, Media and Electronic Equipment

【技术实现步骤摘要】
终端代码覆盖率监测方法、系统、介质和电子设备
本专利技术涉及软件测试
,具体而言,涉及一种终端代码覆盖率监测方法、系统、介质和电子设备。
技术介绍
代码覆盖率反映测试用例对被测软件覆盖程度的重要指标,是用来度量测试完整性的一个参考值,其值等于测试运行到的代码除以总的代码。通过代码覆盖率数据,可以评估测试是否充分。目前,在被测试的应用程序(Application,APP)的工程基础上建立测试工程,其中在测试工程的基础上添加EMMA或者类似的代码覆盖率统计工具,然后在测试工程中编写大量自动化测试用例。当按照测试计划运行编写的大量测试用例后,就可以获得当前代码覆盖率。专利技术人发现现有技术中至少存在如下问题:针对于目前移动端的应用软件测试,传统的覆盖率统计只能针对本地工程编译,且覆盖率数据收集需要软件开发者从指定设备的存储里面获取,之后再单独解析,一方面无法适应敏捷开发的迭代速度;另一方面也不能自动聚合多个用户终端的测试数据,所以造成终端代码覆盖率统计成本很高。
技术实现思路
本专利技术的目的在于提供一种终端代码覆盖率监测方法、系统、介质和电子设备,能够解决上述提到的至少一个技术问题。具体方案如下:根据本专利技术的具体实施方式,第一方面,本专利技术提供一种终端代码覆盖率监测方法,包括:对被测应用程序的源码文件进行编译,生成中间文件,并将所述中间文件及对应所述被测应用程序的识别信息上传至监控系统服务器;接收到代码覆盖率工具开启指令后,向所述中间文件逐行注入探针,生成插桩现场文件;对所述插桩现场文件进行编译,生成被测应用程序安装包,以使多个用户终端安装所述被测应用程序;运行测试用例;收集所述运行测试用例过程中的探针信息,并上传所述探针信息及对应所述被测应用程序的识别信息至所述监控系统服务器;接收所述监控系统服务器根据所述中间文件及所述探针信息产出的所述终端代码覆盖率数据。根据本专利技术的具体实施方式,第二方面,本专利技术提供一种终端代码覆盖率监测系统,包括:文件编译模块,用于对被测应用程序的源码文件进行编译,生成中间文件;文件上传模块,用于将所述中间文件及对应所述被测应用程序的识别信息上传至监控系统服务器;探针注入模块,用于接收到代码覆盖率工具开启指令后,向所述中间文件逐行注入探针,生成插桩现场文件;所述文件编译模块还用于,对所述插桩现场文件进行编译,生成被测应用程序安装包,以使多个用户终端安装所述被测应用程序;执行模块,用于运行测试用例;信息收集模块,用于收集所述运行测试用例过程中的探针信息;所述文件上传模块还用于,上传所述探针信息及对应所述被测应用程序的识别信息至监控系统服务器;代码覆盖率接收模块,用于接收所述监控系统服务器根据所述中间文件及所述探针信息产出的所述终端代码覆盖率数据。根据本专利技术的具体实施方式,第三方面,本专利技术提供一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现如上任一项所述的终端代码覆盖率监测方法。根据本专利技术的具体实施方式,第四方面,本专利技术提供一种电子设备,包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现如上任一项所述的终端代码覆盖率监测方法。本专利技术实施例的上述方案与现有技术相比,至少具有以下有益效果:第一,能够在测试用例执行过程中自动收集终端代码的覆盖率数据;第二,能够聚合多个终端测试应用软件的覆盖率数据,降低统计成本;第三,能够适应敏捷开发迭代模式,快速产出终端代码覆盖率结果;第四,能够获取指令、方法、类、行、分支不同维度的代码覆盖情况。附图说明此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本专利技术的实施例,并与说明书一起用于解释本专利技术的原理。显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:图1示出了根据本专利技术实施例的一种终端代码覆盖率监测方法的流程图;图2示出了根据本专利技术实施例的向所述中间文件逐行注入探针的方法流程图;图3示出了根据本专利技术实施例的收集运行所述测试用例过程中的探针信息,并上传所述探针信息及对应所述被测应用程序的识别信息至所述监控系统服务器的方法流程图;图4示出了根据本专利技术的实施例的所述监控系统服务器根据所述中间文件及所述探针信息产出所述终端代码覆盖率数据的方法流程图;图5示出了根据本专利技术的实施例的一种终端代码覆盖率监测系统的结构示意图;图6示出了根据本专利技术的实施例的监控系统服务器的结构示意图;图7示出了根据本专利技术的实施例的电子设备连接结构示意图。具体实施方式为了使本专利技术的目的、技术方案和优点更加清楚,下面将结合附图对本专利技术作进一步地详细描述,显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本专利技术保护的范围。在本专利技术实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本专利技术。在本专利技术实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义,“多种”一般包含至少两种。应当理解,本文中使用的术语“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。应当理解,尽管在本专利技术实施例中可能采用术语第一、第二、第三等来描述……,但这些……不应限于这些术语。这些术语仅用来将……区分开。例如,在不脱离本专利技术实施例范围的情况下,第一……也可以被称为第二……,类似地,第二……也可以被称为第一……。取决于语境,如在此所使用的词语“如果”、“若”可以被解释成为“在……时”或“当……时”或“响应于确定”或“响应于检测”。类似地,取决于语境,短语“如果确定”或“如果检测(陈述的条件或事件)”可以被解释成为“当确定时”或“响应于确定”或“当检测(陈述的条件或事件)时”或“响应于检测(陈述的条件或事件)”。还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的商品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种商品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的商品或者装置中还存在另外的相同要素。下面结合附图详细说明本专利技术的可选实施例。实施例1本专利技术实施例提供一种终端代码覆盖率监测方法,该方法的执行主体为终端,例如安卓(Android)设备,如图1所示,该方法包括以下步骤:S100,对被测应用程序的源码文件进行编译,生成中间文件,并将所述中间文件及对应所述被测应用程序的识别信息上传至监控系统服务器;在该步骤中,所述源码文件包括代码的版本信息、包、类、方法和代码所在行的信息。也就是说,所述源码文件的信息包括代码的版本信息、所采用的包、采用的类、方法以及某个代码所在的行等信息。其中,通过编译平台对所述被测应用程序的源代码进行编译,生成本文档来自技高网...

【技术保护点】
1.一种终端代码覆盖率监测方法,其特征在于,包括:对被测应用程序的源码文件进行编译,生成中间文件,并将所述中间文件及对应所述被测应用程序的识别信息上传至监控系统服务器;接收到代码覆盖率工具开启指令后,向所述中间文件逐行注入探针,生成插桩现场文件;对所述插桩现场文件进行编译,生成被测应用程序安装包,以使多个用户终端安装所述被测应用程序;运行测试用例;收集所述运行测试用例过程中的探针信息,并上传所述探针信息及对应所述被测应用程序的识别信息至所述监控系统服务器;接收所述监控系统服务器根据所述中间文件及所述探针信息产出的终端代码覆盖率数据。

【技术特征摘要】
1.一种终端代码覆盖率监测方法,其特征在于,包括:对被测应用程序的源码文件进行编译,生成中间文件,并将所述中间文件及对应所述被测应用程序的识别信息上传至监控系统服务器;接收到代码覆盖率工具开启指令后,向所述中间文件逐行注入探针,生成插桩现场文件;对所述插桩现场文件进行编译,生成被测应用程序安装包,以使多个用户终端安装所述被测应用程序;运行测试用例;收集所述运行测试用例过程中的探针信息,并上传所述探针信息及对应所述被测应用程序的识别信息至所述监控系统服务器;接收所述监控系统服务器根据所述中间文件及所述探针信息产出的终端代码覆盖率数据。2.根据权利要求1所述的方法,其特征在于,所述向所述中间文件逐行注入探针,包括:访问所述中间文件中的每一个方法,同时为所述每一个方法分配方法识别信息;向所述中间文件的每一行注入所述探针,同时,将所述探针与对应的所述方法识别信息及对应的所述中间文件行信息进行关联。3.根据权利要求2所述的方法,其特征在于,采用同一套哈希编码策略为所述每一个方法分配唯一的方法识别信息。4.根据权利要求1所述的方法,其特征在于,所述应用程序的识别信息包括所述应用程序自身的识别码及所述应用程序的版本号。5.根据权利要求1所述的方法,其特征在于,所述收集运行所述测试用例过程中的探针信息,并上传所述探针信息及对应所述被测应用程序的识别信息至所述监控系统服务器,包括:收集所述探针信息,并发送所述探针信息上传指令;接收所述探针信息上传指令后,上传所述探针信息及对应所述被测应用程序的识别信息至所述监控系统服务器,并发送上传完成指令;接收所述探针信息上传完成指令后,在第一时刻发送计时开始指令;在第二时刻发送计时结束指令;接收所述计时结束指令后,再次收集所述探针信息。6.根据权利要求1所述的方法,其特征在于,所述收集所述运行测试用例过...

【专利技术属性】
技术研发人员:刘杰
申请(专利权)人:北京字节跳动网络技术有限公司
类型:发明
国别省市:北京,11

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

1