[发明专利]基于JVM的测试覆盖率统计方法及系统在审
申请号: | 201210532089.7 | 申请日: | 2012-12-11 |
公开(公告)号: | CN103870383A | 公开(公告)日: | 2014-06-18 |
发明(设计)人: | 吴旭;胡骥 | 申请(专利权)人: | 航天信息股份有限公司 |
主分类号: | G06F11/36 | 分类号: | G06F11/36 |
代理公司: | 北京科龙寰宇知识产权代理有限责任公司 11139 | 代理人: | 孙皓晨 |
地址: | 100097 *** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 jvm 测试 覆盖率 统计 方法 系统 | ||
技术领域
本发明涉及软件测试技术领域,特别涉及一种基于JVM的测试覆盖率统计方法及系统。
背景技术
计算机软件程序主要由人工开发完成,通常还会由多名开发人员共同完成,不可避免地会存在各类意想不到的错误。因此,软件产品在正式发布前要经过多次测试和修改,软件测试的最根本目的就是在软件产品发布前尽可能多地发现软件中的缺陷,以保证正式产品的质量。其中黑盒测试是从用户角度出发,把程序看作一个不能打开的黑盒子,在完全不考虑程序内部结构和内部特性的情况下,对程序的输入输出进行测试,黑盒测试主要针对软件界面和软件功能进行测试,是最实用的软件测试方式之一。
现有的软件测试理论已经基本成熟,绝大多数测试方式均可以通过自动手段来实现测试过程,对于黑盒测试来说,如果能为每个测试过程选择适当的测试用例,可有效地设计出高效的自动测试过程。但是,随着待测试软件系统的日益庞大,测试的工作量呈指数级增长,给软件黑盒测试工作带来了很多新的问题。由于黑盒测试只针对需求创建测试用例做外部的覆盖测试,在需求不详细的情况下,有极大可能测试用例无法涵盖全部软件代码,造成测试不完备。在测试不完备的情况下,极易漏检系统BUG,给产品质量带来许多不确定性的隐患。要保证测试的充分性和完备性,只有采取各种措施提高测试用例的代码覆盖率。
但现有技术中,黑盒测试并不考虑程序内部结构和内部特性,无法像白盒测试一样直接针对源代码级别进行处理,只能在测试之后根据收集的结果数据进行后验的结果推算,难以直接获得测试的代码覆盖率数据,推算结果也经常存在较大偏差。没有代码覆盖率数据的情况下显然不可能正确评估测试的充分性和完备性,更谈不上对其进行改进。而如果放弃黑盒测试只依赖于白盒测试,又会使测试成本过于昂贵,效率低下。
发明内容
(一)要解决的技术问题
为了解决现有技术中无法直接获得黑盒测试代码覆盖率数据的问题,本发明提供了一种基于JVM的测试覆盖率统计方法及系统。
(二)技术方案
为解决上述技术问题,本发明采用如下的技术方案实施:
首先,本发明提供一种基于JVM的测试覆盖率统计方法,所述方法包括步骤:
S1,在JVM启动的同时将需要统计的类名作为参数传入;
S2,判断虚拟机载入的类是否需要注入,若需要则执行步骤S3,否则直接执行步骤S4;
S3,对需要统计的类进行字节码操作并回写入虚拟机;
S4,虚拟机正常执行类操作,自动记录执行中的统计信息;
S5,在虚拟机退出时,根据统计信息计算覆盖率并输出结果。
优选地,步骤S5中,如果有多次执行结果,则合并计算多次执行结果后输出。
优选地,步骤S1中,所述需要统计的类名以正则表达式的形式作为参数传入。
优选地,步骤S2中,通过类名进行比较,判断载入的类是否需要进行字节码操作。
优选地,步骤S3中,所述字节码操作包括:对字节码进行解析、注入处理;获得包、类、方法直接的结构关系记录在系统内存中。
优选地,所述对字节码进行解析处理包括:识别类文件字节码中的可执行代码,将代码以行为单位区分;
所述对字节码进行注入处理包括:在识别出的可执行代码的每一行之后插入统计该行代码被执行状况的代码。
优选地,步骤S5中,所述根据统计信息计算覆盖率并输出结果的方法为:根据步骤S4记录的统计信息和步骤S3获得的结构关系进行计算,得到覆盖率数据并输出结果。
优选地,步骤S4中,在自动记录执行中的统计信息之后,该方法还包括:将执行信息按包、类、方法分层统计记录。
另一方面,本发明还同时提供一种基于JVM的测试覆盖率统计系统,所述系统包括:
传入模块,用于在JVM启动的同时将需要统计的类名作为参数传入;
注入判断模块,用于判断虚拟机载入的类是否需要注入,若需要则交由字节码操作模块处理,否则直接交由执行模块处理;
字节码操作模块,用于对需要统计的类进行字节码操作并回写入虚拟机;
执行模块,用于使虚拟机正常执行类操作,自动记录执行中的统计信息;
计算输出模块,用于在虚拟机退出时,根据统计信息计算覆盖率并输出结果。
优选地,所述计算输出模块中还包括:合并计算模块,用于在有多次执行结果时,合并计算多次执行结果后输出。
(三)有益效果
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于航天信息股份有限公司,未经航天信息股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201210532089.7/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种带配重的尾板自开的检测型翻斗车
- 下一篇:方形升降截流拍门