[发明专利]一种分布式系统中自动化测试覆盖率的测试方法及系统有效
| 申请号: | 201410725841.9 | 申请日: | 2014-12-03 |
| 公开(公告)号: | CN104391795A | 公开(公告)日: | 2015-03-04 |
| 发明(设计)人: | 谭鹏飞;程岩 | 申请(专利权)人: | 北京京东尚科信息技术有限公司;北京京东世纪贸易有限公司 |
| 主分类号: | G06F11/36 | 分类号: | G06F11/36 |
| 代理公司: | 北京邦信阳专利商标代理有限公司 11012 | 代理人: | 金玺 |
| 地址: | 100080 北京市海淀区杏石口路6*** | 国省代码: | 北京;11 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 分布式 系统 自动化 测试 覆盖率 方法 | ||
技术领域
本发明涉及自动化测试相关技术领域,特别是一种分布式系统中自动化测试覆盖率的测试方法及系统。
背景技术
自动化测试覆盖率是指在执行自动化测试过程中,每个应用被使用的比例。覆盖率是度量测试完整性的一个手段,是测试有效性的一个度量。现有用于获取覆盖率主要采用Jenkins、EMMA等工具。
Jenkins,之前叫做Hudson,是基于Java开发的一种持续集成工具,用于监控秩序重复的工作,包括:
1、持续的软件版本发布/测试项目。
2、监控外部调用执行的工作。
Jenkins是一个持续集成工具。它可以根据设定持续定期编译,运行相应代码;运行单元测试和集成测试;将运行结果发送至邮件,或展示成报。
Jenkins提供了自动编译,打包功能,通过第三方的静态扫描插件扫描代码规则和质量,然后运行单元测试,邮件发送或展示单元测试和各个阶段的报告。通过配置定时时间,或者在SVN中配置钩子自动触发任务的运行(编译,静态扫描,打包,单元测试,报告)。
EMMA是一个用于检测和报告JAVA代码覆盖率的开源工具。它不但能很好的用于小型项目,很方便地得出覆盖率报告,而且适用于大型企业级别的项目。EMMA是一个开源、面向Java程序测试覆盖率收集和报告工具。它通过对编译后的Java字节码文件进行插装,在测试执行过程中收集覆盖率信息,并通过支持多种报表格式对覆盖率结果进行展示。EMMA所使用的字节码插装不仅保证EMMA不会给源代码带来“脏代码”,还确保EMMA摆脱了源代码的束缚,这一特点使EMMA应用于功能测试成为了可能。
EMMA有许多优点,它支持许多种级别的覆盖率指标:包,类,方法,语句块(basicblock)和行,特别是它能测出某一行是否只是被部分覆盖,如条件语句短路的情况。它能生成text,xml,html等形式的报告,以满足不同的需求,其html报告提供下钻功能,能够从package开始一步步链接到用户所关注的某个方法。EMMA能和Makefile和Ant集成,便于应用于大型项目。特别还需指出的一点是,EMMA的效率很高,这对于大型项目来说很重要。
Emma它通过对编译后的Java字节码文件进行插装,在测试执行过程中收集覆盖率信息,获得测试覆盖率过程中,类、方法等覆盖的百分比报告,可以方便测试人员更好的评估测试。测试人员通过对照覆盖率报告与测试用例设计文档,需求文档可以迅速找到测试的不足。通过与开发人员进行讨论,可以更好的评估测试力度,并指导进一步的测试。因此在功能测试中引入覆盖率信息,能够完善测试结果报告,确保测试质量和力度,保证测试按质、按量地完成。
EMMA是通过向.class文件中插入字节码的方式来跟踪记录被运行代码信息的。EMMA支持两种模式:On the fly和Offline模式。On the fly模式往加载的类中加入字节码,相当于用EMMA实现的application class loader替代原来的application class loader。Offline模式在类被加载前,加入字节码。
On the fly模式比较方便,缺点也比较明显,如它不能为被boot class loader加载的类生成覆盖率报告,也不能为像J2EE容器那种自己有独特class loader的类生成覆盖率报告。
EMMA也支持两种运行方式:Command line和Ant。命令行一般和On the fly模式一起适用,对于简单的项目能够快速产生覆盖率报告。使用Emma进行覆盖率统计的时候存在以下几个缺点:
然而,现有技术并不能很好地获取分布式应用的覆盖率。
对于大型的项目,分布式部署在不同机器上的,不能很方便的收集到该项目下所有应用的覆盖率信息。同时,每次部署程序到不同的路径,每次都需要手工的修改插桩的命令。收集完一次报告之后,若想再一次统计某个时间段的覆盖率信息,第二次统计的信息里面会包含第一次的结果,造成结果不准确。对于企业级多个项目集中式统一迭代部署,统一收集报告的时候中间有很多手工繁琐的操作,不够灵活。特别是,对于自动化测试,现有技术不能方便的和自动化测试,自动部署集成。
发明内容
基于此,有必要针对现有技术不能很好地获取分布式应用的覆盖率的技术问题,提供一种分布式系统中自动化测试覆盖率的测试方法及系统。
一种分布式系统中自动化测试覆盖率的测试方法,包括:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京京东尚科信息技术有限公司;北京京东世纪贸易有限公司,未经北京京东尚科信息技术有限公司;北京京东世纪贸易有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201410725841.9/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种翻译模型构建方法和系统
- 下一篇:嵌入式控制算法的测试方法及装置





