[发明专利]一种代码变更分析方法在审
| 申请号: | 202011405006.9 | 申请日: | 2020-12-02 |
| 公开(公告)号: | CN112379888A | 公开(公告)日: | 2021-02-19 |
| 发明(设计)人: | 张慧吉 | 申请(专利权)人: | 北京皮尔布莱尼软件有限公司 |
| 主分类号: | G06F8/41 | 分类号: | G06F8/41;G06F16/22;G06F16/25 |
| 代理公司: | 北京思睿峰知识产权代理有限公司 11396 | 代理人: | 谢建云;赵爱军 |
| 地址: | 100080 北京市海*** | 国省代码: | 北京;11 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 代码 变更 分析 方法 | ||
本发明公开了一种代码变更分析方法,适于在计算设备中执行,计算设备与服务器链接,方法包括步骤:从服务器中获取代码变更文件;根据代码变更文件确定变更方法集合;以及根据变更方法集合中的每个变更方法,获取与每个变更方法相对应的调用链以构造调用链集合。本发明还一并公开了一种计算设备和计算机可读存储介质。
技术领域
本发明涉及软件开发领域,特别涉及一种代码变更分析方法。
背景技术
随着计算机技术的发展,代码及文件的大小也变得越来越大,各部分之间相互作用关系也变得越来越复杂。在进行软件开发时,不同部分的代码之间会存在内在联系以构成一个运作的整体。而对代码一部分进行修改时,一定会对其他部分的代码产生影响,而在开发过程中,需要知道本次修改对整体代码的影响从而获悉代码变更的影响域。
现有技术中对获取代码变更的影响域的方法包括手工评审代码和字节码插桩方式两种。人工评审代码时需要由人工审阅代码更新提交记录,再逐级查看变更代码的引用。人工查看效率低下,并且当提交代码的频率高且较为复杂时,开发和测试人员也难以通过此方式分析得到所有变更内容。
而通过字节插桩的方式时,通过钩子函数来记录代码执行轨迹信息。但字节插桩的方式只能确定变更的代码本身是否被覆盖,不能确定应用变更方法的业务是否呗覆盖。尤其当变更代码被多处引用时,不能保证所有变更代码的业务均被测试过。并且这种方式要求测试人员对编程掌握的能力较高,不适合进行推广使用。
为此,需要一种新的代码变更分析方法。
发明内容
为此,本发明提供一种代码变更分析方法,以力图解决或者至少缓解上面存在的问题。
根据本发明的一个方面,提供一种代码变更分析方法,适于在计算设备中执行,计算设备与服务器链接,方法包括步骤:从服务器中获取代码变更文件;根据代码变更文件确定变更方法集合;以及根据变更方法集合中的每个变更方法,获取与每个变更方法相对应的调用链以构造调用链集合。
可选地,在根据本发明的方法中,还包括:根据调用链集合来确定变更方法集合的影响域。
可选地,在根据本发明的方法中,从服务器中获取代码变更文件包括步骤:从服务器中获取代码变更记录;以及根据代码变更记录获取代码变更文件。
可选地,在根据本发明的方法中,根据代码变更文件确定变更方法集合包括步骤:判断代码变更文件中是否包括脚本文件;以及若代码变更文件不包括脚本文件,则不对代码变更文件进行处理。
可选地,在根据本发明的方法中,根据代码变更文件确定变更方法集合还包括步骤:扫描代码变更文件,以确定变更部分的行数;获取变更后的代码文件,构建与代码文件相对应的类文件语法树,根据语法树遍历与代码文件相对应的类文件,以确定在类文件中的方法起始和结束的行数;根据变更部分的行数及类文件中的方法起始和结束的行数,确定变更方法集合。
可选地,在根据本发明的方法中,构造调用链集合包括步骤:遍历变更方法集合中每个方法被直接调用或间接调用的代码;根据调用方法的代码生成方法相对应的调用链;以及根据方法相对应的调用链来构造调用链集合。
可选地,在根据本发明的方法中,根据调用方法的代码生成方法相对应的调用链包括步骤:确定变更方法的签名;解析类文件中的方法调用栈并校验方法调用栈中的方法的签名与变更方法的签名是否相同;以及若与变更方法的签名相同,则将该类及方法加入调用链。
可选地,在根据本发明的方法中,根据调用方法的代码生成方法相对应的调用链还包括步骤:确定加入调用链的方法的依赖方法,并将依赖方法加入调用链。
可选地,在根据本发明的方法中,确定变更方法集合的影响域包括步骤:确定变更方法集合中的每个方法是否包括对外接口;若包括对外接口则确定对外借口的接口属性;以及将方法添加到影响接口集合并将接口属性存储到数据库中。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京皮尔布莱尼软件有限公司,未经北京皮尔布莱尼软件有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202011405006.9/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种果冻橙包装用装袋装置
- 下一篇:具有一键延时关机功能的电吹风机





