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

一种测试代码生成方法、装置、设备及可读存储介质与流程

2022-11-14 14:02:17 来源:中国专利 TAG:


1.本发明涉及软件测试技术领域,特别是涉及一种测试代码生成方法、装置、设备及计算机可读存储介质。


背景技术:

2.随着软件系统变的越来越复杂,软件测试已经不能只有手工测试了,只有手工测试会消耗大量的时间,所以必须要进入自动化测试。
3.虽然目前在测试工作中引入了自动化测试,但是只是编写单个模块的测试代码进行测试。因为有的缺陷是需要模块之间交互或者模块的多个功能之间的交互才会产生的。这就要求测试人员要编写一些多模块或多功能之间的场景用例代码。因此虽然已经有了单个模块的自动化代码,但是待测试的缺陷转换成一种测试场景后,该测试场景对应的场景代码还是需要测试人员手工去编写,易出错,测试成本高,测试效率低。导致会有一些缺陷测试不到,存在遗漏。
4.综上所述,如何有效地解决测试成本高,测试效率低,缺陷测试不到,存在遗漏等问题,是目前本领域技术人员急需解决的问题。


技术实现要素:

5.本发明的目的是提供一种测试代码生成方法,该方法较大地降低了出错率,降低了测试成本,提高了测试效率,提升了缺陷测试的全面性;本发明的另一目的是提供一种测试代码生成装置、设备及计算机可读存储介质。
6.为解决上述技术问题,本发明提供如下技术方案:
7.一种测试代码生成方法,包括:
8.获取新录入的目标缺陷数据;
9.读取所述目标缺陷数据的摘要信息;
10.提取所述摘要信息的各关键字;
11.根据各所述关键字生成目标场景策略;
12.根据所述目标场景策略从功能代码数据库中调取各目标功能代码;
13.根据各所述目标功能代码生成目标测试代码,并将所述目标测试代码存储至场景代码数据库。
14.在本发明的一种具体实施方式中,根据所述目标场景策略从功能代码数据库中调取各目标功能代码,包括:
15.从对应关系映射表中查找所述目标场景策略对应的各功能文件方法名;
16.从所述功能代码数据库中调取各所述功能文件方法名分别对应的目标功能代码。
17.在本发明的一种具体实施方式中,获取新录入的目标缺陷数据,包括:
18.通过预设的第一api接口获取新录入缺陷管理系统的目标缺陷数据。
19.在本发明的一种具体实施方式中,还包括:
20.通过预设关联关系算法对所述缺陷管理系统中各已有缺陷间相互关联易出错的场景策略进行学习,生成新增场景策略;
21.根据所述新增场景策略从所述功能代码数据库中调取各新增功能代码;
22.根据各所述新增功能代码生成新增测试代码,将所述新增测试代码存储至所述场景代码数据库。
23.在本发明的一种具体实施方式中,通过预设关联关系算法对所述缺陷管理系统中各已有缺陷间相互关联易出错的场景策略进行学习,包括:
24.通过jaccard_index关联关系算法对所述缺陷管理系统中各已有缺陷间相互关联易出错的场景策略进行学习。
25.在本发明的一种具体实施方式中,通过预设关联关系算法对所述缺陷管理系统中各已有缺陷间相互关联易出错的场景策略进行学习,包括:
26.通过apriori关联关系算法对所述缺陷管理系统中各已有缺陷间相互关联易出错的场景策略进行学习。
27.在本发明的一种具体实施方式中,根据所述目标场景策略从功能代码数据库中调取各目标功能代码,包括:
28.通过预设的第二api接口根据所述目标场景策略从所述功能代码数据库中调取各所述目标功能代码。
29.一种测试代码生成装置,包括:
30.缺陷数据获取模块,用于获取新录入的目标缺陷数据;
31.摘要信息读取模块,用于读取所述目标缺陷数据的摘要信息;
32.关键字提取模块,用于提取所述摘要信息的各关键字;
33.目标场景策略生成模块,用于根据各所述关键字生成目标场景策略;
34.目标功能代码调取模块,用于根据所述目标场景策略从功能代码数据库中调取各目标功能代码;
35.目标测试代码生成模块,用于根据各所述目标功能代码生成目标测试代码,并将所述目标测试代码存储至场景代码数据库。
36.一种测试代码生成设备,包括:
37.存储器,用于存储计算机程序;
38.处理器,用于执行所述计算机程序时实现如前所述测试代码生成方法的步骤。
39.一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如前所述测试代码生成方法的步骤。
40.本发明所提供的测试代码生成方法,获取新录入的目标缺陷数据;读取目标缺陷数据的摘要信息;提取摘要信息的各关键字;根据各关键字生成目标场景策略;根据目标场景策略从功能代码数据库中调取各目标功能代码;根据各目标功能代码生成目标测试代码,并将目标测试代码存储至场景代码数据库。
41.由上述技术方案可知,通过读取新录入的目标缺陷数据的摘要信息,并提取摘要信息的各关键字,根据各关键字自动生成目标场景策略。预先设置存储有各待测试功能分别对应的功能代码的功能代码数据库,根据目标场景策略从功能代码数据库中调取各目标功能代码,根据各目标功能代码生成目标测试代码,并将目标测试代码存储至场景代码数
据库。相较于人工手动编写场景代码的方式,本发明较大地降低了出错率,降低了测试成本,提高了测试效率,提升了缺陷测试的全面性。
42.相应的,本发明还提供了与上述测试代码生成方法相对应的测试代码生成装置、设备和计算机可读存储介质,具有上述技术效果,在此不再赘述。
附图说明
43.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
44.图1为本发明实施例中测试代码生成方法的一种实施流程图;
45.图2为本发明实施例中测试代码生成方法的另一种实施流程图;
46.图3为本发明实施例中一种测试代码生成装置的结构框图;
47.图4为本发明实施例中一种测试代码生成设备的结构框图;
48.图5为本实施例提供的一种测试代码生成设备的具体结构示意图。
具体实施方式
49.为了使本技术领域的人员更好地理解本发明方案,下面结合附图和具体实施方式对本发明作进一步的详细说明。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
50.参见图1,图1为本发明实施例中测试代码生成方法的一种实施流程图,该方法可以包括以下步骤:
51.s101:获取新录入的目标缺陷数据。
52.预先设置对缺陷管理系统进行监测,当监测到存在新录入的目标缺陷数据时,获取新录入的目标缺陷数据。
53.目标缺陷数据可以为任一待测试任务描述数据,可以涉及对单个功能模块的测试,如目标缺陷数据可以为计算模块创建云主机,在这种情况下,仅涉及计算(nova)模块,也可以涉及对多个功能模块的测试,如目标缺陷数据可以为创建云主机后存储硬盘克隆,在这种情况下,涉及计算(nova)模块和存储(cinder)模块。
54.s102:读取目标缺陷数据的摘要信息。
55.在获取到新录入的目标缺陷数据之后,由于目标缺陷数据可能包含的内容相对较多,因此读取目标缺陷数据的摘要信息。如当目标缺陷数据为在某一特定物理机中利用计算模块创建云主机时,摘要信息可以表示为计算模块创建云主机。
56.s103:提取摘要信息的各关键字。
57.摘要信息是对当前测试任务的简略完整描述,其包含与待测试功能相关的关键字。在读取到目标缺陷数据的摘要信息之后,提取摘要信息的各关键字。
58.承接上述举例,当读取到的目标缺陷数据的摘要信息为计算模块创建云主机时,对其进行关键字提取,可以提取到计算模块、创建、云主机三个关键字。
59.s104:根据各关键字生成目标场景策略。
60.在提取到摘要信息的各关键字之后,根据各关键字生成目标场景策略。例如现在需要一个场景,创建云主机后挂载云硬盘,然后云主机在线迁移后再热扩容的场景,这个场景算一条策略。可以提前在自动化代码策略模块中录入一些比较常见且容易想到的测试场景。可以将各中文形式的关键字转换为测试代码自动生成系统可识别的术语,如当提取到的关键字包括计算模块、创建、云主机时,计算模块对应nova,云主机对应vm,创建操作对应build,从而得到测试代码自动生成系统可识别的目标场景策略。
61.s105:根据目标场景策略从功能代码数据库中调取各目标功能代码。
62.预先创建功能代码数据库,用于提前录入单个功能模块的自动化测试代码,例如,计算(nova)模块、存储(cinder)模块、网络(neutron)模块等模块的代码。单个模块的各个功能之间没有耦合性,功能代码数据库中存储有各待测试功能分别对应的功能代码,如计算模块对应的功能代码包含创建云主机、云主机挂载云硬盘、云主机卸载云硬盘、在线迁移、在线扩容等单个功能分别对应的功能代码。目标场景策略中包含对当前测试场景测试涉及的各待测试功能,在根据各关键字生成目标场景策略之后,根据目标场景策略从功能代码数据库中调取各目标功能代码。
63.在本发明的一种具体实施方式中,步骤s105可以包括以下步骤:
64.通过预设的第二api接口根据目标场景策略从功能代码数据库中调取各目标功能代码。
65.预先设置用于对功能代码数据库进行访问的第二api(application programming interface,应用程序编程接口)接口,在根据各关键字生成目标场景策略之后,通过预设的第二api接口根据目标场景策略从功能代码数据库中调取各目标功能代码。
66.应用程序编程接口是一些预先定义的函数,目的是提供应用程序与开发人员基于某软件或硬件的以访问一组例程的能力,而又无需访问源码,或理解内部工作机制的细节。
67.s106:根据各目标功能代码生成目标测试代码,并将目标测试代码存储至场景代码数据库。
68.在根据目标场景策略从功能代码数据库中调取到各目标功能代码之后,根据各目标功能代码生成目标测试代码,并将目标测试代码存储至场景代码数据库。即将各目标功能代码组合成场景用例代码,将场景用例代码存储至场景代码数据库,从而实现场景代码的自动生成。相较于人工手动编写场景代码的方式,本发明实施例能够根据缺陷数据自动进行摘要获取,对摘要进行自动进行关键字提取,根据提取到的关键字自动生成目标场景策略,根据目标场景策略从功能代码数据库中调取各目标功能代码,并将各目标功能代码组合成场景用例代码,较大地降低了出错率,降低了测试成本,提高了测试效率,提升了缺陷测试的全面性。
69.由上述技术方案可知,通过读取新录入的目标缺陷数据的摘要信息,并提取摘要信息的各关键字,根据各关键字自动生成目标场景策略。预先设置存储有各待测试功能分别对应的功能代码的功能代码数据库,根据目标场景策略从功能代码数据库中调取各目标功能代码,根据各目标功能代码生成目标测试代码,并将目标测试代码存储至场景代码数据库。相较于人工手动编写场景代码的方式,本发明较大地降低了出错率,降低了测试成本,提高了测试效率,提升了缺陷测试的全面性。
70.需要说明的是,基于上述实施例,本发明实施例还提供了相应的改进方案。在后续实施例中涉及与上述实施例中相同步骤或相应步骤之间可相互参考,相应的有益效果也可相互参照,在下文的改进实施例中不再一一赘述。
71.参见图2,图2为本发明实施例中测试代码生成方法的另一种实施流程图,该方法可以包括以下步骤:
72.s201:获取新录入的目标缺陷数据。
73.在本发明的一种具体实施方式中,步骤s201可以包括以下步骤:
74.通过预设的第一api接口获取新录入缺陷管理系统的目标缺陷数据。
75.预先设置用于缺陷管理系统进行访问的第一api接口,当监测到存在新录入的目标缺陷数据时,通过预设的第一api接口获取新录入缺陷管理系统的目标缺陷数据。
76.需要说明的是,第一api接口、第二api接口中的第一、第二仅是为了对访问缺陷管理系统的api接口和访问功能代码数据库的api接口进行区分,两者并无先后顺序之分。
77.s202:读取目标缺陷数据的摘要信息。
78.s203:提取摘要信息的各关键字。
79.s204:根据各关键字生成目标场景策略。
80.s205:从对应关系映射表中查找目标场景策略对应的各功能文件方法名。
81.预先设置每个待测试功能对应的代码放入一个文件中,各文件注明功能文件方法名。并预先设置存储有各场景策略与各功能文件方法名之间对应关系的对应关系映射表,如将创建操作(build)与单个功能文件的方法名作对比。在根据各关键字生成目标场景策略之后,从对应关系映射表中查找目标场景策略对应的各功能文件方法名。
82.s206:从功能代码数据库中调取各功能文件方法名分别对应的目标功能代码。
83.功能代码数据库预先设置有各功能文件方法名与各功能代码之间的对应关系。在从对应关系映射表中查找到目标场景策略对应的各功能文件方法名之后,从功能代码数据库中调取各功能文件方法名分别对应的目标功能代码。通过预先设置功能文件方法名分别与场景策略及功能代码之间的对应关系,利用功能文件方法名这一中间桥梁,实现了对目标功能代码的准确有序获取。
84.可以预先在自动化代码策略模块中设置一张对应关系映射表,例如先列出模块的名称-英文的对应关系,资源的名称-英文对应关系,操作的名称-英文对应关系,例如计算模块对应nova,云主机对应vm,创建操作对应build,通过缺陷描述中读取的关键字,例如缺陷描述为计算模块创建云主机,然后根据对应关系映射表,将计算转换成nova,云主机转换成vm,创建转化为build,该条策略只涉及到一个模块。然后通过第二api接口调用功能代码数据库,只读取nova模块,根据功能代码数据库对应的创建云主机的文件(根据操作“build”与单个功能文件的方法名作对比找到对应的文件获取代码)获取到对应的代码传入场景代码数据库中。
85.s207:根据各目标功能代码生成目标测试代码,并将目标测试代码存储至场景代码数据库。
86.在本发明的一种具体实施方式中,该方法还可以包括以下步骤:
87.步骤一:通过预设关联关系算法对缺陷管理系统中各已有缺陷间相互关联易出错的场景策略进行学习,生成新增场景策略;
88.步骤二:根据新增场景策略从功能代码数据库中调取各新增功能代码;
89.步骤三:根据各新增功能代码生成新增测试代码,将新增测试代码存储至场景代码数据库。
90.为方便描述,可以将上述三个步骤结合起来进行说明。
91.在积累策略的同时,还提供自学习功能,根据缺陷管理系统中缺陷的场景,通过关联关系算法,学习后生成缺陷管理系统中功能模块间相互关联容易出错场景的策略,生成的策略继续通过第二api接口调用功能代码数据库生成场景代码保存到场景代码数据库中。通过预设关联关系算法对缺陷管理系统中各已有缺陷间相互关联易出错的场景策略进行学习,生成新增场景策略,根据新增场景策略从功能代码数据库中调取各新增功能代码,根据各新增功能代码生成新增测试代码,将新增测试代码存储至场景代码数据库。从而实现了对缺陷测试的补充,进一步提升了缺陷测试的全面性。
92.在本发明的一种具体实施方式中,通过预设关联关系算法对缺陷管理系统中各已有缺陷间相互关联易出错的场景策略进行学习,可以包括以下步骤:
93.通过jaccard_index关联关系算法对缺陷管理系统中各已有缺陷间相互关联易出错的场景策略进行学习。
94.预先设置用于缺陷管理系统中各已有缺陷间相互关联易出错的场景策略进行学习的jaccard_index关联关系算法。通过jaccard_index关联关系算法对缺陷管理系统中各已有缺陷间相互关联易出错的场景策略进行学习。
95.jaccard_index(雅卡尔指数)关联关系算法用于比较有限样本集之间的相似性与差异性。比较两个集合是否相似,就是比较这两个集合共有元素的占比。因为集合具有互异性,集合中任意两个元素都是不同的对象,集合a中的任意一个元素在集合b中只有两种状态,即存在和不存在(或者可以理解为值是否相等,相等则存在),但无法衡量差异具体值的大小,只能获得“是否相同”这个结果,所以jaccard系数只关心个体间共同具有的特征是否一致这个问题。因此,雅卡尔指数可以用来计算非对称二元属性对象的相似性。
96.在本发明的一种具体实施方式中,通过预设关联关系算法对缺陷管理系统中各已有缺陷间相互关联易出错的场景策略进行学习,可以包括以下步骤:
97.通过apriori关联关系算法对缺陷管理系统中各已有缺陷间相互关联易出错的场景策略进行学习。
98.预先设置用于缺陷管理系统中各已有缺陷间相互关联易出错的场景策略进行学习的apriori关联关系算法。通过apriori关联关系算法对缺陷管理系统中各已有缺陷间相互关联易出错的场景策略进行学习。
99.apriori关联关系算法是一种挖掘关联规则的频繁项集算法,其核心思想是通过候选集生成和情节的向下封闭检测两个阶段来挖掘频繁项集。apriori(先验的,推测的)算法应用广泛,可用于消费市场价格分析,猜测顾客的消费习惯;网络安全领域中的入侵检测技术;可用在用于高校管理中,根据挖掘规则可以有效地辅助学校管理部门有针对性的开展贫困助学工作;也可用在移动通信领域中,指导运营商的业务运营和辅助业务提供商的决策制定。
100.相应于上面的方法实施例,本发明还提供了一种测试代码生成装置,下文描述的测试代码生成装置与上文描述的测试代码生成方法可相互对应参照。
101.参见图3,图3为本发明实施例中一种测试代码生成装置的结构框图,该装置可以包括:
102.缺陷数据获取模块31,用于获取新录入的目标缺陷数据;
103.摘要信息读取模块32,用于读取目标缺陷数据的摘要信息;
104.关键字提取模块33,用于提取摘要信息的各关键字;
105.目标场景策略生成模块34,用于根据各关键字生成目标场景策略;
106.目标功能代码调取模块35,用于根据目标场景策略从功能代码数据库中调取各目标功能代码;
107.目标测试代码生成模块36,用于根据各目标功能代码生成目标测试代码,并将目标测试代码存储至场景代码数据库。
108.由上述技术方案可知,通过读取新录入的目标缺陷数据的摘要信息,并提取摘要信息的各关键字,根据各关键字自动生成目标场景策略。预先设置存储有各待测试功能分别对应的功能代码的功能代码数据库,根据目标场景策略从功能代码数据库中调取各目标功能代码,根据各目标功能代码生成目标测试代码,并将目标测试代码存储至场景代码数据库。相较于人工手动编写场景代码的方式,本发明较大地降低了出错率,降低了测试成本,提高了测试效率,提升了缺陷测试的全面性。
109.在本发明的一种具体实施方式中,目标功能代码调取模块35可以包括:
110.文件方法名查找子模块,用于从对应关系映射表中查找目标场景策略对应的各功能文件方法名;
111.功能代码调取子模块,用于从功能代码数据库中调取各功能文件方法名分别对应的目标功能代码。
112.在本发明的一种具体实施方式中,缺陷数据获取模块31具体为通过预设的第一api接口获取新录入缺陷管理系统的目标缺陷数据的模块。
113.在本发明的一种具体实施方式中,该装置还可以包括:
114.新增场景策略生成模块,用于通过预设关联关系算法对缺陷管理系统中各已有缺陷间相互关联易出错的场景策略进行学习,生成新增场景策略;
115.新增功能代码调取模块,用于根据新增场景策略从功能代码数据库中调取各新增功能代码;
116.新增测试代码生成模块,用于根据各新增功能代码生成新增测试代码,将新增测试代码存储至场景代码数据库。
117.在本发明的一种具体实施方式中,新增场景策略生成模块具体为通过jaccard_index关联关系算法对缺陷管理系统中各已有缺陷间相互关联易出错的场景策略进行学习的模块。
118.在本发明的一种具体实施方式中,新增场景策略生成模块具体为通过apriori关联关系算法对缺陷管理系统中各已有缺陷间相互关联易出错的场景策略进行学习的模块。
119.在本发明的一种具体实施方式中,目标功能代码调取模块35具体为通过预设的第二api接口根据目标场景策略从功能代码数据库中调取各目标功能代码的模块。
120.相应于上面的方法实施例,参见图4,图4为本发明所提供的测试代码生成设备的示意图,该设备可以包括:
121.存储器332,用于存储计算机程序;
122.处理器322,用于执行计算机程序时实现上述方法实施例的测试代码生成方法的步骤。
123.具体的,请参考图5,图5为本实施例提供的一种测试代码生成设备的具体结构示意图,该测试代码生成设备可因配置或性能不同而产生比较大的差异,可以包括处理器(central processing units,cpu)322(例如,一个或一个以上处理器)和存储器332,存储器332存储有一个或一个以上的计算机应用程序342或数据344。其中,存储器332可以是短暂存储或持久存储。存储在存储器332的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对数据处理设备中的一系列指令操作。更进一步地,处理器322可以设置为与存储器332通信,在测试代码生成设备301上执行存储器332中的一系列指令操作。
124.测试代码生成设备301还可以包括一个或一个以上电源326,一个或一个以上有线或无线网络接口350,一个或一个以上输入输出接口358,和/或,一个或一个以上操作系统341。
125.上文所描述的测试代码生成方法中的步骤可以由测试代码生成设备的结构实现。
126.相应于上面的方法实施例,本发明还提供一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时可实现如下步骤:
127.获取新录入的目标缺陷数据;读取目标缺陷数据的摘要信息;提取摘要信息的各关键字;根据各关键字生成目标场景策略;根据目标场景策略从功能代码数据库中调取各目标功能代码;根据各目标功能代码生成目标测试代码,并将目标测试代码存储至场景代码数据库。
128.该计算机可读存储介质可以包括:u盘、移动硬盘、只读存储器(read-only memory,rom)、随机存取存储器(random access memory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。
129.对于本发明提供的计算机可读存储介质的介绍请参照上述方法实施例,本发明在此不做赘述。
130.本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。对于实施例公开的装置、设备及计算机可读存储介质而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
131.本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的技术方案及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

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

相关文献