一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种基于分层测试模型选取回归测试用例的方法、装置与流程

2022-03-05 10:49:46 来源:中国专利 TAG:


1.本发明涉及软件测试技术领域,具体涉及一种基于分层测试模型选取回归测试用例的方法、装置。


背景技术:

2.现在的软件产品都离不开专业的测试团队或者测试环节的把控,特别是随着现在软件设计的复杂度的增加,修改发现已知问题后由于复杂度加大引入新问题的概率也大幅增加,大多企业软件的研发工作量一半都在修改问题及修改引入问题上。测试用例是测试团队验证产品质量的重要指导,除了修改代码部分的用例的回归验证,仍需要选取可能引入风险的部分用例同时进行回归验证。
3.回归测试是软件测试中的一个十分重要且成本昂贵的过程。针对如何减少回归测试成本,提高回归测试效率的研究具有十分重要的意义。目前针对回归用例的选取是业界的痛点,无法精准高效的识别修改代码时影响的用例而不得不花费大量人力及时间去进行模块的全量完整验证,这对企业人力成本及项目周期来讲,无疑是重大风险点。
4.目前大多数企业解决类似问题强依赖于人为经验,测试架构师对产品系统架构及底层原理较为熟悉,通过特性关联图或者头脑风暴形式,给出最终可能影响到特性范围及回归范围。但这种形式可见的风险就是人为因素存在误判风险;一般企业还有辅助自动化拦截方式,合入代码触发ci后由ci门槛测试用例集判断是否引入新问题,但由于快速迭代开发模式,ci门槛用例集的测试范围有限判断也是不够精准全面;测试技术积累更前沿的科技公司,逐渐在引入精准测试示波器技术建立代码与用例的映射关系,但对于中大型软件设计来讲,需要大量的研发投入及资金投入,且该方案不够成熟付费较高,且需要针对特性软件进行大量重构甚至重新设计,成本较高且不具备普适性,因此业界应用推广并不太理想。


技术实现要素:

5.针对软件测试流程中目前风险项较高的回归验证环节。该环节目前业界普遍做法是强依赖于高级软件测试工程师的经验,或者扩大范围回归验证,极大浪费人力且存在风险无法精准高效的识别修改代码时影响的用例;现有的少量的精准测试模型由于需要对研发代码测试自动化代码注入大量数据建立映射,成本较高且不易用。本发明针对上述问题提供一种基于分层测试模型选取回归测试用例的方法、装置。
6.本发明的技术方案是:
7.第一方面,本发明技术方案提供一种基于分层测试模型选取回归测试用例的方法,包括如下步骤:
8.建立ui/api用例与需求测试点之间的关联,录入管理数据库;
9.获取管理数据库录入的数据同步更新到界面数据库并展示对应关联;
10.获取提交的改动代码的接口调用与函数级对应关系过滤出关联用例;
11.自动触发api层自动回归验证及ui自动回归验证并输出回归测试结果。
12.可以快捷便捷地在现有的自动化框架上建立用例与代码的对应关系,大大节约成本。
13.进一步的,获取管理数据库录入的数据同步更新到界面数据库并展示对应关联的步骤包括:
14.从用例管理系统的管理数据库表中读取已经建立好的对应关联并记录到导入数据库;
15.获取导入数据库中记录的对应关联并以树状层级展示需求测试点与测试用例关联的对应关系。
16.实现轻量简易界面,树状层级展示测试需求点与测试用例关联对应关系,区分ui、api两大部分。关联对应可以一对多、多对多。
17.进一步的,获取提交的改动代码的接口调用与函数级对应关系过滤出关联用例的步骤包括:
18.对提交的改动代码进行代码覆盖检测;
19.根据代码覆盖检测结果识别并记录改动代码所在位置、函数、api、需求测试点的对应关系;
20.自动选取对应api自动化测试用例;
21.根据api识别出的需求测试点获取ui测试用例。
22.可以便捷准确的挑选出待回归验证用例,主要通过自动化形式进行节约人力。
23.进一步的,自动触发api层自动回归验证及ui自动回归验证的步骤包括::
24.根据选取的测试用例自动触发api层自动回归验证及ui自动回归验证。
25.进一步的,该方法还包括:
26.根据代码覆盖检测结果判断单一函数是否被设定阈值个数的需求测试点关联;
27.若是,判断代码覆盖率密集程度达到设定次数后选定该单一函数为高风险模块;
28.将被筛选出作为高风险模块进行有效组合。
29.根据已建立的关联关系给出高风险模块复杂逻辑组合回归风险建议。
30.进一步的,该方法还包括:
31.将测试结果及回归风险建议输出展示并导出形成报表。
32.进一步的,该方法还包括:
33.对测试结果进行分析;
34.根据分析结果完善ui/api用例与需求测试点之间的关联并录入管理数据库。
35.识别出产品代码改动导致的产品功能、函数级改动导致的接口级改动风险以及回归风险建议部分,进而进行完整精准的回归测试设计,该算法通过回归实践结果可方便进行修正或完善代码及用例关联关系,以解决目前精准测试方案不完善以及方案复杂繁琐成本较高的问题。
36.另一方面,本发明技术方案提供一种基于分层测试模型选取回归测试用例的装置,包括关联关系建立模块、关系管理模块、代码用例过滤模块、触发测试模块;
37.关联关系建立模块,用于建立ui/api用例与需求测试点之间的关联,录入管理数据库;
38.关系管理模块,用于获取管理数据库录入的数据同步更新到界面数据库并展示对应关联;
39.代码用例过滤模块,用于获取提交的改动代码的接口调用与函数级对应关系过滤出关联用例;
40.触发测试模块,用于自动触发api层自动回归验证及ui自动回归验证并输出测试结果。
41.可以快捷便捷地在现有的自动化框架上建立用例与代码的对应关系,大大节约成本。
42.进一步的,关系管理模块包括关联关系读取模块和关联关系展示模块;
43.关联关系读取模块,用于从用例管理系统的管理数据库表中读取已经建立好的对应关联并记录到导入数据库;
44.关联关系展示模块,用于获取导入数据库中记录的对应关联并以树状层级展示需求测试点与测试用例关联的对应关系。关联对应可以一对多、多对多。
45.实现轻量简易界面,树状层级展示测试需求点与测试用例关联对应关系,区分ui、api两大部分。
46.进一步的,代码用例过滤模块包括覆盖检测单元、识别记录单元、接口用例选取单元和ui用例获取单元;
47.覆盖检测单元,用于对提交的改动代码进行代码覆盖检测;
48.识别记录单元,用于根据代码覆盖检测结果识别并记录改动代码所在位置、函数、api、需求测试点的对应关系;
49.接口用例选取单元,用于自动选取对应api自动化测试用例;
50.ui用例获取单元,用于根据api识别出的需求测试点获取ui测试用例。
51.可以便捷准确的挑选出待回归验证用例,主要通过自动化形式进行节约人力。
52.进一步的,自动触发api层自动回归验证及ui自动回归验证的步骤包括::
53.触发测试模块,具体用于根据选取的测试用例自动触发api层自动回归验证及ui自动回归验证。
54.进一步的,该装置还包括高风险模块确定模块和建议输出模块;
55.高风险模块确定模块,用于根据代码覆盖检测结果判断单一函数是否被设定阈值个数的需求测试点关联;若是,判断代码覆盖率密集程度达到设定次数后选定该单一函数为高风险模块;将被筛选出作为高风险模块进行有效组合;
56.建议输出模块,用于根据已建立的关联关系给出高风险模块复杂逻辑组合回归风险建议。
57.进一步的,该装置还包括结果输出展示模块;
58.结果输出展示模块,用于将测试结果及回归风险建议输出展示并导出形成报表。
59.进一步的,该装置还包括结果分析模块和关联关系完善模块;
60.结果分析模块,用于对测试结果进行分析;
61.关联关系完善模块,用于根据分析结果完善ui/api用例与需求测试点之间的关联并录入管理数据库。
62.识别出产品代码改动导致的产品功能、函数级改动导致的接口级改动风险以及回
归风险建议部分,进而进行完整精准的回归测试设计,该算法通过回归实践结果可方便进行修正或完善代码及用例关联关系,以解决目前精准测试方案不完善以及方案复杂繁琐成本较高的问题。
63.从以上技术方案可以看出,本发明具有以下优点:本发明建立在分层测试的模型上,分层测试模式是建立在分层开发模式上,结合目前主流的自动化测试理念,涵盖ui界面测试及接口测试,通过一套完整便捷的调度算法智能准确的识别出产品代码改动导致的产品功能、函数级改动导致的接口级改动风险以及回归风险建议部分,进而进行完整精准的回归测试设计,该算法通过回归实践结果可方便进行修正或完善代码及用例关联关系,解决了目前精准测试方案不完善以及方案复杂繁琐成本较高的问题。
64.此外,本发明设计原理可靠,结构简单,具有非常广泛的应用前景。
65.由此可见,本发明与现有技术相比,具有突出的实质性特点和显著地进步,其实施的有益效果也是显而易见的。
附图说明
66.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
67.图1是本发明一个实施例的方法的示意性流程图。
68.图2是本发明另一个实施例的方法的示意性流程图。
69.图3是本发明一个实施例的装置的示意性框图。
具体实施方式
70.为了使本技术领域的人员更好地理解本发明中的技术方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
71.如图1所示,本发明实施例1提供一种基于分层测试模型选取回归测试用例的方法,包括如下步骤:
72.步骤11:建立ui/api用例与需求测试点之间的关联,录入管理数据库;
73.需要说明的是,测试用例(test case)指的是对一项特定的软件产品进行测试任务的描述,体现测试方案、方法、技术和策略;基于分层测试模型,在对产品进行用例设计时进行ui和api层划分;
74.步骤12:获取管理数据库录入的数据同步更新到界面数据库并展示对应关联;
75.步骤13:获取提交的改动代码的接口调用与函数级对应关系过滤出关联用例;
76.步骤14:自动触发api层自动回归验证及ui自动回归验证并输出回归测试结果。
77.回归测试指的是修改了旧代码后,重新进行测试以确认修改没有引入新的错误或导致其他代码产生错误。
78.可以快捷便捷地在现有的自动化框架上建立用例与代码的对应关系,大大节约成
本。
79.本发明实施例2提供一种基于分层测试模型选取回归测试用例的方法,包括如下步骤:
80.步骤21:建立ui/api用例与需求测试点之间的关联,录入管理数据库;
81.需要说明的是,测试用例(test case)指的是对一项特定的软件产品进行测试任务的描述,体现测试方案、方法、技术和策略;基于分层测试模型,在对产品进行用例设计时进行ui和api层划分;
82.步骤22:从用例管理系统的管理数据库表中读取已经建立好的对应关联并记录到导入数据库;
83.步骤23:获取导入数据库中记录的对应关联并以树状层级展示需求测试点与测试用例关联的对应关系;
84.步骤24:获取提交的改动代码的接口调用与函数级对应关系过滤出关联用例;
85.本步骤中,具体包括:
86.步骤241:对提交的改动代码进行代码覆盖检测;
87.步骤242:根据代码覆盖检测结果识别并记录改动代码所在位置、函数、api、需求测试点的对应关系;
88.步骤243:自动选取对应api自动化测试用例;
89.步骤244:根据api识别出的需求测试点获取ui测试用例。
90.可以便捷准确的挑选出待回归验证用例,主要通过自动化形式进行节约人力。
91.步骤25:自动触发api层自动回归验证及ui自动回归验证并输出回归测试结果。需要说明的是,本步骤中,根据选取的测试用例自动触发api层自动回归验证及ui自动回归验证。
92.回归测试指的是修改了旧代码后,重新进行测试以确认修改没有引入新的错误或导致其他代码产生错误。实现轻量简易界面,树状层级展示测试需求点与测试用例关联对应关系,区分ui、api两大部分。关联对应可以一对多、多对多。
93.如图2所示,本发明实施例3提供一种基于分层测试模型选取回归测试用例的方法,包括如下步骤:
94.步骤21:建立ui/api用例与需求测试点之间的关联,录入管理数据库;
95.需要说明的是,测试用例(test case)指的是对一项特定的软件产品进行测试任务的描述,体现测试方案、方法、技术和策略;
96.api级测试是目前自动化测试主流方式,本发明基于分层测试模型,在对产品进行用例设计时进行ui和api层划分,对于界面处理/拦截相关功能因为不调用产品api接口,故采用ui自动化方式,其他模块或者功能均采用api测试工具/框架,常用框架testng、unittest等,基于java/python等各种高级语言均可;本步骤中,使用主流用例管理工具比如禅道等,建立ui/api用例与需求测试点之间的关联。
97.步骤22:从用例管理系统的管理数据库表中读取已经建立好的对应关联并记录到导入数据库;使用脚本工具import.sh从用例管理系统的管理数据库表中直接读取已经建立好的对应关联并记录到自己的数据库(本实施例中定义为导入数据库)中。在这里导入数据库使用mysql实现,其他主流数据库也可支持。
98.步骤23:获取导入数据库中记录的对应关联并以树状层级展示需求测试点与测试用例关联的对应关系;
99.通过可视化工具一键扫描或者更新,存入相关数据库并展示对应关联,在这里需要说明的是,界面刷新按钮可以触发步骤22中的工具脚本重新获取最新的数据库记录并同步更新到本数据库中并展示在管理界面。
100.步骤24:获取提交的改动代码的接口调用与函数级对应关系过滤出关联用例;
101.本步骤中,具体包括:
102.步骤241:对提交的改动代码进行代码覆盖检测;
103.步骤242:根据代码覆盖检测结果识别并记录改动代码所在位置、函数、api、需求测试点的对应关系;
104.步骤243:自动选取对应api自动化测试用例;
105.步骤244:根据api识别出的需求测试点获取ui测试用例。
106.代码改动提交,触发自动选择回归用例机制,本发明的方法与产品代码及测试代码一同集成在ci中,并与各种代码覆盖率工具紧密结合,通过产品的一次全量用例执行代码覆盖率工具执行结果,获取到接口调用与函数级对应关系,再结合静态审查方式对覆盖到代码部分进行少量补充。步骤23中的可视化管理工具建立更细致的需求测试点-》api-》函数级对应关系。研发侧改动代码托管在git仓库中,提交后识别改动部分具体到函数级,进而获取到api级、功能级改动部分。以上步骤中记录改动代码所在位置-》函数-》api-》需求功能点四级对应关系,自动选取对应api自动化测试用例,根据api识别出的测试需求点对其他相关的ui测试用例。
107.可以便捷准确的挑选出待回归验证用例,主要通过自动化形式进行节约人力。
108.步骤25:自动触发api层自动回归验证及ui自动回归验证并输出回归测试结果。需要说明的是,本步骤中,根据选取的测试用例自动触发api层自动回归验证及ui自动回归验证。
109.步骤26:将测试结果及回归风险建议输出展示并导出形成报表;可便捷通过可视化工具查看测试结果。
110.步骤27:对测试结果进行分析;
111.步骤28:根据分析结果完善步骤21中建立的ui/api用例与需求测试点之间的关联并录入管理数据库。
112.本发明实施例4提供一种基于分层测试模型选取回归测试用例的方法,在实施例3的基础上,经常使用的场景中一般是多个模块/功能的多种路径组合,所以除点功能的验证也需要考虑复合逻辑组合的回归验证;所述的方法还包括:
113.步骤411:根据代码覆盖检测结果判断单一函数是否被设定阈值个数的需求测试点关联;若是,执行步骤412;
114.步骤412:判断代码覆盖率密集程度达到设定次数后选定该单一函数为高风险模块;
115.步骤413:将被筛选出作为高风险模块进行有效组合。
116.步骤414:根据已建立的关联关系给出高风险模块复杂逻辑组合回归风险建议。
117.根据其他可信结果通过可视化工具便捷修改维护关联关系,确保整套机制的可用
性及准确性。对该管理系统不同角色分配权限,最高权限用户角色可以对系统中关键的代码及功能对应关系进行手动修正或者完善;提供便捷的编辑界面保存后即可存入数据库进行更新。
118.识别出产品代码改动导致的产品功能、函数级改动导致的接口级改动风险以及回归风险建议部分,进而进行完整精准的回归测试设计,该算法通过回归实践结果可方便进行修正或完善代码及用例关联关系,以解决目前精准测试方案不完善以及方案复杂繁琐成本较高的问题。
119.本发明实施例基于分层测试模型,在一定的测试用例集基础上,通过本技术提供的算法及工具有效快速的建立产品不同层级之间的关联,且通过关联数据提取回归测试时所需的不同类别数据,进而在ci系统中触发对应回归用例自动执行;另外通过数据分析给出更全面的模块逻辑组合路径的风险点供测试工程师进行额外的回归验证,多维度验证代码改动。且提供管理人工维护入口,给实践结果提供同步更新途径进而确保其完备性。
120.如图3所示,本发明实施例5提供一种基于分层测试模型选取回归测试用例的装置,包括关联关系建立模块、关系管理模块、代码用例过滤模块、触发测试模块;
121.关联关系建立模块,用于建立ui/api用例与需求测试点之间的关联,录入管理数据库;
122.关系管理模块,用于获取管理数据库录入的数据同步更新到界面数据库并展示对应关联;需要说明的是,关系管理模块包括关联关系读取模块和关联关系展示模块;
123.关联关系读取模块,用于从用例管理系统的管理数据库表中读取已经建立好的对应关联并记录到导入数据库;
124.关联关系展示模块,用于获取导入数据库中记录的对应关联并以树状层级展示需求测试点与测试用例关联的对应关系。关联对应可以一对多、多对多。
125.实现轻量简易界面,树状层级展示测试需求点与测试用例关联对应关系,区分ui、api两大部分。
126.代码用例过滤模块,用于获取提交的改动代码的接口调用与函数级对应关系过滤出关联用例;
127.触发测试模块,用于自动触发api层自动回归验证及ui自动回归验证并输出测试结果。
128.可以快捷便捷地在现有的自动化框架上建立用例与代码的对应关系,大大节约成本。
129.本发明实施例6提供一种基于分层测试模型选取回归测试用例的装置,包括关联关系建立模块、关系管理模块、代码用例过滤模块、触发测试模块;
130.关联关系建立模块,用于建立ui/api用例与需求测试点之间的关联,录入管理数据库;本实施例中,关联关系建立模块可以是主流用例管理工具比如禅道,禅道可以方便建立ui/api用例与需求测试点之间的关联。
131.关系管理模块,用于获取管理数据库录入的数据同步更新到界面数据库并展示对应关联;需要说明的是,关系管理模块包括关联关系读取模块和关联关系展示模块;
132.关联关系读取模块,用于从用例管理系统的管理数据库表中读取已经建立好的对应关联并记录到导入数据库;在这里,关联关系读取模块可以是脚本工具import.sh,使用
脚本工具import.sh从用例管理系统的数据库表中直接读取已经建立好的对应关联并记录到自己的数据库中,数据库使用mysql实现,其他主流数据库也可支持。
133.关联关系展示模块,用于获取导入数据库中记录的对应关联并以树状层级展示需求测试点与测试用例关联的对应关系。关联对应可以一对多、多对多。
134.实现轻量简易界面,树状层级展示测试需求点与测试用例关联对应关系,区分ui、api两大部分。
135.代码用例过滤模块,用于获取提交的改动代码的接口调用与函数级对应关系过滤出关联用例;需啊哟说明的是,代码用例过滤模块包括覆盖检测单元、识别记录单元、接口用例选取单元和ui用例获取单元;
136.覆盖检测单元,用于对提交的改动代码进行代码覆盖检测;
137.识别记录单元,用于根据代码覆盖检测结果识别并记录改动代码所在位置、函数、api、需求测试点的对应关系;
138.接口用例选取单元,用于自动选取对应api自动化测试用例;
139.ui用例获取单元,用于根据api识别出的需求测试点获取ui测试用例。
140.可以便捷准确的挑选出待回归验证用例,主要通过自动化形式进行节约人力。
141.触发测试模块,用于自动触发api层自动回归验证及ui自动回归验证并输出测试结果,具体用于根据选取的测试用例自动触发api层自动回归验证及ui自动回归验证。
142.可以快捷便捷地在现有的自动化框架上建立用例与代码的对应关系,大大节约成本。
143.该装置还包括结果输出展示模块;
144.结果输出展示模块,用于将测试结果及回归风险建议输出展示并导出形成报表。
145.该装置还包括结果分析模块和关联关系完善模块;
146.结果分析模块,用于对测试结果进行分析;
147.关联关系完善模块,用于根据分析结果完善ui/api用例与需求测试点之间的关联并录入管理数据库。
148.本发明实施例7提供一种基于分层测试模型选取回归测试用例的装置,在实施例6的基础上,经常使用的场景中一般是多个模块/功能的多种路径组合,所以除点功能的验证也需要考虑复合逻辑组合的回归验证;本装置还包括:高风险模块确定模块和建议输出模块;
149.高风险模块确定模块,用于根据代码覆盖检测结果判断单一函数是否被设定阈值个数的需求测试点关联;若是,判断代码覆盖率密集程度达到设定次数后选定该单一函数为高风险模块,并被筛选出作为高风险模块进行有效组合;
150.建议输出模块,用于根据已建立的关联关系给出高风险模块复杂逻辑组合回归风险建议。
151.识别出产品代码改动导致的产品功能、函数级改动导致的接口级改动风险以及回归风险建议部分,进而进行完整精准的回归测试设计,该算法通过回归实践结果可方便进行修正或完善代码及用例关联关系,以解决目前精准测试方案不完善以及方案复杂繁琐成本较高的问题。
152.尽管通过参考附图并结合优选实施例的方式对本发明进行了详细描述,但本发明
并不限于此。在不脱离本发明的精神和实质的前提下,本领域普通技术人员可以对本发明的实施例进行各种等效的修改或替换,而这些修改或替换都应在本发明的涵盖范围内/任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献