[发明专利]一种基于字节码增强技术的测试定位方法在审
| 申请号: | 202110801329.8 | 申请日: | 2021-07-15 | 
| 公开(公告)号: | CN113688031A | 公开(公告)日: | 2021-11-23 | 
| 发明(设计)人: | 刘佳利;刘冉;奚叶青 | 申请(专利权)人: | 上海浦东发展银行股份有限公司 | 
| 主分类号: | G06F11/36 | 分类号: | G06F11/36 | 
| 代理公司: | 上海科盛知识产权代理有限公司 31225 | 代理人: | 丁云 | 
| 地址: | 200002 *** | 国省代码: | 上海;31 | 
| 权利要求书: | 查看更多 | 说明书: | 查看更多 | 
| 摘要: | |||
| 搜索关键词: | 一种 基于 字节 增强 技术 测试 定位 方法 | ||
本发明涉及一种基于字节码增强技术的测试定位方法,该方法包括:配置字节码增强模块;基于字节码增强技术加载分析并修改源码对应的字节码文件,获取字节码静态数据;基于字节码增强技术在源码逻辑之上增加事件埋点,采用测试用例进行测试时中获取测试信息和代码执行动态数据;基于字节码静态数据、测试信息和代码执行动态数据进行测试定位。与现有技术相比,本发明具有简单、高效、智能等优点。
技术领域
本发明涉及软件开发测试技术领域,尤其是涉及一种基于字节码增强技术的测试定位方法。
背景技术
目前软件测试中常见的黑盒测试包括系统集成测试、用户验收测试等手段均由测试部门发起,编写相关测试案例,执行自动化测试或手工测试。由于测试人员无法知道程序内部运行的结构和情况,从而导致测试人员以及开发人员都无法知道自己的黑例是否充分。因此,在编写测试案例时,测试人员需与开发人员进行相当长时间沟通,以确定该次测试所涉及的测试范围和边界。
现有测试方案不分析源码及代码执行记录的相关关系,同样也不分析源码间的类、方法之间的调用关系,因此源码对于测试人员并无多大意义,因此,代码执行记录及其覆盖率信息对于测试人员也是一个数据孤岛,因此测试人员在编写测试用例时没有正确的标竿,只能通过与开发人员不断的沟通来确定测试内容。
发明内容
本发明的目的就是为了克服上述现有技术存在的缺陷而提供一种基于字节码增强技术的测试定位方法。
本发明的目的可以通过以下技术方案来实现:
一种基于字节码增强技术的测试定位方法,该方法包括:
配置字节码增强模块;
基于字节码增强技术加载分析并修改源码对应的字节码文件,获取字节码静态数据;
基于字节码增强技术在源码逻辑之上增加事件埋点,采用测试用例进行测试时中获取测试信息和代码执行动态数据;
基于字节码静态数据、测试信息和代码执行动态数据进行测试定位。
优选地,所述的配置字节码增强模块的具体方式为:初始化字节码增强模块,通过Agent模块连接其JVM虚拟机,使用JVM提供的Attach Api,在各测试系统启动完成后,向各测试系统的JVM附着代理工具程序,加载增强扩展并读取增强配置。
优选地,所述的字节码静态数据包括源代码各类别所涉及到的成员、方法、注解信息以及相应类别对应的方法调用、成员初始化及调用、异常区间、代码行记录。
优选地,获取字节码静态数据的方式包括:
加载现有程序中对应的jar包信息,通过字节码增强技术分析class类文件,将class类文件的内容从头到尾扫描一遍,每次扫描到类文件相应的内容时,调用AgentClassVisitor获取class类文件所对应的类别涉及到的成员、方法、注解信息,调用AgentMethodVisitor获取相应类别所涉及到的方法调用、成员初始化及调用、异常区间、代码行记录。
优选地,所述的事件埋点设置位置包括源码的开始和结束位置以及每一行代码之后。
优选地,测试用例进行测试时,当执行某一条代码时,则该代码后对应的事件埋点被触发,产生对应的代码执行动态数据。
优选地,所述的测试信息包括系统名称、应用名称、服务名称、请求分布式架构组件中的服务信息、测试标识、案例标识、用户标识、请求标识。
优选地,所述的代码执行动态数据为日志数据,所述的日志数据记录当前代码对应的执行情况或覆盖与否。
优选地,所述的字节码静态数据、测试信息和代码执行动态数据由Kafka日志模块收集并发送至测试平台进行统一处理进行测试定位。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于上海浦东发展银行股份有限公司,未经上海浦东发展银行股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110801329.8/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种木板压平机构
 - 下一篇:标签定位方法、装置、计算机设备和存储介质
 





