本发明涉及一种评估影响范围的系统,具体为基于前端文件修改来评估影响范围的系统,属于前端页面元素测试。
背景技术:
1、前端页面通常指的是用户直接与之交互的网站或应用程序的界面。它涉及到html(hypertext markup language)、css(cascading style sheets)和javascr ipt等技术,用于创建和设计用户界面;页面元素测试通常指的是在网页开发过程中对页面上的各种元素进行测试,以确保它们按预期工作。
2、随着软件系统规模的不断扩大,前端页面功能变得越来越多和复杂,代码库变得越来越庞大。传统的代码评审和测试方法通常是基于静态文件来实现分析,所以代码文件中的动态加载的部分是分析不到的,已无法满足公司服务的快速迭代和持续交付的需要。开发人员往往需要花费大量时间和精力来评估代码变更的影响范围,以确保变更不会破坏现有功能;此外,由于手动评估存在主观性和误判的可能性,导致评估结果不够准确,评估范围不够全面,测试范围不够全面,为此,提出一种基于前端文件修改来评估影响范围的系统及方法。
技术实现思路
1、有鉴于此,本发明提供一种基于前端文件修改来评估影响范围的系统及方法,以解决或缓解现有技术中存在的技术问题,至少提供有益的选择。
2、本发明实施例的技术方案是这样实现的:一种基于前端文件修改来评估影响范围的系统,包括代码文件变动差异比较模块、静态代码分析模块、影响范围评估模块、用户界面模块,所述代码文件变动差异比较模块连接静态代码分析模块,所述静态代码分析模块连接影响范围评估模块,所述影响范围评估模块连接用户界面模块;
3、其中,所述代码文件变动差异比较模块用于实时获取代码分支差异,标记出修改的文件列表、文件修改行信息、每行代码对应的函数信息,并生成树型结构。
4、其中,所述静态代码分析模块用于利用ast语法树的方式,解析项目工程目录下所有文件,并提炼出每个文件的基础信息;
5、其中,所述影响范围评估模块用于根据静态代码分析服务,构建出项目路由树,递归构建所有文件依赖关系树、递归构建函数调用链;
6、其中,用户界面模块用于提供可视化界面。
7、进一步优选的,所述文件的基础信息包括文件引用信息、函数信息和html标签信息。
8、进一步优选的,所述项目路由树的获取由两种方式组成,一种是根据ast语法将路由文件的层级关系解析出来生成路由树,适用于按照菜单模块分文件保存的项目的路由信息声明文件;另一种通过已发布项目的线上接口,查询项目菜单路由树,通过路由path与静态文件path进行匹配来生成路由树,适用于动态路由。
9、进一步优选的,所述可视化界面包括项目选择窗口、分支信息选择/输入窗口、代码变动列表、项目菜单路由树列表、修改文件影响的页面信息、方法、事件信息和html元素信息。
10、一种基于前端文件修改来评估影响范围的方法,包括以下步骤:
11、s1、根据输入的项目分析信息,利用git d iff查找变更代码文件列表;
12、s2、标记变更文件的基础信息,生成树型结构;
13、s3、通过影响范围评估模块利用递归方式在资源树中解析出方法调用链信息;
14、s4、获取方法调用链的终点方法;
15、s5、通过资源树中保存的方法与页面元素的映射关系找到对应的页面元素信息;
16、s6、通过资源树中的信息查询到元素所在的页面列表;
17、s7、通过资源树中的信息查询到页面对应的路由信息;
18、s8、通过路由信息拼装页面的真实访问地址。
19、进一步优选的,所述s1中,通过用户界面模块输入的项目分析信息,利用代码文件变动差异比较模块通过g it d i ff查找变更代码文件列表,用于查询代码变动点。
20、进一步优选的,所述s2中,通过代码文件变动差异比较模块标记文件基础信息;
21、其中,基础信息包括变更文件、文件行、文件行对应的方法和方法绑定的元素依赖关系树,即代码树。
22、进一步优选的,所述s3中,在使用影响范围评估模块前,先利用静态代码分析模块获取项目的静态文件提炼生成文件信息,再使用影响范围评估模块根据文件信息生成分析结果;
23、其中,分析结果包括路由树和文件依赖树,即资源树。
24、进一步优选的,所述s3-s8中,通过影响范围评估模块将代码树与资源树以文件路径为桥梁建立查询关系,根据代码树的文件到资源树中寻找对应受影响的资源,进而锁定代码树中文件的影响范围。
25、进一步优选的,所述s8中,通过用户界面模块利用可视化界面对页面的真实访问地址进行显示。
26、本发明实施例由于采用以上技术方案,其具有以下优点:
27、一、本发明通过利用代码文件变动差异比较模块实时获取代码分支差异,标记出修改的文件列表,文件修改行信息、每行代码对应的函数信息,并生成树型结构,然后利用静态代码分析模块解析项目工程目录下所有文件,提炼出文件的引用信息、函数信息和html标签信息,然后利用影响范围评估模块根据静态代码分析服务,构建出项目路由树,递归构建所有文件依赖关系树和函数调用链,辅助前端开发或者测试人员能够对研发的功能或对被测功能更全面的评估修改文件的影响范围,节约了评估消耗的时间和精力,提高了工作效率及评估结果的准确性。
28、二、本发明系统高度契合公司实际业务使用场景,且可以利用用户界面模块将复杂分析流程可视化呈现。
29、三、本发明通过影响范围评估模块利用方法调用链的精准分析,使每行代码变动都能找到对应页面的元素,提高了范围分析细粒度。
30、四、本发明减少了人工评估影响范围的工时,提高了范围分析的效率,并增加了一种发现缺陷的手段,提高了场景测试覆盖度,还通过增加一种风险提前防控手段,提高了软件交付质量。
31、上述概述仅仅是为了说明书的目的,并不意图以任何方式进行限制。除上述描述的示意性的方面、实施方式和特征之外,通过参考附图和以下的详细描述,本发明进一步的方面、实施方式和特征将会是容易明白的。
1.一种基于前端文件修改来评估影响范围的系统,包括代码文件变动差异比较模块、静态代码分析模块、影响范围评估模块、用户界面模块,其特征在于,所述代码文件变动差异比较模块连接静态代码分析模块,所述静态代码分析模块连接影响范围评估模块,所述影响范围评估模块连接用户界面模块;
2.根据权利要求1所述的基于前端文件修改来评估影响范围的系统,其特征在于:所述文件的基础信息包括文件引用信息、函数信息和html标签信息。
3.根据权利要求1所述的基于函数调用链定位页面元素的精准测试系统,其特征在于:所述项目路由树的获取由两种方式组成,一种是根据ast语法将路由文件的层级关系解析出来生成路由树,适用于按照菜单模块分文件保存的项目的路由信息声明文件;另一种通过已发布项目的线上接口,查询项目菜单路由树,通过路由path与静态文件path进行匹配来生成路由树,适用于动态路由。
4.根据权利要求1所述的基于前端文件修改来评估影响范围的系统,其特征在于:所述可视化界面包括项目选择窗口、分支信息选择/输入窗口、代码变动列表、项目菜单路由树列表、修改文件影响的页面信息、方法、事件信息和html元素信息。
5.一种根据权利要求1-4任一项所述的基于前端文件修改来评估影响范围的系统的方法,其特征在于,包括以下步骤:
6.根据权利要求5所述的基于前端文件修改来评估影响范围的方法,其特征在于:所述s1中,通过用户界面模块输入的项目分析信息,利用代码文件变动差异比较模块通过gitdiff查找变更代码文件列表,用于查询代码变动点。
7.根据权利要求5所述的基于前端文件修改来评估影响范围的方法,其特征在于:所述s2中,通过代码文件变动差异比较模块标记文件基础信息;
8.根据权利要求5所述的基于前端文件修改来评估影响范围的方法,其特征在于:所述s3中,在使用影响范围评估模块前,先利用静态代码分析模块获取项目的静态文件提炼生成文件信息,再使用影响范围评估模块根据文件信息生成分析结果;
9.根据权利要求5所述的基于前端文件修改来评估影响范围的方法,其特征在于:所述s3-s8中,通过影响范围评估模块将代码树与资源树以文件路径为桥梁建立查询关系,根据代码树的文件到资源树中寻找对应受影响的资源,进而锁定代码树中文件的影响范围。
10.根据权利要求5所述的基于前端文件修改来评估影响范围的方法,其特征在于:所述s8中,通过用户界面模块利用可视化界面对页面的真实访问地址进行显示。
