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

精准测试方法、装置、设备及存储介质与流程

2021-11-06 03:40:00 来源:中国专利 TAG:


1.本技术涉及到人工智能技术领域,特别是涉及到一种精准测试方法、装置、设备及存储介质。


背景技术:

2.精准测试是采用专业的测试手段和方法,对测试过程中的原生数据进行自动采集、存储、运算和可视化展示,对被测对象进行精确的分析、改进和优化,提高了测试效率。而且精准测试在测试用例完备的基础上,将测试用例和代码建立映射关系,基于映射关系完成数据处理,用于冒烟和回归阶段快速地评估出代码改动的影响范围,根据影响范围查找出相应的测试用例,减少了测试成本,提高了测试效率。
3.传统的精准测试,一般采用动态分析和静态分析两种思路来获取测试用例和代码之间映射关系。动态分析采用代码覆盖率工具,在执行测试用例时记录经过的内部方法生成对应的代码覆盖率文件,通过分析代码覆盖率文件获取测试用例和代码之间的映射关系。动态分析方法依赖于代码覆盖率工具,某些开发语言的代码覆盖率工具不完善或不存在,一些代码覆盖率工具存在性能问题且服务的重启和部署可能导致代码覆盖率文件的丢失。静态分析依靠字节码分析获取调用链的一系列父子节点,但字节码分析在多态方面存在天然短板,容易造成代码改动后需要测试的范围的缺失。


技术实现要素:

4.本技术的主要目的为提供一种精准测试方法、装置、设备及存储介质,旨在解决现有技术的精准测试采用动态分析和静态分析两种思路来获取测试用例和代码之间映射关系,动态分析存在代码覆盖率工具不完善或不存在、存在可能导致代码覆盖率文件的丢失的问题,而静态分析存在字节码分析在多态方面存在天然短板,容易造成代码改动后需要测试的范围的缺失的技术问题。
5.为了实现上述发明目的,本技术提出一种精准测试方法,所述方法包括:
6.获取精准测试请求,所述精准测试请求携带有待测应用版本标识和目标基准应用版本标识;
7.获取测试用例编码预测模型库,根据所述目标基准应用版本标识在所述测试用例编码预测模型库中进行测试用例编码预测模型匹配,得到目标测试用例编码预测模型;
8.获取代码库,根据所述代码库、所述待测应用版本标识、所述目标基准应用版本标识和所述目标测试用例编码预测模型进行测试用例编码预测,得到目标测试用例编码数据集;
9.获取测试用例库,根据所述目标测试用例编码数据集和所述测试用例库的映射列表进行测试用例标识确定,得到目标测试用例标识集;
10.根据所述目标测试用例标识集、所述测试用例库的测试用例集、所述代码库、所述目标基准应用版本标识和所述待测应用版本标识进行精准测试,得到精准测试结果。
11.进一步的,所述获取测试用例编码预测模型库的步骤之前,还包括:
12.获取模型训练请求,所述模型训练请求携带有待训练的应用标识;
13.根据所述待训练的应用标识获取训练样本集,所述训练样本集中的训练样本包括:代码特征向量样本、测试用例编码标定数据;
14.采用预设的样本划分规则,对所述训练样本集进行划分,得到训练集和测试集;
15.采用所述训练集对初始模型进行训练,将训练后的所述初始模型作为待验证的模型,其中,所述初始模型是基于深度神经网络得到的模型;
16.采用所述测试集对所述待验证的模型进行验证,得到模型验证结果;
17.当所述模型验证结果为未通过时,将所述待验证的模型作为所述初始模型,重复执行所述采用预设的样本划分规则,对所述训练样本集进行划分,得到训练集和测试集的步骤,直至所述模型验证结果为通过;
18.将所述模型验证结果为通过的所述待验证的模型作为待存储的测试用例编码预测模型;
19.将所述待训练的应用标识和所述待存储的测试用例编码预测模型作为关联数据,根据所述关联数据更新所述测试用例编码预测模型库。
20.进一步的,所述采用预设的样本划分规则,对所述训练样本集进行划分,得到训练集和测试集的步骤,包括:
21.将所述训练样本集的所述训练样本进行排列顺序的随机调整,得到顺序调整后的训练样本集;
22.采用预设划分比例,将所述顺序调整后的训练样本集中的所述训练样本划分成到两个集,得到所述训练集和所述测试集。
23.进一步的,所述初始模型依次包括:第一卷积层、第一最大池化层、第二卷积层、第二最大池化层、第一全连接层、第二全连接层,其中,所述第二全连接层采用sigmoid函数作为激活函数。
24.进一步的,所述根据所述代码库、所述待测应用版本标识、所述目标基准应用版本标识和所述目标测试用例编码预测模型进行测试用例编码预测,得到目标测试用例编码数据集的步骤,包括:
25.根据所述代码库和所述目标基准应用版本标识,对所述待测应用版本标识进行差异代码获取,得到待处理的差异代码;
26.根据所述待处理的差异代码进行特征向量提取,得到待预测的特征向量;
27.将所述待预测的特征向量输入所述目标测试用例编码预测模型进行测试用例编码预测,得到所述目标测试用例编码数据集。
28.进一步的,所述根据所述待处理的差异代码进行特征向量提取,得到待预测的特征向量的步骤,包括:
29.获取类路径关键词,根据所述类路径关键词从所述待处理的差异代码中获取类路径标识,得到待处理的类路径标识集;
30.根据所述待处理的类路径标识集分别进行特征编码、向量化处理及归一化处理,得到类路径特征向量;
31.获取类名关键词,根据所述类名关键词从所述待处理的差异代码中获取类名,得
到待处理的类名集;
32.根据所述待处理的类名集分别进行特征编码、向量化处理及归一化处理,得到类名特征向量;
33.获取接口名关键词,根据所述接口名关键词从所述待处理的差异代码中获取接口名,得到待处理的接口名集;
34.根据所述待处理的接口名集分别进行特征编码、向量化处理及归一化处理,得到接口名特征向量;
35.获取函数名关键词,根据所述函数名关键词从所述待处理的差异代码中获取函数名,得到待处理的函数名集;
36.根据所述待处理的函数名集分别进行特征编码、向量化处理及归一化处理,得到函数名特征向量;
37.获取抽象语法树关键词,根据所述抽象语法树关键词从所述待处理的差异代码中获取抽象语法树标识,得到待处理的抽象语法树标识集;
38.根据所述待处理的抽象语法树标识集分别进行特征编码、向量化处理及归一化处理,得到抽象语法树特征向量;
39.根据所述类路径特征向量、所述类名特征向量、所述接口名特征向量、所述函数名特征向量和所述抽象语法树特征向量进行矩阵拼接,得到所述待预测的特征向量。
40.进一步的,所述根据所述目标测试用例标识集、所述测试用例库的测试用例集、所述代码库、所述目标基准应用版本标识和所述待测应用版本标识进行精准测试,得到精准测试结果的步骤,包括:
41.根据所述目标测试用例标识集,从所述测试用例库的所述测试用例集中获取测试用例,得到待测试的测试用例集;
42.根据所述目标基准应用版本标识和所述待测应用版本标识,从所述代码库中获取差异代码,得到目标差异代码;
43.根据所述待测试的测试用例集对所述目标差异代码进行精准测试,得到所述精准测试结果。
44.本技术还提出了一种精准测试装置,所述装置包括:
45.请求获取模块,用于获取精准测试请求,所述精准测试请求携带有待测应用版本标识和目标基准应用版本标识;
46.目标测试用例编码预测模型确定模块,用于获取测试用例编码预测模型库,根据所述目标基准应用版本标识在所述测试用例编码预测模型库中进行测试用例编码预测模型匹配,得到目标测试用例编码预测模型;
47.目标测试用例编码数据集确定模块,用于获取代码库,根据所述代码库、所述待测应用版本标识、所述目标基准应用版本标识和所述目标测试用例编码预测模型进行测试用例编码预测,得到目标测试用例编码数据集;
48.目标测试用例标识集确定模块,用于获取测试用例库,根据所述目标测试用例编码数据集和所述测试用例库的映射列表进行测试用例标识确定,得到目标测试用例标识集;
49.精准测试结果确定模块,用于根据所述目标测试用例标识集、所述测试用例库的
测试用例集、所述代码库、所述目标基准应用版本标识和所述待测应用版本标识进行精准测试,得到精准测试结果。
50.本技术还提出了一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现上述任一项所述方法的步骤。
51.本技术还提出了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述任一项所述的方法的步骤。
52.本技术的精准测试方法、装置、设备及存储介质,其中方法通过首先获取精准测试请求,所述精准测试请求携带有待测应用版本标识和目标基准应用版本标识,其次根据所述目标基准应用版本标识在所述测试用例编码预测模型库中进行测试用例编码预测模型匹配,得到目标测试用例编码预测模型,然后根据所述代码库、所述待测应用版本标识、所述目标基准应用版本标识和所述目标测试用例编码预测模型进行测试用例编码预测,得到目标测试用例编码数据集,根据所述目标测试用例编码数据集和所述测试用例库的映射列表进行测试用例标识确定,得到目标测试用例标识集,最后根据所述目标测试用例标识集、所述测试用例库的测试用例集、所述代码库、所述目标基准应用版本标识和所述待测应用版本标识进行精准测试,得到精准测试结果,通过目标测试用例编码预测模型提高了确定的目标测试用例标识集的准确性,从而提高了精准测试的准确性,而且整个过程不局限于应用开发的语言,弥补了采用动态分析和静态分析两种思路来获取测试用例和代码之间映射关系的弊端。
附图说明
53.图1为本技术一实施例的精准测试方法的流程示意图;
54.图2为本技术一实施例的精准测试装置的结构示意框图;
55.图3为本技术一实施例的计算机设备的结构示意框图。
56.本技术目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
57.为了使本技术的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本技术进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本技术,并不用于限定本技术。
58.参照图1,本技术实施例中提供一种精准测试方法,所述方法包括:
59.s1:获取精准测试请求,所述精准测试请求携带有待测应用版本标识和目标基准应用版本标识;
60.s2:获取测试用例编码预测模型库,根据所述目标基准应用版本标识在所述测试用例编码预测模型库中进行测试用例编码预测模型匹配,得到目标测试用例编码预测模型;
61.s3:获取代码库,根据所述代码库、所述待测应用版本标识、所述目标基准应用版本标识和所述目标测试用例编码预测模型进行测试用例编码预测,得到目标测试用例编码数据集;
62.s4:获取测试用例库,根据所述目标测试用例编码数据集和所述测试用例库的映
射列表进行测试用例标识确定,得到目标测试用例标识集;
63.s5:根据所述目标测试用例标识集、所述测试用例库的测试用例集、所述代码库、所述目标基准应用版本标识和所述待测应用版本标识进行精准测试,得到精准测试结果。
64.本实施例通过首先获取精准测试请求,所述精准测试请求携带有待测应用版本标识和目标基准应用版本标识,其次根据所述目标基准应用版本标识在所述测试用例编码预测模型库中进行测试用例编码预测模型匹配,得到目标测试用例编码预测模型,然后根据所述代码库、所述待测应用版本标识、所述目标基准应用版本标识和所述目标测试用例编码预测模型进行测试用例编码预测,得到目标测试用例编码数据集,根据所述目标测试用例编码数据集和所述测试用例库的映射列表进行测试用例标识确定,得到目标测试用例标识集,最后根据所述目标测试用例标识集、所述测试用例库的测试用例集、所述代码库、所述目标基准应用版本标识和所述待测应用版本标识进行精准测试,得到精准测试结果,通过目标测试用例编码预测模型提高了确定的目标测试用例标识集的准确性,从而提高了精准测试的准确性,而且整个过程不局限于应用开发的语言,弥补了采用动态分析和静态分析两种思路来获取测试用例和代码之间映射关系的弊端。
65.对于s1,可以获取用户输入的精准测试请求,也可以获取第三方应用系统发送的精准测试请求,也可以是实现本技术的程序根据预设触发条件触发的精准测试请求。比如,所述预设触发条件为每天3点,在此举例不做具体限定。
66.精准测试请求,是对所述待测应用版本标识和所述目标基准应用版本标识对应的差异代码进行精准测试的请求。
67.所述待测应用版本标识,是目标应用需要测试的版本的应用版本标识。
68.所述目标基准应用版本标识,是所述精准测试请求采用的基准应用版本标识。基准应用版本标识是所述目标应用已发布到生产环境并且运行稳定的版本的应用版本标识。
69.应用版本标识,是应用版本id。
70.对于s2,可以从数据库中获取测试用例编码预测模型库,也可以从第三方应用系统中获取测试用例编码预测模型库。
71.所述测试用例编码预测模型库包括:应用标识、测试用例编码预测模型,每个应用标识对应一个测试用例编码预测模型。所述测试用例编码预测模型是基于深度神经网络训练得到的模型。
72.应用标识是应用id。
73.其中,根据所述目标基准应用版本标识获取应用标识,得到待匹配的应用标识;将所述待匹配的应用标识在所述测试用例编码预测模型库中进行匹配,将在所述测试用例编码预测模型库中匹配到的应用标识对应的测试用例编码预测模型作为目标测试用例编码预测模型。
74.对于s3,从代码仓库服务器中获取代码库;根据所述代码库、所述待测应用版本标识、所述目标基准应用版本标识确定差异代码,根据差异代码进行特征向量提取,将提取的所有特征向量输入所述目标测试用例编码预测模型进行测试用例编码的预测,得到所述目标测试用例编码数据集。
75.比如,代码仓库服务器采用gitlab(是利用ruby on rails开发的开源应用程序,实现一个自托管的git项目仓库),在此举例不做具体限定。
76.对于s4,可以从数据库中获取测试用例库,也可以从第三方应用系统中获取测试用例库。
77.测试用例库包括:映射列表、测试用例集。所述映射列表包括:测试用例标识和测试用例编码数据,每个测试用例标识对应一个测试用例编码数据。测试用例标识可以是测试用例名称、测试用例id等唯一标识一个测试用例的数据。测试用例编码数据,是采用编码词典对测试用例标识进行编码得到的数据。所述测试用例集中包括一个或多个测试用例,每个测试用例携带有测试用例标识。可以理解的是,测试用例中可以包括一个或多个测试子用例。
78.可选的,所述测试用例编码数据是对测试用例标识进行独热编码得到的编码数据。
79.其中,分别根据所述目标测试用例编码数据集中的每个测试用例编码数据,在所述测试用例库的映射列表中进行测试用例编码数据查找,将在所述测试用例库的映射列表中查找到的每个测试用例编码数据对应的测试用例标识作为一个目标测试用例标识,根据所有所述目标测试用例标识得到目标测试用例标识集。
80.对于s5,根据所述目标测试用例标识集从所述测试用例库的测试用例集中获取测试用例,将获取的测试用例测试对根据所述代码库、所述待测应用版本标识、所述目标基准应用版本标识确定的差异代码进行精准测试,将测试得到的数据作为精准测试结果。
81.在一个实施例中,上述获取测试用例编码预测模型库的步骤之前,还包括:
82.s21:获取模型训练请求,所述模型训练请求携带有待训练的应用标识;
83.s22:根据所述待训练的应用标识获取训练样本集,所述训练样本集中的训练样本包括:代码特征向量样本、测试用例编码标定数据;
84.s23:采用预设的样本划分规则,对所述训练样本集进行划分,得到训练集和测试集;
85.s24:采用所述训练集对初始模型进行训练,将训练后的所述初始模型作为待验证的模型,其中,所述初始模型是基于深度神经网络得到的模型;
86.s25:采用所述测试集对所述待验证的模型进行验证,得到模型验证结果;
87.s26:当所述模型验证结果为未通过时,将所述待验证的模型作为所述初始模型,重复执行所述采用预设的样本划分规则,对所述训练样本集进行划分,得到训练集和测试集的步骤,直至所述模型验证结果为通过;
88.s27:将所述模型验证结果为通过的所述待验证的模型作为待存储的测试用例编码预测模型;
89.s28:将所述待训练的应用标识和所述待存储的测试用例编码预测模型作为关联数据,根据所述关联数据更新所述测试用例编码预测模型库。
90.本实施例实现了采用训练集训练初始模型和测试集测试训练后的初始模型,初始模型是基于深度神经网络得到的模型,从而提高了确定的待存储的测试用例编码预测模型的准确性。
91.对于s21,可以获取用户输入的模型训练请求,也可以获取第三方应用系统发送的模型训练请求。
92.模型训练请求,也就是对初始模型进行训练得到测试用例编码预测模型的请求。
93.待训练的应用标识,是需要训练测试用例编码预测模型的应用的应用标识。
94.对于s22,可以根据所述待训练的应用标识获取用户输入的训练样本集,也可以根据所述待训练的应用标识获取第三方应用系统发送的训练样本集。也就是说,训练样本集的数据是针对所述待训练的应用标识的数据。
95.可以理解的是,所述训练样本是基于人工标注和/或代码覆盖率工具得到的训练样本。
96.所述代码特征向量样本,是所述待训练的应用标识的需要预测的应用版本标识对应的代码相对所述待训练的应用标识对应的基准应用版本标识对应的差异代码的差异提取得到的向量。
97.所述代码特征向量样本中包括但不限于:类路径特征向量样本、类名特征向量样本、接口名特征向量样本、函数名特征向量样本、抽象语法树特征向量样本。类路径特征向量样本,是对待训练的应用标识对应的差异代码中的类路径进行特征编码、向量化、归一化后得到标准化的特征向量。类名特征向量样本,是对待训练的应用标识对应的差异代码中的类名进行特征编码、向量化、归一化后得到标准化的特征向量。接口名特征向量样本,是对待训练的应用标识对应的差异代码中的接口名进行特征编码、向量化、归一化后得到标准化的特征向量。函数名特征向量样本,是对待训练的应用标识对应的差异代码中的函数名进行特征编码、向量化、归一化后得到标准化的特征向量。抽象语法树特征向量样本,是对待训练的应用标识对应的差异代码中的抽象语法树进行特征编码、向量化、归一化后得到标准化的特征向量。
98.测试用例编码标定数据,是对代码特征向量样本需要的测试用例的测试用例编码数据的标定结果。比如,测试用例编码标定数据是一个编码向量,每个向量元素是0到1的数值(可以包括0,也可以包括1),当向量元素为1时意味着该向量元素对应的测试用例是所述待训练的应用标识需要的测试用例。也就是说,测试用例编码标定数据中的向量元素的数量和所述待训练的应用标识对应的测试用例的数量相同。
99.对于s23,采用预设划分比例,将所述训练样本集中的训练样本划分成到两个集合,得到训练集和测试集。
100.比如,预设划分比例为:7:3,也就是说,将所述训练样本集中的70%的训练样本划分到训练集,将所述训练样本集中的30%的训练样本划分到测试集,在此举例不做具体限定。
101.对于s24,在采用所述训练集对初始模型进行训练时,初始模型的损失函数是二进制交叉熵。
102.采用所述训练集对初始模型进行训练的具体步骤在此不做赘述。
103.对于s25,采用所述测试集对所述待验证的模型进行验证,当验证结果符合预期验证要求时确定所述模型验证结果为通过,当验证结果不符合预期验证要求时确定所述模型验证结果为未通过。
104.采用所述测试集对所述待验证的模型进行验证的具体步骤在此不做赘述。
105.对于s26,当所述模型验证结果为未通过时,意味着所述待验证的模型还不符合预期验证要求,因此可以将所述待验证的模型作为所述初始模型,重复执行步骤s23至步骤s26,直至所述模型验证结果为通过。
106.对于s27,当所述模型验证结果为通过时,意味着所述待验证的模型还符合预期验证要求,因此可以将所述模型验证结果为通过的所述待验证的模型作为待存储的测试用例编码预测模型。
107.待存储的测试用例编码预测模型,也就是需要存储到所述测试用例编码预测模型库中的测试用例编码预测模型。
108.对于s28,将所述待训练的应用标识和所述待存储的测试用例编码预测模型作为关联数据,根据所述关联数据更新所述测试用例编码预测模型库,也就是将所述待训练的应用标识存储到所述测试用例编码预测模型库的应用标识,将所述待存储的测试用例编码预测模型存储到所述测试用例编码预测模型库的测试用例编码预测模型。
109.在一个实施例中,上述采用预设的样本划分规则,对所述训练样本集进行划分,得到训练集和测试集的步骤,包括:
110.s231:将所述训练样本集的所述训练样本进行排列顺序的随机调整,得到顺序调整后的训练样本集;
111.s232:采用预设划分比例,将所述顺序调整后的训练样本集中的所述训练样本划分成到两个集,得到所述训练集和所述测试集。
112.本实施例将所述训练样本集的所述训练样本进行排列顺序的随机调整,然后采用预设划分比例,将所述顺序调整后的训练样本集中的所述训练样本划分成到两个集,从而实现了在每次迭代训练时进行交叉验证,有利于提高模型训练的准确性,有利于提高模型训练的效率。
113.对于s231,在每次迭代训练中,将所述训练样本集的所有所述训练样本的排列顺序进行随机调整,将完成调整的所述训练样本集作为所述顺序调整后的训练样本集。
114.对于s232,采用预设划分比例,将所述顺序调整后的训练样本集中的所述训练样本划分成到两个集,得到所述训练集和所述测试集。从而使每次迭代训练的所述训练集可以不相同,每次迭代训练的所述测试集可以不相同。
115.在一个实施例中,上述初始模型依次包括:第一卷积层、第一最大池化层、第二卷积层、第二最大池化层、第一全连接层、第二全连接层,其中,所述第二全连接层采用sigmoid函数作为激活函数。
116.本实施例基于深度神经网络得到的初始模型,因深度神经网络也能够为复杂非线性系统提供建模,但多出的层次为模型提供了更高的抽象层次,因而提高了模型的能力,提高了训练得到的测试用例编码预测模型的准确性。
117.其中,第一卷积层和第二卷积层均为卷积层。第一最大池化层和第二最大池化层均为最大池化层。第一全连接层和第二全连接层均为全连接层。
118.其中,第一卷积层、第一最大池化层、第二卷积层、第二最大池化层、第一全连接层用于特征提取,第二全连接层采用sigmoid函数作为最后的输出层。
119.在一个实施例中,上述根据所述代码库、所述待测应用版本标识、所述目标基准应用版本标识和所述目标测试用例编码预测模型进行测试用例编码预测,得到目标测试用例编码数据集的步骤,包括:
120.s31:根据所述代码库和所述目标基准应用版本标识,对所述待测应用版本标识进行差异代码获取,得到待处理的差异代码;
121.s32:根据所述待处理的差异代码进行特征向量提取,得到待预测的特征向量;
122.s33:将所述待预测的特征向量输入所述目标测试用例编码预测模型进行测试用例编码预测,得到所述目标测试用例编码数据集。
123.本实施例实现了根据所述待处理的差异代码进行特征向量提取,然后将提取的所有特征向量输入所述目标测试用例编码预测模型进行测试用例编码预测,通过目标测试用例编码预测模型提高了确定的目标测试用例标识集的准确性,从而提高了精准测试的准确性,而且整个过程不局限于应用开发的语言,弥补了采用动态分析和静态分析两种思路来获取测试用例和代码之间映射关系的弊端。
124.对于s31,根据所述待测应用版本标识的代码配置数据与所述目标基准应用版本标识的代码配置数据的差异,从所述代码库获取差异代码,将获取的差异代码作为所述待处理的差异代码。也就是说,所述待处理的差异代码是所述待测应用版本标识的代码相对所述目标基准应用版本标识的代码的差异。
125.对于s32,根据所述待处理的差异代码的类路径、类名、接口名、函数名和抽象语法树分别进行特征向量提取,将提取得到的所有特征向量作为所述待预测的特征向量。
126.对于s33,将所述待预测的特征向量输入所述目标测试用例编码预测模型进行测试用例编码数据的预测,将得到的所有测试用例编码数据作为所述目标测试用例编码数据集。
127.在一个实施例中,上述根据所述待处理的差异代码进行特征向量提取,得到待预测的特征向量的步骤,包括:
128.s321:获取类路径关键词,根据所述类路径关键词从所述待处理的差异代码中获取类路径标识,得到待处理的类路径标识集;
129.s322:根据所述待处理的类路径标识集分别进行特征编码、向量化处理及归一化处理,得到类路径特征向量;
130.s323:获取类名关键词,根据所述类名关键词从所述待处理的差异代码中获取类名,得到待处理的类名集;
131.s324:根据所述待处理的类名集分别进行特征编码、向量化处理及归一化处理,得到类名特征向量;
132.s325:获取接口名关键词,根据所述接口名关键词从所述待处理的差异代码中获取接口名,得到待处理的接口名集;
133.s326:根据所述待处理的接口名集分别进行特征编码、向量化处理及归一化处理,得到接口名特征向量;
134.s327:获取函数名关键词,根据所述函数名关键词从所述待处理的差异代码中获取函数名,得到待处理的函数名集;
135.s328:根据所述待处理的函数名集分别进行特征编码、向量化处理及归一化处理,得到函数名特征向量;
136.s329:获取抽象语法树关键词,根据所述抽象语法树关键词从所述待处理的差异代码中获取抽象语法树标识,得到待处理的抽象语法树标识集;
137.s3210:根据所述待处理的抽象语法树标识集分别进行特征编码、向量化处理及归一化处理,得到抽象语法树特征向量;
138.s3211:根据所述类路径特征向量、所述类名特征向量、所述接口名特征向量、所述函数名特征向量和所述抽象语法树特征向量进行矩阵拼接,得到所述待预测的特征向量。
139.本实施例根据所述待处理的差异代码的类路径、类名、接口名、函数名和抽象语法树分别进行特征向量提取,为后续采用所述目标测试用例编码预测模型进行测试用例编码数据的预测提供了基础。
140.对于s321,可以从数据库中获取的类路径关键词,也可以获取第三方应用系统发送的类路径关键词。
141.其中,将所述类路径关键词从所述待处理的差异代码中进行查找,将在所述待处理的差异代码中查找到的每个关键词的下一个字符串作为一个类路径标识,将获取的所有类路径标识作为所述待处理的类路径标识集。
142.对于s322,根据所述待处理的类路径标识集分别进行特征编码、向量化处理及归一化处理,将归一化处理的特征向量作为所述类路径特征向量。
143.其中,采用独热编码,对所述待处理的类路径标识集进行特征编码。
144.对于s323,可以从数据库中获取的类名关键词,也可以获取第三方应用系统发送的类名关键词。
145.其中,将所述类名关键词从所述待处理的差异代码中进行查找,将在所述待处理的差异代码中查找到的每个关键词的下一个字符串作为一个类名,将获取的所有类名作为所述待处理的类名集。
146.对于s324,根据所述待处理的类名集分别进行特征编码、向量化处理及归一化处理,将归一化处理的特征向量作为所述类名特征向量。
147.其中,采用独热编码,对所述待处理的类名集进行特征编码。
148.对于s325,可以从数据库中获取的接口名关键词,也可以获取第三方应用系统发送的接口名关键词。
149.其中,将所述接口名关键词从所述待处理的差异代码中进行查找,将在所述待处理的差异代码中查找到的每个关键词的下一个字符串作为一个接口名,将获取的所有接口名作为所述待处理的接口名集。
150.对于s326,根据所述待处理的接口名集分别进行特征编码、向量化处理及归一化处理,将归一化处理的特征向量作为所述接口名特征向量。
151.其中,采用独热编码,对所述待处理的接口名集进行特征编码。
152.对于s327,可以从数据库中获取的函数名关键词,也可以获取第三方应用系统发送的函数名关键词。
153.其中,将所述函数名关键词从所述待处理的差异代码中进行查找,将在所述待处理的差异代码中查找到的每个关键词的下一个字符串作为一个函数名,将获取的所有函数名作为所述待处理的函数名集。
154.对于s328,根据所述待处理的函数名集分别进行特征编码、向量化处理及归一化处理,将归一化处理的特征向量作为所述函数名特征向量。
155.其中,采用独热编码,对所述待处理的函数名集进行特征编码。
156.对于s329,可以从数据库中获取的抽象语法树关键词,也可以获取第三方应用系统发送的抽象语法树关键词。
157.其中,将所述抽象语法树关键词从所述待处理的差异代码中进行查找,将在所述待处理的差异代码中查找到的每个关键词的下一个字符串作为一个抽象语法树标识,将获取的所有抽象语法树标识作为所述待处理的抽象语法树标识集。
158.对于s3210,根据所述待处理的抽象语法树标识集分别进行特征编码、向量化处理及归一化处理,将归一化处理的特征向量作为所述抽象语法树特征向量。
159.其中,采用独热编码,对所述待处理的抽象语法树标识集进行特征编码。
160.对于s3211,将所述类路径特征向量、所述类名特征向量、所述接口名特征向量、所述函数名特征向量和所述抽象语法树特征向量进行矩阵拼接,得到所述待预测的特征向量。
161.在一个实施例中,上述根据所述目标测试用例标识集、所述测试用例库的测试用例集、所述代码库、所述目标基准应用版本标识和所述待测应用版本标识进行精准测试,得到精准测试结果的步骤,包括:
162.s51:根据所述目标测试用例标识集,从所述测试用例库的所述测试用例集中获取测试用例,得到待测试的测试用例集;
163.s52:根据所述目标基准应用版本标识和所述待测应用版本标识,从所述代码库中获取差异代码,得到目标差异代码;
164.s53:根据所述待测试的测试用例集对所述目标差异代码进行精准测试,得到所述精准测试结果。
165.本实施例根据所述目标测试用例标识集、所述测试用例库的测试用例集、所述代码库、所述目标基准应用版本标识和所述待测应用版本标识进行精准测试,从而实现了对所述待测应用版本标识对应的应用进行差异代码的精准测试,提高了测试效率。
166.对于s51,分别将所述目标测试用例标识集中的每个目标测试用例标识,在所述测试用例库的所述测试用例集中进行查找,将在所述测试用例集中查找到的测试用例标识对应的测试用例作为待测试的测试用例,将所有所述待测试的测试用例作为所述待测试的测试用例集。
167.对于s52,根据所述待测应用版本标识的代码配置数据与所述目标基准应用版本标识的代码配置数据的差异,从所述代码库获取差异代码,将获取的差异代码作为所述目标差异代码。
168.对于s53,根据所述待测试的测试用例集对所述目标差异代码进行精准测试的具体步骤在此不做赘述。
169.参照图2,本技术还提出了一种精准测试装置,所述装置包括:
170.请求获取模块100,用于获取精准测试请求,所述精准测试请求携带有待测应用版本标识和目标基准应用版本标识;
171.目标测试用例编码预测模型确定模块200,用于获取测试用例编码预测模型库,根据所述目标基准应用版本标识在所述测试用例编码预测模型库中进行测试用例编码预测模型匹配,得到目标测试用例编码预测模型;
172.目标测试用例编码数据集确定模块300,用于获取代码库,根据所述代码库、所述待测应用版本标识、所述目标基准应用版本标识和所述目标测试用例编码预测模型进行测试用例编码预测,得到目标测试用例编码数据集;
173.目标测试用例标识集确定模块400,用于获取测试用例库,根据所述目标测试用例编码数据集和所述测试用例库的映射列表进行测试用例标识确定,得到目标测试用例标识集;
174.精准测试结果确定模块500,用于根据所述目标测试用例标识集、所述测试用例库的测试用例集、所述代码库、所述目标基准应用版本标识和所述待测应用版本标识进行精准测试,得到精准测试结果。
175.本实施例通过首先获取精准测试请求,所述精准测试请求携带有待测应用版本标识和目标基准应用版本标识,其次根据所述目标基准应用版本标识在所述测试用例编码预测模型库中进行测试用例编码预测模型匹配,得到目标测试用例编码预测模型,然后根据所述代码库、所述待测应用版本标识、所述目标基准应用版本标识和所述目标测试用例编码预测模型进行测试用例编码预测,得到目标测试用例编码数据集,根据所述目标测试用例编码数据集和所述测试用例库的映射列表进行测试用例标识确定,得到目标测试用例标识集,最后根据所述目标测试用例标识集、所述测试用例库的测试用例集、所述代码库、所述目标基准应用版本标识和所述待测应用版本标识进行精准测试,得到精准测试结果,通过目标测试用例编码预测模型提高了确定的目标测试用例标识集的准确性,从而提高了精准测试的准确性,而且整个过程不局限于应用开发的语言,弥补了采用动态分析和静态分析两种思路来获取测试用例和代码之间映射关系的弊端。
176.参照图3,本技术实施例中还提供一种计算机设备,该计算机设备可以是服务器,其内部结构可以如图3所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设计的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于储存精准测试方法等数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种精准测试方法。所述精准测试方法,包括:获取精准测试请求,所述精准测试请求携带有待测应用版本标识和目标基准应用版本标识;获取测试用例编码预测模型库,根据所述目标基准应用版本标识在所述测试用例编码预测模型库中进行测试用例编码预测模型匹配,得到目标测试用例编码预测模型;获取代码库,根据所述代码库、所述待测应用版本标识、所述目标基准应用版本标识和所述目标测试用例编码预测模型进行测试用例编码预测,得到目标测试用例编码数据集;获取测试用例库,根据所述目标测试用例编码数据集和所述测试用例库的映射列表进行测试用例标识确定,得到目标测试用例标识集;根据所述目标测试用例标识集、所述测试用例库的测试用例集、所述代码库、所述目标基准应用版本标识和所述待测应用版本标识进行精准测试,得到精准测试结果。
177.本实施例通过首先获取精准测试请求,所述精准测试请求携带有待测应用版本标识和目标基准应用版本标识,其次根据所述目标基准应用版本标识在所述测试用例编码预测模型库中进行测试用例编码预测模型匹配,得到目标测试用例编码预测模型,然后根据所述代码库、所述待测应用版本标识、所述目标基准应用版本标识和所述目标测试用例编码预测模型进行测试用例编码预测,得到目标测试用例编码数据集,根据所述目标测试用例编码数据集和所述测试用例库的映射列表进行测试用例标识确定,得到目标测试用例标
识集,最后根据所述目标测试用例标识集、所述测试用例库的测试用例集、所述代码库、所述目标基准应用版本标识和所述待测应用版本标识进行精准测试,得到精准测试结果,通过目标测试用例编码预测模型提高了确定的目标测试用例标识集的准确性,从而提高了精准测试的准确性,而且整个过程不局限于应用开发的语言,弥补了采用动态分析和静态分析两种思路来获取测试用例和代码之间映射关系的弊端。
178.本技术一实施例还提供一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现一种精准测试方法,包括步骤:获取精准测试请求,所述精准测试请求携带有待测应用版本标识和目标基准应用版本标识;获取测试用例编码预测模型库,根据所述目标基准应用版本标识在所述测试用例编码预测模型库中进行测试用例编码预测模型匹配,得到目标测试用例编码预测模型;获取代码库,根据所述代码库、所述待测应用版本标识、所述目标基准应用版本标识和所述目标测试用例编码预测模型进行测试用例编码预测,得到目标测试用例编码数据集;获取测试用例库,根据所述目标测试用例编码数据集和所述测试用例库的映射列表进行测试用例标识确定,得到目标测试用例标识集;根据所述目标测试用例标识集、所述测试用例库的测试用例集、所述代码库、所述目标基准应用版本标识和所述待测应用版本标识进行精准测试,得到精准测试结果。
179.上述执行的精准测试方法,通过首先获取精准测试请求,所述精准测试请求携带有待测应用版本标识和目标基准应用版本标识,其次根据所述目标基准应用版本标识在所述测试用例编码预测模型库中进行测试用例编码预测模型匹配,得到目标测试用例编码预测模型,然后根据所述代码库、所述待测应用版本标识、所述目标基准应用版本标识和所述目标测试用例编码预测模型进行测试用例编码预测,得到目标测试用例编码数据集,根据所述目标测试用例编码数据集和所述测试用例库的映射列表进行测试用例标识确定,得到目标测试用例标识集,最后根据所述目标测试用例标识集、所述测试用例库的测试用例集、所述代码库、所述目标基准应用版本标识和所述待测应用版本标识进行精准测试,得到精准测试结果,通过目标测试用例编码预测模型提高了确定的目标测试用例标识集的准确性,从而提高了精准测试的准确性,而且整个过程不局限于应用开发的语言,弥补了采用动态分析和静态分析两种思路来获取测试用例和代码之间映射关系的弊端。
180.本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本技术所提供的和实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可以包括只读存储器(rom)、可编程rom(prom)、电可编程rom(eprom)、电可擦除可编程rom(eeprom)或闪存。易失性存储器可包括随机存取存储器(ram)或者外部高速缓冲存储器。作为说明而非局限,ram以多种形式可得,诸如静态ram(sram)、动态ram(dram)、同步dram(sdram)、双速据率sdram(ssrsdram)、增强型sdram(esdram)、同步链路(synchlink)dram(sldram)、存储器总线(rambus)直接ram(rdram)、直接存储器总线动态ram(drdram)、以及存储器总线动态ram(rdram)等。
181.需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、装置、物品或者方法不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、装置、物品或者方法所固有
的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括该要素的过程、装置、物品或者方法中还存在另外的相同要素。
182.以上所述仅为本技术的优选实施例,并非因此限制本技术的专利范围,凡是利用本技术说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本技术的专利保护范围内。
再多了解一些

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

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

相关文献