代码覆盖率的测试方法及装置的制造方法

文档序号:9687346阅读:815来源:国知局
代码覆盖率的测试方法及装置的制造方法
【技术领域】
[0001] 本发明设及测试领域,特别是一种代码覆盖率的测试方法及装置。
【背景技术】
[0002] 代码覆盖率(codecoverage)是反映测试用例对被测程序覆盖程度的重要指标, 也是衡量测试完整性的一个参考值。
[0003] 在Android(安卓)平台上,Jara代码覆盖率的测试可W使用Emma、Jacoco(Java codeCOverage)等开源工具,通过运些开源工具可W方便地生成覆盖率报告。然而,运类工 具需要集成在Eclipse或AndroidStudio之类的IDE(IntegratedDevelopment 化viro皿ent,集成开发环境)中,并通过点击IDE上的相关控件生成报告,运就必须要求测 试人员对运类I呢比较熟悉。
[0004] W在An化oidStudio上使用Jacoco为例,需要在An化oid工程的构建工具gradle 里进行一系列比较复杂的配置,重新clean工程(clean工程是指在An化oidStudio中删除 原先编译好的相关文件,并重新编译),导出插粧后的安装包,进而安装和测试,拷贝需要的 文件到指定的路径,最后点击AmlroidStudio上的指定按钮生成代码覆盖率报告。
[0005]发明人发现,在上述方案中,开发和测试过程没有分开,导出插粧后的安装包是开 发工作,而后面安装、测试W及生成覆盖率报告是测试工作,而由于Jacoco在Android Studio中使用方式的固定性,使得上述过程只能由开发独自完成,亟待解决运一问题。

【发明内容】

[0006]鉴于上述问题,提出了本发明W便提供一种克服上述问题或者至少部分地解决上 述问题的代码覆盖率的测试方法及相应的装置。
[0007]依据本发明的一方面,提供了 一种代码覆盖率的测试方法,包括:
[000引新建特定的测试资源发布通道,其中,所述测试资源发布通道用于将测试资源部 署到测试环境中;
[0009]当接收到对被测程序进行测试的指令时,利用所述测试资源发布通道将所述被测 程序部署到测试环境;
[0010] 在所述测试环境中对所述被测程序进行测试,获取所述被测程序的代码覆盖率数 据。
[0011] 可选地,在利用所述测试资源发布通道将所述被测程序部署到测试环境之前,所 述方法还包括:
[0012] 对被测程序的源码进行插粧处理;
[0013]对插粧处理后的源码进行编译并打包,得到所述被测程序。
[0014] 可选地,利用所述测试资源发布通道将所述被测程序部署到测试环境,包括:
[0015]调用所述测试资源发布通道的第一接口接收所述被测程序;W及
[0016]调用所述测试资源发布通道的第二接口将接收的所述被测程序部署到所述测试 环境。
[0017]可选地,在所述测试环境中对所述被测程序进行测试,得到所述被测程序的代码 覆盖率数据,包括:
[0018]在所述测试环境中,调用第一线程执行所述被测程序的测试用例,生成所述测试 用例的测试信息,其中,所述测试信息中包括代码覆盖率数据;
[0019]新增独立于所述第一线程的第二线程,其中,所述第二线程具备代码覆盖率数据 的获取功能;
[0020] 在所述第一线程的执行过程中,触发所述第二线程从所述测试信息中获取代码覆 盖率数据。
[0021 ] 可选地,所述方法还包括:
[0022] 利用所述测试资源发布通道将所述被测程序的源码提交给代码覆盖率工具;
[0023]在测试完成后,调用代码覆盖率工具,由所述代码覆盖率工具根据所述代码覆盖 率数据、所述被测程序的源码W及所述被测程序的代码,生成代码覆盖率报告。
[0024]可选地,根据所述代码覆盖率数据、所述被测程序的源码W及所述被测程序的代 码,生成代码覆盖率报告,包括:
[0025]对比分析所述代码覆盖率数据、所述被测程序的源码W及所述被测程序的代码, 得到代码覆盖率的统计数据;
[00%]根据所述代码覆盖率的统计数据,生成代码覆盖率报告。
[0027]可选地,所述代码覆盖率的统计数据包括下列至少之一:
[0028]指令覆盖率数据、分支覆盖率数据、圈复杂度覆盖率数据、行覆盖率数据、方法覆 盖率数据、类覆盖率数据。
[0029]可选地,根据所述代码覆盖率的统计数据,生成代码覆盖率报告,包括:
[0030]计算各类代码覆盖率的统计数据的百分比值,并确定所述各类代码覆盖率的统计 数据的重要程度系数;
[0031]对所述各类代码覆盖率的统计数据的百分比值和重要程度系数进行加权求和,得 到综合数值;
[0032]根据所述综合数值,生成代码覆盖率报告。
[0033]可选地,所述测试资源发布通道包括web前台页面。
[0034]可选地,在生成代码覆盖率报告之后,所述方法还包括:
[0035] 在所述web前台页面展示所述代码覆盖率报告。
[0036]依据本发明的另一方面,还提供了 一种代码覆盖率的测试装置,包括:
[0037]发布通道提供模块,适于新建特定的测试资源发布通道,其中,所述测试资源发布 通道用于将测试资源部署到测试环境中;
[0038]导入模块,适于当接收到对被测程序进行测试的指令时,利用所述测试资源发布 通道将所述被测程序部署到测试环境;
[0039]获取模块,适于在所述测试环境中对所述被测程序进行测试,获取所述被测程序 的代码覆盖率数据。
[0040]可选地,所述装置还包括:
[0041]插粧模块,适于在所述导入模块利用所述测试资源发布通道将所述被测程序部署 到测试环境之前,对被测程序的源码进行插粧处理;
[0042] 编译模块,适于对插粧处理后的源码进行编译并打包,得到所述被测程序。
[0043] 可选地,所述导入模块还适于:
[0044] 调用所述测试资源发布通道的第一接口接收所述被测程序;W及
[0045] 调用所述测试资源发布通道的第二接口将接收的所述被测程序部署到所述测试 环境。
[0046] 可选地,所述获取模块还适于:
[0047] 在所述测试环境中,调用第一线程执行所述被测程序的测试用例,生成所述测试 用例的测试信息,其中,所述测试信息中包括代码覆盖率数据;
[0048] 新增独立于所述第一线程的第二线程,其中,所述第二线程具备代码覆盖率数据 的获取功能;
[0049] 在所述第一线程的执行过程中,触发所述第二线程从所述测试信息中获取代码覆 盖率数据。
[0050] 可选地,所述装置还包括:
[0051] 提交模块,适于利用所述测试资源发布通道将所述被测程序的源码提交给代码覆 盖率工具;
[0052] 生成模块,适于在测试完成后,调用代码覆盖率工具,由所述代码覆盖率工具根据 所述代码覆盖率数据、所述被测程序的源码W及所述被测程序的代码,生成代码覆盖率报 告。
[0化3] 可选地,所述生成模块还适于:
[0054] 对比分析所述代码覆盖率数据、所述被测程序的源码W及所述被测程序的代码, 得到代码覆盖率的统计数据;
[0055] 根据所述代码覆盖率的统计数据,生成代码覆盖率报告。
[0056] 可选地,所述代码覆盖率的统计数据包括下列至少之一:
[0057] 指令覆盖率数据、分支覆盖率数据、圈复杂度覆盖率数据、行覆盖率数据、方法覆 盖率数据、类覆盖率数据。
[0化引可选地,所述生成模块还适于:
[0059] 计算各类代码覆盖率的统计数据的百分比值,并确定所述各类代码覆盖率的统计 数据的重要程度系数;
[0060] 对所述各类代码覆盖率的统计数据的百分比值和重要程度系数进行加权求和,得 到综合数值;
[0061] 根据所述综合数值,生成代码覆盖率报告。
[0062] 可选地,所述测试资源发布通道包括web前台页面。
[0063] 可选地,所述装置还包括:
[0064] 展示模块,适于在所述生成模块生成代码覆盖率报告之后,在所述web前台页面展 示所述代码覆盖率报告。
[0065] 在本发明实施例中,新建特定的测试资源发布通道,当接收到对被测程序进行测 试的指令时,利用测试资源发布通道将被测程序部署到测试环境,随后在测试环境中对被 测程序进行测试,获取被测程序的代码覆盖率数据。由此可见,本发明实施例在测试代码覆 盖率时,可w利用测试资源发布通道将被测程序部署到测试环境,从而将开发和测试工作 分开,减轻了开发的负担,提高了测试效率。
[0066]上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段, 而可依照说明书的内容予W实施,并且为了让本发明的上述和其它目的、特征和优点能够 更明显易懂,W下特举本发明的【具体实施方式】。
[0067]根据下文结合附图对本发明具体实施例的详细描述,本领域技术人员将会更加明 了本发明的上述W及其他目的、优点和特征。
【附图说明】
[0068]通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通 技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明 的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
[0069]图1示出了根据本发明一个实施例的代码覆盖率的测试方法的流程图;
[007
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1