[发明专利]基于JVM的测试覆盖率统计方法及系统在审
申请号: | 201210532089.7 | 申请日: | 2012-12-11 |
公开(公告)号: | CN103870383A | 公开(公告)日: | 2014-06-18 |
发明(设计)人: | 吴旭;胡骥 | 申请(专利权)人: | 航天信息股份有限公司 |
主分类号: | G06F11/36 | 分类号: | G06F11/36 |
代理公司: | 北京科龙寰宇知识产权代理有限责任公司 11139 | 代理人: | 孙皓晨 |
地址: | 100097 *** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 jvm 测试 覆盖率 统计 方法 系统 | ||
1.一种基于JVM的测试覆盖率统计方法,其特征在于,所述方法包括步骤:
S1,在JVM启动的同时将需要统计的类名作为参数传入;
S2,判断虚拟机载入的类是否需要注入,若需要则执行步骤S3,否则直接执行步骤S4;
S3,对需要统计的类进行字节码操作并回写入虚拟机;
S4,虚拟机正常执行类操作,自动记录执行中的统计信息;
S5,在虚拟机退出时,根据统计信息计算覆盖率并输出结果。
2.根据权利要求1所述的方法,其特征在于,步骤S5中,如果有多次执行结果,则合并计算多次执行结果后输出。
3.根据权利要求1所述的方法,其特征在于,步骤S1中,所述需要统计的类名以正则表达式的形式作为参数传入。
4.根据权利要求1所述的方法,其特征在于,步骤S2中,通过类名进行比较,判断载入的类是否需要进行字节码操作。
5.根据权利要求1所述的方法,其特征在于,步骤S3中,所述字节码操作包括:对字节码进行解析、注入处理;获得包、类、方法直接的结构关系记录在系统内存中。
6.根据权利要求5所述的方法,其特征在于,
所述对字节码进行解析处理包括:识别类文件字节码中的可执行代码,将代码以行为单位区分;
所述对字节码进行注入处理包括:在识别出的可执行代码的每一行之后插入统计该行代码被执行状况的代码。
7.根据权利要求5所述的方法,其特征在于,步骤S5中,所述根据统计信息计算覆盖率并输出结果的方法为:根据步骤S4记录的统计信息和步骤S3获得的结构关系进行计算,得到覆盖率数据并输出结果。
8.根据权利要求1所述的方法,其特征在于,步骤S4中,在自动记录执行中的统计信息之后,该方法还包括:将执行信息按包、类、方法分层统计记录。
9.一种基于JVM的测试覆盖率统计系统,其特征在于,所述系统包括:
传入模块,用于在JVM启动的同时将需要统计的类名作为参数传入;
注入判断模块,用于判断虚拟机载入的类是否需要注入,若需要则交由字节码操作模块处理,否则直接交由执行模块处理;
字节码操作模块,用于对需要统计的类进行字节码操作并回写入虚拟机;
执行模块,用于使虚拟机正常执行类操作,自动记录执行中的统计信息;
计算输出模块,用于在虚拟机退出时,根据统计信息计算覆盖率并输出结果。
10.根据权利要求9所述的系统,其特征在于,所述计算输出模块中还包括:合并计算模块,用于在有多次执行结果时,合并计算多次执行结果后输出。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于航天信息股份有限公司,未经航天信息股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201210532089.7/1.html,转载请声明来源钻瓜专利网。
- 上一篇:一种带配重的尾板自开的检测型翻斗车
- 下一篇:方形升降截流拍门