一种代码覆盖率管理方法和装置与流程

文档序号:16263106发布日期:2018-12-14 21:44阅读:189来源:国知局
一种代码覆盖率管理方法和装置与流程

本发明涉及计算机技术领域,尤其涉及一种代码覆盖率管理方法和装置。

背景技术

软件测试过程中,代码覆盖率是度量测试完整性的一个手段,是测试有效性的一个度量,为了进一步提高软件交付质量,减少测试过程中的遗漏,降低线上事故,对软件测试的覆盖率有了新的要求,如何准确衡量软件测试的覆盖度是众多测试人员遇到的问题。

目前,统计代码覆盖率时,采用jenkins(基于java开发的一种持续集成工具,用于监控持续重复的工作)或者sonarqube(用于代码质量管理的开源平台,用于管理源代码的质量)集成jacoco(一个java代码覆盖库)插件来实现,根据构建版本、主动触发或定时任务来获取服务代码覆盖率。在业务系统庞大、业务繁杂、代码提交频繁、版本迭代速度较快的场景下,现有方案已经无法很好地满足实际需求。

在实现本发明过程中,发明人发现现有技术中至少存在如下问题:

无法批量获取多个应用系统的代码覆盖率;存储时只能记录应用系统当前版本的代码覆盖率,无法记录不同版本间的代码覆盖率;无法实现批量清空的功能;无法对应用系统历史覆盖率统计汇总展示,以便了解应用系统代码覆盖率的趋势。



技术实现要素:

有鉴于此,本发明实施例提供一种代码覆盖率管理方法和装置,能够实现灵活的代码覆盖率获取机制,用户可获取应用系统任意两个或多个版本间的代码覆盖率,为质量控制提供更精确的参考依据,实现批量获取、批量清空多个应用系统的代码覆盖率,提高代码覆盖率管理效率,节省时间,并可以记录不同版本间的代码覆盖率,以及从各种维度对应用系统历史代码覆盖率进行汇总展示,使用户实时了解系统迭代过程中代码覆盖率曲线,从而了解应用系统代码覆盖率的趋势。

为实现上述目的,根据本发明实施例的一个方面,提供了一种代码覆盖率管理方法。

一种代码覆盖率管理方法,包括:接收用户指令,所述用户指令指示执行对选定应用的指定版本的代码覆盖率操作,所述选定应用包括一个或多个应用;当所述代码覆盖率操作为代码覆盖率获取操作时,执行:从应用系统服务器端获取所述选定应用的最新版本的增量代码覆盖率文件;根据所述选定应用的最新版本的增量代码覆盖率文件,以及一个或多个历史版本的增量代码覆盖率文件,生成所述选定应用的最新全量代码覆盖率文件;根据所述最新版本的增量代码覆盖率文件、所述最新全量代码覆盖率文件,得到所述选定应用的最新代码覆盖率数据;将所述选定应用的最新代码覆盖率数据返回用户端。

可选地,当所述代码覆盖率操作为代码覆盖率存储操作时,执行:将缓存中所述选定应用的增量代码覆盖率文件保存到数据库,并从应用系统服务器端获取所述选定应用的最新版本的增量代码覆盖率文件;根据所述选定应用的最新版本的增量代码覆盖率文件,以及所述一个或多个历史版本的增量代码覆盖率文件,生成所述选定应用的最新全量代码覆盖率文件;根据所述最新版本的增量代码覆盖率文件、所述最新全量代码覆盖率文件,得到所述选定应用的最新代码覆盖率数据;将所述最新版本的增量代码覆盖率文件和所述最新代码覆盖率数据保存到所述数据库。

可选地,从应用系统服务器端获取所述选定应用的最新版本的增量代码覆盖率文件的步骤,包括:根据所述选定应用对应的配置信息生成脚本文件;通过执行所述脚本文件,从应用系统服务器端获取所述选定应用的最新版本的增量代码覆盖率文件。

可选地,根据所述最新版本的增量代码覆盖率文件、所述最新全量代码覆盖率文件,得到所述选定应用的最新代码覆盖率数据的步骤,包括:根据所述最新版本的增量代码覆盖率文件、所述最新全量代码覆盖率文件,分别生成所述选定应用的最新版本的增量代码覆盖率报告、最新全量代码覆盖率报告;解析所述最新版本的增量代码覆盖率报告、最新全量代码覆盖率报告,以生成所述选定应用的最新代码覆盖率数据。

可选地,当所述代码覆盖率操作为代码覆盖率清除操作时,执行:删除缓存中所述选定应用的所有增量代码覆盖率文件、全量代码覆盖率文件和代码覆盖率数据。

可选地,当所述代码覆盖率操作为代码覆盖率统计操作时,执行:根据所述选定应用指定版本的的已存代码覆盖率数据,按照预设维度生成统计数据,并展示所述统计数据。

根据本发明实施例的另一方面,提供了一种代码覆盖率管理装置。

一种代码覆盖率管理装置,包括:接收模块,用于接收用户指令,所述用户指令指示执行对选定应用的指定版本的代码覆盖率操作,所述选定应用包括一个或多个应用;执行模块,用于当所述代码覆盖率操作为代码覆盖率获取操作时,执行:从应用系统服务器端获取所述选定应用的最新版本的增量代码覆盖率文件;根据所述选定应用的最新版本的增量代码覆盖率文件,以及一个或多个历史版本的增量代码覆盖率文件,生成所述选定应用的最新全量代码覆盖率文件;根据所述最新版本的增量代码覆盖率文件、所述最新全量代码覆盖率文件,得到所述选定应用的最新代码覆盖率数据;将所述选定应用的最新代码覆盖率数据返回用户端。

可选地,所述执行模块还用于:当所述代码覆盖率操作为代码覆盖率存储操作时,执行:将缓存中所述选定应用的增量代码覆盖率文件保存到数据库,并从应用系统服务器端获取所述选定应用的最新版本的增量代码覆盖率文件;根据所述选定应用的最新版本的增量代码覆盖率文件,以及所述一个或多个历史版本的增量代码覆盖率文件,生成所述选定应用的最新全量代码覆盖率文件;根据所述最新版本的增量代码覆盖率文件、所述最新全量代码覆盖率文件,得到所述选定应用的最新代码覆盖率数据;将所述最新版本的增量代码覆盖率文件和所述最新代码覆盖率数据保存到所述数据库。

可选地,所述执行模块包括增量代码覆盖率文件获取子模块,用于:根据所述选定应用对应的配置信息生成脚本文件;通过执行所述脚本文件,从应用系统服务器端获取所述选定应用的最新版本的增量代码覆盖率文件。

可选地,所述执行模块包括代码覆盖率数据生成子模块,用于:根据所述最新版本的增量代码覆盖率文件、所述最新全量代码覆盖率文件,分别生成所述选定应用的最新版本的增量代码覆盖率报告、最新全量代码覆盖率报告;解析所述最新版本的增量代码覆盖率报告、最新全量代码覆盖率报告,以生成所述选定应用的最新代码覆盖率数据。

可选地,所述执行模块还用于:当所述代码覆盖率操作为代码覆盖率清除操作时,执行:删除缓存中所述选定应用的所有增量代码覆盖率文件、全量代码覆盖率文件和代码覆盖率数据。

可选地,所述执行模块还用于:当所述代码覆盖率操作为代码覆盖率统计操作时,执行:根据所述选定应用指定版本的的已存代码覆盖率数据,按照预设维度生成统计数据,并展示所述统计数据。

根据本发明实施例的又一方面,提供了一种电子设备。

一种电子设备,包括:一个或多个处理器;存储器,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现本发明提供的代码覆盖率管理方法。

根据本发明实施例的又一方面,提供了一种计算机可读介质。

一种计算机可读介质,其上存储有计算机程序,所述程序被处理器执行时实现本发明提供的代码覆盖率管理方法。

上述发明中的一个实施例具有如下优点或有益效果:当用户指令指示执行代码覆盖率获取操作时,执行:从应用系统服务器端获取选定应用的最新版本的增量代码覆盖率文件;根据选定应用的最新版本的增量代码覆盖率文件,以及一个或多个历史版本的增量代码覆盖率文件,生成选定应用的最新全量代码覆盖率文件;根据最新版本的增量代码覆盖率文件、最新全量代码覆盖率文件,得到选定应用的最新代码覆盖率数据并将该数据返回用户端。能够实现灵活的代码覆盖率获取机制,用户可获取应用系统任意两个或多个版本间的代码覆盖率,为质量控制提供更精确的参考依据,且实现批量获取。当用户指令指示执行代码覆盖率清除操作时,能实现批量清空多个应用系统的代码覆盖率,提高代码覆盖率管理效率,节省时间。当用户指令指示执行代码覆盖率存储操作时,可以记录不同版本间的代码覆盖率,以及,当用户指令指示执行代码覆盖率统计操作时,可以从各种维度对应用系统历史代码覆盖率进行汇总展示,使用户实时了解系统迭代过程中代码覆盖率曲线,从而了解应用系统代码覆盖率的趋势。

上述的非惯用的可选方式所具有的进一步效果将在下文中结合具体实施方式加以说明。

附图说明

附图用于更好地理解本发明,不构成对本发明的不当限定。其中:

图1是根据本发明实施例的代码覆盖率管理方法的主要步骤示意图;

图2是根据本发明实施例的对所有应用系统代码覆盖率更新次数按天统计的示意图;

图3是根据本发明实施例的对所有应用代码覆盖率更新次数按业务线统计的示意图;

图4是根据本发明实施例的代码覆盖率管理装置的主要模块示意图;

图5是根据本发明实施例的代码覆盖率管理系统架构示意图;

图6是本发明实施例可以应用于其中的示例性系统架构图;

图7是适于用来实现本发明实施例的服务器的计算机系统的结构示意图。

具体实施方式

以下结合附图对本发明的示范性实施例做出说明,其中包括本发明实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本发明的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。

图1是根据本发明实施例的代码覆盖率管理方法的主要步骤示意图。

如图1所示,本发明实施例的代码覆盖率管理方法主要包括如下的步骤s101至步骤s102。

步骤s101:接收用户指令,用户指令指示执行对选定应用的指定版本的代码覆盖率操作,选定应用包括一个或多个应用。

代码覆盖率是软件测试过程中已执行代码的比例。

步骤s101之前,预先将jacocoagent部署到应用系统服务器端,并修改应用jvm(java虚拟机)启动参数,具体可以增加以下参数:

-javaagent:/export/server/jacoco/lib/jacocoagent.jar=output=tcpserver,port=8053,address=*,append=true,includes=com.*"

其中,port(端口)参数根据不同应用设置不同的值。启动应用后jacocoagent可以自动监控应用系统的代码覆盖率。

jacocoagent是jacoco开源jar包。jacoco是一个免费的java代码覆盖库。

步骤s102:当代码覆盖率操作为代码覆盖率获取操作时,执行:

从应用系统服务器端获取选定应用的最新版本的增量代码覆盖率文件;

根据选定应用的最新版本的增量代码覆盖率文件,以及一个或多个历史版本的增量代码覆盖率文件,生成选定应用的最新全量代码覆盖率文件;

根据最新版本的增量代码覆盖率文件、最新全量代码覆盖率文件,得到选定应用的最新代码覆盖率数据;

将选定应用的最新代码覆盖率数据返回用户端。

其中,将选定应用的最新代码覆盖率数据返回用户端之前,可以保存生成的选定应用的最新全量代码覆盖率文件和选定应用的最新代码覆盖率数据。

步骤s102还可以包括:当代码覆盖率操作为代码覆盖率存储操作时,执行:

将缓存中选定应用的增量代码覆盖率文件保存到数据库,并从应用系统服务器端获取选定应用的最新版本的增量代码覆盖率文件;

根据选定应用的最新版本的增量代码覆盖率文件,以及一个或多个历史版本的增量代码覆盖率文件,生成选定应用的最新全量代码覆盖率文件;

根据最新版本的增量代码覆盖率文件、最新全量代码覆盖率文件,得到选定应用的最新代码覆盖率数据;

将最新版本的增量代码覆盖率文件和最新代码覆盖率数据保存到所述数据库。

其中,上述一个或多个历史版本为指定版本中的版本。

上述从应用系统服务器端获取选定应用的最新版本的增量代码覆盖率文件的步骤,具体可以包括:

根据选定应用对应的配置信息生成脚本文件;

通过执行脚本文件,从应用系统服务器端获取选定应用的最新版本的增量代码覆盖率文件。

每一应用对应各自的配置信息,配置信息可以包括:应用名、ip端口、源码路径等信息,还可以包括应用系统的id、应用所属业务id等信息。

采用jacocoant任务,通过tcpserver(tcp(传输控制协议)服务)方式远程获取应用系统服务器端的增量代码覆盖率文件jacoco.exec,具体地,可以调用jacocoagent的dump方法(为jacoco下载代码覆盖率的方法),远程获取应用系统当前的代码覆盖率。其中,jacocoant任务是jacoco附带的ant任务,可以启动执行记录的java程序,并从记录的数据创建覆盖率报告。

系统迭代过程中会产生多个版本,用户可以根据需要多次触发,实时更新当前测试代码覆盖率,对应每一版本的代码覆盖率称为增量代码覆盖率,相应地,从应用系统服务器端获取到的当前的代码覆盖率文件称为增量代码覆盖率文件。

当应用多次迭代时,用户触发获取或保存代码覆盖率时,即用户指令指示执行代码覆盖率获取操作和代码覆盖率存储操作时,还会调用jacocoagent的merge方法(为jacoco合并代码覆盖率文件的方法),将用户之前获取到的所有增量覆盖率文件合并,生成新的代码覆盖率文件merge.exec,并保存,该代码覆盖率文件中的代码覆盖率记录任意两个或多个版本之间所有代码覆盖率总和,称为全量代码覆盖率,将用户之前获取到的所有增量覆盖率文件合并而生成的新的代码覆盖率文件merge.exec为全量代码覆盖率文件。

全量代码覆盖率中对于重复测试的代码部分只执行一次计算,全量代码覆盖率体现了对各版本的被测代码执行测试时总计被测试到的代码占被测代码总量的比例。结合具体场景,例如进行新的需求开发,从第一个被测版本到最后一个测试完成版本,中间会迭代发布很多版本,如果按照普通的代码覆盖率获取方式,每个版本只能看到当前测试过的代码覆盖率,而每个迭代版本,可能只测试了其中的一小部分,这样用户无法了解从需求开始到最后一个版本所有的测试覆盖率,本发明的全量代码覆盖率使得该需求从测试开始到测试结束,总的代码覆盖率显示出来,使得在测试完成时,用户可以了解是否有遗漏的代码没有被测试。

上述根据最新版本的增量代码覆盖率文件、最新全量代码覆盖率文件,得到选定应用的最新代码覆盖率数据的步骤,具体可以包括:

根据最新版本的增量代码覆盖率文件、最新全量代码覆盖率文件,分别生成选定应用的最新版本的增量代码覆盖率报告、最新全量代码覆盖率报告;

解析最新版本的增量代码覆盖率报告、最新全量代码覆盖率报告,解析的结果包括选定应用的最新版本的增量代码覆盖率、最新全量代码覆盖率,以及选定应用最新版本被测试到的代码和用户指令中指定版本的选定应用被合并测试到的代码,将解析的结果作为选定应用的最新代码覆盖率数据。

各版本的增量代码覆盖率文件和全量代码覆盖率文件均为.exec文件,无法直接解析,通过jacoco开源方法可以根据增量代码覆盖率文件、全量代码覆盖率文件生成对应版本的html形式的增量代码覆盖率报告和全量代码覆盖率报告,从html形式的增量代码覆盖率报告和全量代码覆盖率报告可以解析得到代码覆盖率数据。

步骤s102还可以包括:当代码覆盖率操作为代码覆盖率清除操作时,执行:

删除缓存中选定应用的所有增量代码覆盖率文件、全量代码覆盖率文件和代码覆盖率数据。

步骤s102还可以包括:当代码覆盖率操作为代码覆盖率统计操作时,执行:

根据选定应用指定版本的的已存代码覆盖率数据,按照预设维度生成统计数据,并展示统计数据。

预设维度可以包括时间维度、业务维度、应用系统维度等一个或多个维度。

本发明实施例可以实现完善的代码覆盖率统计管理功能,将每次获取代码覆盖率的记录保存在数据库,根据需要处理数据,分类展示在前端。例如,可以根据时间维度展示各应用系统代码覆盖率历史记录;可以根据需要保存应用系统各版本的代码覆盖率详细报告;可以从时间、应用所属业务线维度对应用系统代码覆盖率触发次数进行统计,其中可以包括:对代码覆盖率获取总次数以及各应用代码覆盖率统计次数进行排序、对所有应用系统代码覆盖率更新次数按天统计(如图2所示)、对所有应用代码覆盖率更新次数按业务线统计(如图3所示)等等。

本发明实施例的代码覆盖率管理方法,可以实现同时批量获取、批量更新和清空多个应用的代码覆盖率,当用户选定多个应用时,本发明实施例可以根据应用名称获取相应配置,生成脚本文件,并发执行,获取到各应用的代码覆盖率,提高管理代码覆盖率效率,节省时间,并使用户可以从不同维度了解代码覆盖率使用情况以及同一系统不同版本的代码覆盖率,实时了解系统迭代过程中代码覆盖曲线。

图4是根据本发明实施例的代码覆盖率管理装置的主要模块示意图。

本发明实施例的代码覆盖率管理装置400主要包括:接收模块401、执行模块402。

接收模块401用于接收用户指令,用户指令指示执行对选定应用的指定版本的代码覆盖率操作,选定应用包括一个或多个应用。

执行模块402用于当代码覆盖率操作为代码覆盖率获取操作时,执行:

从应用系统服务器端获取选定应用的最新版本的增量代码覆盖率文件;

根据选定应用的最新版本的增量代码覆盖率文件,以及一个或多个历史版本的增量代码覆盖率文件,生成选定应用的最新全量代码覆盖率文件;

根据最新版本的增量代码覆盖率文件、最新全量代码覆盖率文件,得到选定应用的最新代码覆盖率数据;

将选定应用的最新代码覆盖率数据返回用户端。

执行模块402具体还可以用于:

当代码覆盖率操作为代码覆盖率存储操作时,执行:

将缓存中选定应用的增量代码覆盖率文件保存到数据库,并从应用系统服务器端获取选定应用的最新版本的增量代码覆盖率文件;

根据选定应用的最新版本的增量代码覆盖率文件,以及一个或多个历史版本的增量代码覆盖率文件,生成选定应用的最新全量代码覆盖率文件;

根据最新版本的增量代码覆盖率文件、最新全量代码覆盖率文件,得到选定应用的最新代码覆盖率数据;

将最新版本的增量代码覆盖率文件和最新代码覆盖率数据保存到所述数据库。

上述一个或多个历史版本为指定版本中的版本。

执行模块402可以包括增量代码覆盖率文件获取子模块,用于:

根据所述选定应用对应的配置信息生成脚本文件;

通过执行所述脚本文件,从应用系统服务器端获取所述选定应用的最新版本的增量代码覆盖率文件。

执行模块402还可以包括代码覆盖率数据生成子模块,用于:

根据所述最新版本的增量代码覆盖率文件、最新全量代码覆盖率文件,分别生成选定应用的最新版本的增量代码覆盖率报告、最新全量代码覆盖率报告;

解析最新版本的增量代码覆盖率报告、最新全量代码覆盖率报告,解析的结果包括选定应用的最新版本的增量代码覆盖率、最新全量代码覆盖率,以及选定应用最新版本被测试到的代码和用户指令中指定版本的选定应用被合并测试到的代码,将解析的结果作为选定应用的最新代码覆盖率数据。

执行模块具体还可以用于:

当代码覆盖率操作为代码覆盖率清除操作时,执行:

删除缓存中选定应用的所有增量代码覆盖率文件、全量代码覆盖率文件和代码覆盖率数据。

执行模块402具体还可以用于:

当代码覆盖率操作为代码覆盖率统计操作时,执行:

根据选定应用指定版本的的已存代码覆盖率数据,按照预设维度生成统计数据,并展示统计数据。

图5是根据本发明实施例的代码覆盖率管理系统架构示意图

如图5所示,本发明实施例的代码覆盖率管理系统架构包括用户端、代码覆盖率管理平台、应用系统服务器端。其中,用户端包括多个用户终端设备(用户1,用户2,用户3……),通过用户终端设备可以访问代码覆盖率管理平台的用户界面,从不同维度查看代码覆盖率统计结果,并进行更新(获取)、清空、保存、查看代码覆盖率报告的操作。代码覆盖率管理平台可以实现代码覆盖率管理装置400的各功能,例如进行分析处理代码覆盖率文件、生成代码覆盖率报告、解析代码覆盖率报告,以及记录用户代码覆盖率更新操作记录(包括各版本的代码覆盖率文件/报告/数据),并按不同维度进行统计展示等操作。应用系统服务器端包括多个应用系统服务器(应用系统1,应用系统2应用系统3,应用系统4……)。

用户界面上设置“更新”、“清空”、“保存”等按钮,用户点击“更新”时,即发出执行代码覆盖率获取操作的用户指令,触发获取最新代码覆盖率数据的操作。用户点击“清空”时,即发出执行代码覆盖率清除操作的用户指令,触发清空选定应用的所有增量代码覆盖率文件、全量代码覆盖率文件和代码覆盖率数据的操作。用户点击“保存”时,即发出执行代码覆盖率存储操作的用户指令,触发将最新版本的增量代码覆盖率文件和最新代码覆盖率数据保存到数据库的操作,具体地,代码覆盖率管理平台可以先获取最新的代码覆盖率,再将代码覆盖率文件merge.exec和相应报告备份至服务器的相关文件夹,以报告名称命名,用户通过查看“历史报告”项目查看已保存的代码覆盖率报告。用户界面还提供了用户对代码覆盖率统计查询的入口,用户可以从任何一个版本开始统计应用系统代码覆盖率。本发明实施例的代码覆盖率管理平台,用户只要不触发“清空”操作,就会一直累加后续所有版本的代码覆盖率,直到满足用户需求,用户选择“保存”,可以保存详细的代码覆盖率报告到历史报告记录里,供后续参考;用户选择“清空”,删除所有代码覆盖率文件,并重新开始计算代码覆盖率,以此循环。

另外,在本发明实施例中代码覆盖率管理装置的具体实施内容,在上面所述代码覆盖率管理方法中已经详细说明了,故在此重复内容不再说明。

图6示出了可以应用本发明实施例的代码覆盖率管理方法或代码覆盖率管理装置的示例性系统架构600。

如图6所示,系统架构600可以包括终端设备601、602、603,网络604和服务器605。网络604用以在终端设备601、602、603和服务器605之间提供通信链路的介质。网络604可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。

用户可以使用终端设备601、602、603通过网络604与服务器605交互,以接收或发送消息等。终端设备601、602、603上可以安装有各种通讯客户端应用,例如购物类应用、网页浏览器应用、搜索类应用、即时通信工具、邮箱客户端、社交平台软件等。

终端设备601、602、603可以是具有显示屏并且支持网页浏览的各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机和台式计算机等等。

服务器605可以是提供各种服务的服务器,例如对用户利用终端设备601、602、603所浏览的购物类网站提供支持的后台管理服务器。后台管理服务器可以对接收到的信息查询请求等数据进行分析等处理,并将处理结果(例如代码覆盖率数据)反馈给终端设备。

需要说明的是,本发明实施例所提供的代码覆盖率管理方法一般由服务器605执行,相应地,代码覆盖率管理装置一般设置于服务器605中。

应该理解,图6中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。

下面参考图7,其示出了适于用来实现本申请实施例的服务器的计算机系统700的结构示意图。图7示出的服务器仅仅是一个示例,不应对本申请实施例的功能和使用范围带来任何限制。

如图7所示,计算机系统700包括中央处理单元(cpu)701,其可以根据存储在只读存储器(rom)702中的程序或者从存储部分708加载到随机访问存储器(ram)703中的程序而执行各种适当的动作和处理。在ram703中,还存储有系统700操作所需的各种程序和数据。cpu701、rom702以及ram703通过总线704彼此相连。输入/输出(i/o)接口705也连接至总线704。

以下部件连接至i/o接口705:包括键盘、鼠标等的输入部分706;包括诸如阴极射线管(crt)、液晶显示器(lcd)等以及扬声器等的输出部分707;包括硬盘等的存储部分708;以及包括诸如lan卡、调制解调器等的网络接口卡的通信部分709。通信部分709经由诸如因特网的网络执行通信处理。驱动器710也根据需要连接至i/o接口705。可拆卸介质711,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器710上,以便于从其上读出的计算机程序根据需要被安装入存储部分708。

特别地,根据本发明公开的实施例,上文参考主要步骤示意图描述的过程可以被实现为计算机软件程序。例如,本发明公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行主要步骤示意图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分709从网络上被下载和安装,和/或从可拆卸介质711被安装。在该计算机程序被中央处理单元(cpu)701执行时,执行本申请的系统中限定的上述功能。

需要说明的是,本发明所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑磁盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本申请中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本申请中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、rf等等,或者上述的任意合适的组合。

附图中的主要步骤示意图和框图,图示了按照本申请各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,主要步骤示意图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或主要步骤示意图中的每个方框、以及框图或主要步骤示意图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

描述于本发明实施例中所涉及到的模块可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的模块也可以设置在处理器中,例如,可以描述为:一种处理器包括接收模块401、执行模块402。其中,这些模块的名称在某种情况下并不构成对该模块本身的限定,例如,接收模块401还可以被描述为“用于接收用户指令的模块”。

作为另一方面,本发明还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的设备中所包含的;也可以是单独存在,而未装配入该设备中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被一个该设备执行时,使得该设备包括:接收用户指令,所述用户指令指示执行对选定应用的指定版本的代码覆盖率操作,所述选定应用包括一个或多个应用;当所述代码覆盖率操作为代码覆盖率获取操作时,执行:从应用系统服务器端获取所述选定应用的最新版本的增量代码覆盖率文件;根据所述选定应用的最新版本的增量代码覆盖率文件,以及一个或多个历史版本的增量代码覆盖率文件,生成所述选定应用的最新全量代码覆盖率文件,;根据所述最新版本的增量代码覆盖率文件、所述最新全量代码覆盖率文件,得到所述选定应用的最新代码覆盖率数据;将所述选定应用的最新代码覆盖率数据返回用户端。

根据本发明实施例的技术方案,当用户指令指示执行代码覆盖率获取操作时,执行:从应用系统服务器端获取选定应用的最新版本的增量代码覆盖率文件;根据选定应用的最新版本的增量代码覆盖率文件,以及一个或多个历史版本的增量代码覆盖率文件,生成选定应用的最新全量代码覆盖率文件;根据最新版本的增量代码覆盖率文件、最新全量代码覆盖率文件,得到选定应用的最新代码覆盖率数据并将该数据返回用户端。能够实现灵活的代码覆盖率获取机制,用户可获取应用系统任意两个或多个版本间的代码覆盖率,为质量控制提供更精确的参考依据,且实现批量获取。当用户指令指示执行代码覆盖率清除操作时,能实现批量清空多个应用系统的代码覆盖率,提高代码覆盖率管理效率,节省时间。当用户指令指示执行代码覆盖率存储操作时,可以记录不同版本间的代码覆盖率,以及,当用户指令指示执行代码覆盖率统计操作时,可以从各种维度对应用系统历史代码覆盖率进行汇总展示,使用户实时了解系统迭代过程中代码覆盖率曲线,从而了解应用系统代码覆盖率的趋势。

上述具体实施方式,并不构成对本发明保护范围的限制。本领域技术人员应该明白的是,取决于设计要求和其他因素,可以发生各种各样的修改、组合、子组合和替代。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1