[发明专利]基于注解的Java语言方法覆盖率和方法输入输出统计方法有效
申请号: | 201811586770.3 | 申请日: | 2018-12-25 |
公开(公告)号: | CN109857637B | 公开(公告)日: | 2022-04-15 |
发明(设计)人: | 段建建;刘洋 | 申请(专利权)人: | 杭州茂财网络技术有限公司 |
主分类号: | G06F11/36 | 分类号: | G06F11/36;G06F8/41;G06F8/73 |
代理公司: | 杭州丰禾专利事务所有限公司 33214 | 代理人: | 吴双 |
地址: | 310012 浙江省杭州*** | 国省代码: | 浙江;33 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 注解 java 语言 方法 覆盖率 输入输出 统计 | ||
本发明涉及一种基于注解的Java语言方法覆盖率和方法输入输出统计方法及装置。该方法包括以下步骤:S1,对新增或修改的方法增加一个编译时注解,编译时注解定义在应用编译的过程中统计被注解的方法的相关信息并记录;S2,对新增或修改的方法增加一个运行时注解,运行时注解定义在方法被调用时获得该方法相关信息并记录;S3,编译被测试软件并执行,获取S1和S2所述的相关信息,根据S1和S2所记录的信息计算方法覆盖率,并统计方法的输入输出。该装置用于执行上述方法,包括注解添加模块,注解处理器,软件执行模块和信息存储模块。本发明通过增加注解进行统计方法的覆盖率和输入输出,不会影响代码的实际逻辑,对源码不存在依赖,便于测试人员在日常测试中使用。
技术领域
本发明涉及软件测试领域,尤其涉及一种基于注解的Java语言方法覆盖率和方法输入输出统计方法及装置。
背景技术
软件测试过程中,研发人员希望设计的测试用例可以完全覆盖改动或者新增的方法,并且为了定位问题的需要,在关键的方法上,研发人员希望看到测试用例执行的过程中,方法的输入和输出内容。
目前的软件研发过程中,是通过代码覆盖率工具和IDE的断点设置功能结合起来实现的上述需求。代码覆盖率工具仅能统计测试用例对代码“行”级别的覆盖情况,无法在方法级别统计对修改代码的覆盖情况,也就是仅能看到用例覆盖了多少行代码,但是不统计这些代码对应的方法,更无法看到用例执行的过程中重点方法的输入和输出。通过IDE设置断点对软件进行调试的方案,可以看到用例执行覆盖了哪些方法,也能看到用例执行过程中的方法的输入和输出。但是这种方法需要在源码级别设置断点,且依赖IDE工具,所以这种方案仅适用于开发人员进行代码调试使用,众多测试人员无法在用例执行的过程中使用这种方案统计方法的覆盖率和方法的输入输出。
发明内容
为了解决上述问题,本发明的目的在于提供一种基于注解的Java语言方法覆盖率和方法输入输出统计方案。通过在新增或修改的方法上添加编译时注解以及运行时注解,编译时注解在软件编译阶段执行,经过编译器执行后可获得某次代码提交改动和新增的方法列表;编译后运行代码,通过运行时注解可记录被执行的方法的相关信息。通过增加注解进行统计方法的覆盖率和输入输出,不会影响代码的实际逻辑,对源码不存在依赖,便于测试人员在日常测试中使用。
为了实现上述的目的,本申请的实施例是这样实现的:
本申请实施例提供的一种基于注解的Java语言方法覆盖率和方法输入输出统计方法,包括以下步骤:
S1,对新增或修改的方法增加一个编译时注解,编译时注解定义在应用编译的过程中统计被注解的方法的相关信息并记录;
S2,对新增或修改的方法增加一个运行时注解,运行时注解定义在方法被调用时获得该方法相关信息并记录;
S3,编译被测试软件并执行,获取S1和S2所述的相关信息,根据S1和S2所记录的信息计算方法覆盖率,并统计方法的输入输出。
作为优选,S1包括:
S11,声明一个方法类型的注解接口用于标记方法的注解;
S12,实现注解处理器,包括:
S121,使用JAVA提供的@SupportedAnnotationTypes注解指定该注解处理器用于处理S11中声明好的注解;
S122,注解处理器继承AbstractProcessor类并实现其处理接口;
S123,在处理接口中获得被注解的方法的名称,然后存储。
作为优选,S2包括:
S21,注解实现:创建一个接口,并利用@Target声明其需要获取方法的输入参数,使用注解@Retention并设置为RetentionPolicy.RUNTIME来声明其为一个运行时注解;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于杭州茂财网络技术有限公司,未经杭州茂财网络技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201811586770.3/2.html,转载请声明来源钻瓜专利网。