用于Java程序测试的覆盖率采集方法及装置制造方法及图纸

技术编号:42604809 阅读:20 留言:0更新日期:2024-09-03 18:14
本说明书涉及程序测试技术领域,具体地公开了一种用于Java程序测试的覆盖率采集方法及装置,其中,该方法包括:获取目标应用的源码数据;对目标应用的源码数据进行编译,得到目标应用字节码数据;针对目标应用字节码数据中的目标类,生成对应的兄弟类;兄弟类中包含用于采集覆盖率的辅助方法;在目标类中埋入对兄弟类中的辅助方法进行访问和赋值的操作;利用辅助方法采集目标应用的覆盖率,覆盖率是指已经运行代码与待运行代码的比值数据。通过上述方案,保证了目标类覆盖率的采集,同时,不会向目标类中注入字段或方法,保证了对于加载过的类,也能够重定义字节码来采集其覆盖率。

【技术实现步骤摘要】

本说明书涉及程序测试,特别涉及一种用于java程序测试的覆盖率采集方法及装置。


技术介绍

1、在应用开发阶段,需要对应用进行不断测试才可以供用户使用,而应用的完整性测试则需要应用的源代码才可以进行。但是在测试过程中,由于代码的数量庞大,哪些代码被测试过,而哪些代码没有被测试,则需要测试人员重点关注,因此,覆盖率这一概念应运而生,覆盖率是衡量软件测试工作充分性和完整性的指标,是已被执行的代码占总体待测试代码的比例,所以覆盖率数据的采集是测试环节必不可少的一步。

2、目前,覆盖率采集主要是基于字节码技术,需要开发人员在项目启动脚本中加入java agent参数,来对目标应用进行覆盖率采集。对于使用者来说,需要修改目标应用的启动脚本,存在大量的向类中新增方法字段操作,人力成本高。若通过attach机制来获得修改目标应用字节码的权限,由于修改已加载类的字节码存在jvm(java虚拟机)限制,因而不能新增、删除字段或方法。

3、针对上述问题,目前尚未提出有效的解决方案。


技术实现思路p>

1、本说明本文档来自技高网...

【技术保护点】

1.一种用于Java程序测试的覆盖率采集方法,其特征在于,包括:

2.根据权利要求1所述的用于Java程序测试的覆盖率采集方法,其特征在于,所述辅助方法包括探针数组。

3.根据权利要求2所述的用于Java程序测试的覆盖率采集方法,其特征在于,所述兄弟类用于存放所述探针数组,所述目标类用于埋入对所述探针数组进行访问和赋值的操作。

4.根据权利要求3所述的用于Java程序测试的覆盖率采集方法,其特征在于,利用所述辅助方法采集所述目标应用的覆盖率,包括:

5.根据权利要求1所述的用于Java程序测试的覆盖率采集方法,其特征在于,还包括:

<...

【技术特征摘要】

1.一种用于java程序测试的覆盖率采集方法,其特征在于,包括:

2.根据权利要求1所述的用于java程序测试的覆盖率采集方法,其特征在于,所述辅助方法包括探针数组。

3.根据权利要求2所述的用于java程序测试的覆盖率采集方法,其特征在于,所述兄弟类用于存放所述探针数组,所述目标类用于埋入对所述探针数组进行访问和赋值的操作。

4.根据权利要求3所述的用于java程序测试的覆盖率采集方法,其特征在于,利用所述辅助方法采集所述目标应用的覆盖率,包括:

5.根据权利要求1所述的用于java程序测试的覆盖率采集方法,其特征在于,还包括:

6.根据权利要求1所述的用于java程序测试的覆盖率采集方法,其特征在于,所述兄弟类与对应的所述目标类位于同一个类加载器下。

7.根据权利要求1所述的用于java程序测试的覆盖率采集方法,其特征在于,所述兄弟类为全局类。

...

【专利技术属性】
技术研发人员:周朝信高梦杰
申请(专利权)人:中国工商银行股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1