System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本文涉及软件开发领域,尤其涉及一种代码改动影响范围评估方法及装置。
技术介绍
1、大型软件工程快速迭代过程中,需多次改动代码,代码改动后需评估代码改动范围影响范围,代码改动影响范围的评估,指的是根据代码改动点定位和查找代码调用层级链路一直到入口点功能并汇总展示,直观的展示出代码修改的影响功能范围。代码改动影响范围评估用来指导开发和测试验证工作,确保改动没有引入副作用和测试用例场景设计全面性将变得十分重要。代码改动影响范围评估若不准确,将会导致开发功能逻辑易缺失,易引入副作用,测试覆盖不全,易遗漏并出现质量问题等缺陷。
2、现有技术中,一种代码改动影响范围评估方法包括:根据个人经验和使用ide工具进行代码梳理汇总确定。该种方法不适用于微服务架构下跨系统多软件工程的代码改动影响范围的确定,当代码改动较多,涉及底层代码且调用层级关系复杂时,该种方法存在效率及准确率低的问题。且该种方法未建立代码改动影响范围与业务入口功能点的关联关系,不能为测试管工作提供直接指导。
3、另一种代码改动影响范围评估方法包括:确定代码改动文件;分析代码改动文件中方法的调用层级链路图;根据调用层级链路图,确定代码改动范围。该种方法仅适用于单独的代码工程(单体架构系统),不适用于微服务架构下跨系统多软件工程以及面向切面编程的代码改动影响范围的确定。且该种方法未建立代码改动影响范围与业务入口功能点的关联关系,不能为测试工作提供直接指导。
4、随着软件技术架构不断发展,微服务架构下微服务数量巨大,各微服务系统代码存储于不同代码工程
技术实现思路
1、本文用于解决现有技术中代码改动影响范围评估方法仅适用于单代码工程中的显示影响范围分析,不适用于面向切面编程的代码工程,不能分析出隐性代码改动影响范围。
2、为了解决上述技术问题,本文一方面提供一种代码改动影响范围评估方法,所述方法包括:
3、根据各微服务的代码改动点,确定各微服务的最小改动因子;
4、分析各微服务的代码,建立各微服务的调用层次链路及非显示调用链路,其中,各微服务的非显示调用链路包括各微服务中切入点与关联方法间的关联关系;
5、整合各微服务的调用层次链路及非显示调用链路,得到各微服务的整合调用链路;
6、根据各微服务的最小改动因子及整合调用链路,确定各微服务的代码改动影响范围。
7、作为本文进一步实施例中,所述分析各微服务的代码,建立各微服务的非显示调用关系包括:
8、使用java解析器扫描微服务的代码,定位得到所有切面类;
9、获取各切面类下的切入点标识及切入点表达式;
10、根据各切面类下的切入点标识及切入点表达式,确定最终的切入点,所述最终的切入点为引用切入点标识的通知方法及引用切入点表达式的通知方法;
11、根据各切面类的切入点表达式,确定各切面类的各切入点的连接点;
12、建立各切面类的最终的切入点与连接点间的关联关系,得到微服务的非显示调用关系。
13、作为本文进一步实施例中,代码改动影响范围评估方法还包括:
14、根据各微服务的代码改动影响范围,确定各微服务最上层调用点;
15、分析各微服务的代码,建立各微服务的入口点定位规则,其中,所述入口点定位规则包括入口点与业务功能点的关联关系;
16、从各微服务的入口点定位规则中查找各微服务的最上层调用点;
17、若查找成功,则将查找成功的入口点的业务功能点设置为各微服务的代码改动的业务影响范围;
18、若查找失败,则发出提醒信息至开发人员。
19、作为本文进一步实施例中,分析各微服务的代码,建立各微服务的入口点定位规则包括:
20、利用java解析器扫描各微服务的代码,定位所有类的注解;
21、从所有类的注解中,筛选出包含入口类关键字的目标类的注解;
22、定位每一目标类下的所有方法的注解;
23、从目标类下的所有方法的注解中,筛选出包含入口方法关键字的目标方法的注解;
24、将目标方法设置为入口点;
25、若目标类为接口类型,则根据目标类路径及目标类下目标方法的路径,确定业务功能点;若目标类为定时任务,则根据目标类名确定业务功能点;若目标类为消息监听,则根据监听队列名确定业务功能点;
26、建立入口点及业务功能点的关联关系。
27、作为本文进一步实施例中,代码改动影响范围评估方法还包括:
28、收集微服务的系统间调用关系;
29、根据各微服务的最小改动因子及所述系统间调用关系,确定代码改动跨系统影响范围。
30、作为本文进一步实施例中,收集微服务的系统间调用关系包括:
31、根据各微服务代码uri、调用接口配置文件及协议客户端与服务端代码,确定微服务的系统间调用关系;和/或
32、接收人工录入的微服务的系统间调用关系。
33、作为本文进一步实施例中,整合各微服务的调用层次链路及非显示调用链路,得到各微服务的整合调用链路,包括:
34、从各微服务的调用层次链路及非显示调用链路中查找出相同的节点;
35、将各微服务中非显示调用链路中相同节点关联的链路新增至各微服务的调用层次链路中。
36、本文第二方面提供一种代码改动影响范围评估装置,所述装置包括:
37、改动因子确定单元,用于根据各微服务的代码改动点,确定各微服务的最小改动因子;
38、链路识别单元,用于分析各微服务的代码,建立各微服务的调用层次链路及非显示调用链路,其中,各微服务的非显示调用链路包括各微服务中切入点与关联方法间的关联关系;
39、链路整合单元,用于整合各微服务的调用层次链路及非显示调用链路,得到各微服务的整合调用链路;
40、改动影响范围识别单元,用于根据各微服务的最小改动因子及整合调用链路,确定各微服务的代码改动影响范围。
41、本文第三方面提供一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现前述任一实施例所述的方法。
42、本文第四方面提供一种计算机存储介质,其上存储有计算机程序,所述计算机程序被计算机设备的处理器执行时实现前述任一实施例所述的方法。
43、本文提供的代码改动影响范围评估方法及装置,通过根据各本文档来自技高网...
【技术保护点】
1.一种代码改动影响范围评估方法,其特征在于,所述方法包括:
2.如权利要求1所述的方法,其特征在于,所述分析各微服务的代码,建立各微服务的非显示调用关系包括:
3.如权利要求1所述的方法,其特征在于,还包括:
4.如权利要求3所述的方法,其特征在于,分析各微服务的代码,建立各微服务的入口点定位规则包括:
5.如权利要求1所述的方法,其特征在于,还包括:
6.如权利要求5所述的方法,其特征在于,收集微服务的系统间调用关系包括:
7.如权利要求1所述的方法,其特征在于,整合各微服务的调用层次链路及非显示调用链路,得到各微服务的整合调用链路,包括:
8.一种代码改动影响范围评估装置,其特征在于,所述装置包括:
9.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至7任意一项所述方法。
10.一种计算机存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被计算机设备的处理器执行时实现权
...【技术特征摘要】
1.一种代码改动影响范围评估方法,其特征在于,所述方法包括:
2.如权利要求1所述的方法,其特征在于,所述分析各微服务的代码,建立各微服务的非显示调用关系包括:
3.如权利要求1所述的方法,其特征在于,还包括:
4.如权利要求3所述的方法,其特征在于,分析各微服务的代码,建立各微服务的入口点定位规则包括:
5.如权利要求1所述的方法,其特征在于,还包括:
6.如权利要求5所述的方法,其特征在于,收集微服务的系统间调用关系包括:
7.如权...
【专利技术属性】
技术研发人员:李豪,吴迪,
申请(专利权)人:上海睿德汇智科技有限公司北京分公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。