函数区间智能分析的测试方法、系统及介质与流程

文档序号:32898152发布日期:2023-01-13 00:58阅读:47来源:国知局
函数区间智能分析的测试方法、系统及介质与流程

1.本发明涉及函数区间测试的技术领域,具体地,涉及函数区间智能分析的测试方法、系统及介质,尤其涉及一种函数区间智能分析的精准测试方法。


背景技术:

2.目前的测试工作无法确定测试范围,造成大量冗余测试;在公开号为cn101894064a的专利文献中公开了一种应用跨函数分析的软件测试方法,通过定义函数摘要信息及其前置信息、后置信息、约束信息和特征信息,对程序中不同类型的缺陷检测相应地规定了判定方法;而且在软件测试过程中通过收集函数摘要信息,并将其应用在控制流图的语句节点上和缺陷模式的判定过程中,在测试完成后输出被测程序中所有函数的摘要信息。
3.因此,需要提出一种新的技术方案以改善上述技术问题。


技术实现要素:

4.针对现有技术中的缺陷,本发明的目的是提供一种函数区间智能分析的测试方法、系统及介质。
5.根据本发明提供的一种函数区间智能分析的测试方法,所述方法包括如下步骤:
6.步骤s1:通过静态函数分析,获取函数标识信息并存储;
7.步骤s2:通过接口训练得到代码行覆盖区间信息,结合函数标识信息,获取接口-函数标识关联度;
8.步骤s3:通过函数变更区间、接口覆盖区间、函数关联度,推荐影响接口列表。
9.优选地,所述步骤s1包括如下步骤:
10.步骤s1.1:对代码库进行静态函数代码分析;
11.步骤s1.2:记录函数路径,模块-包名-类名-函数;
12.步骤s1.3:记录函数代码行区间信息;
13.步骤s1.4:使用函数路径+代码行区间信息生成函数关键标识。
14.优选地,所述步骤s2包括如下步骤:
15.步骤s2.1:执行接口调用,获取代码行覆盖信息,记录接口覆盖区间信息;
16.步骤s2.2:按照匹配行数和函数区间计算函数关联度,建立接口-函数标识关联度库;
17.步骤s2.3:按照关联度去重接口训练列表。
18.优选地,所述步骤s3包括如下步骤:
19.步骤s3.1:获取不同版本间有效代码行变更信息;
20.步骤s3.2:通过函数标识获取代码行相对位置,通过相对位置计算函数实际变更区间;
21.步骤s3.3:通过函数实际变更区间,接口覆盖区间,函数关联度进行匹配,计算出
受影响接口;
22.步骤s3.4:推荐影响接口列表。
23.本发明还提供一种函数区间智能分析的测试系统,所述系统包括如下模块:
24.模块m1:通过静态函数分析,获取函数标识信息并存储;
25.模块m2:通过接口训练得到代码行覆盖区间信息,结合函数标识信息,获取接口-函数标识关联度;
26.模块m3:通过函数变更区间、接口覆盖区间、函数关联度,推荐影响接口列表。
27.优选地,所述模块m1包括如下模块:
28.模块m1.1:对代码库进行静态函数代码分析;
29.模块m1.2:记录函数路径,模块-包名-类名-函数;
30.模块m1.3:记录函数代码行区间信息;
31.模块m1.4:使用函数路径+代码行区间信息生成函数关键标识。
32.优选地,所述模块m2包括如下模块:
33.模块m2.1:执行接口调用,获取代码行覆盖信息,记录接口覆盖区间信息;
34.模块m2.2:按照匹配行数和函数区间计算函数关联度,建立接口-函数标识关联度库;
35.模块m2.3:按照关联度去重接口训练列表。
36.优选地,所述模块m3包括如下模块:
37.模块m3.1:获取不同版本间有效代码行变更信息;
38.模块m3.2:通过函数标识获取代码行相对位置,通过相对位置计算函数实际变更区间;
39.模块m3.3:通过函数实际变更区间,接口覆盖区间,函数关联度进行匹配,计算出受影响接口;
40.模块m3.4:推荐影响接口列表。
41.本发明还提供一种存储有计算机程序的计算机可读存储介质,所述计算机程序被处理器执行时实现上述中的方法的步骤。
42.与现有技术相比,本发明具有如下的有益效果:
43.1、本发明主要解决目前测试工作无法确定测试范围,造成大量冗余测试的问题;
44.2、本发明在进行精准测试时,会自动建立接口-函数标识关联度库,通过有效变更区间分析,能够从代码行区间层面自动分析出最小影响范围,并按照函数区间关联度自动进行接口收敛。
附图说明
45.通过阅读参照以下附图对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:
46.图1为本发明的流程原理图。
具体实施方式
47.下面结合具体实施例对本发明进行详细说明。以下实施例将有助于本领域的技术
人员进一步理解本发明,但不以任何形式限制本发明。应当指出的是,对本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变化和改进。这些都属于本发明的保护范围。
48.实施例1:
49.根据本发明提供的一种函数区间智能分析的测试方法,方法包括如下步骤:
50.步骤s1:通过静态函数分析,获取函数标识信息并存储;
51.步骤s1.1:对代码库进行静态函数代码分析;
52.步骤s1.2:记录函数路径,模块-包名-类名-函数;
53.步骤s1.3:记录函数代码行区间信息;
54.步骤s1.4:使用函数路径+代码行区间信息生成函数关键标识。
55.步骤s2:通过接口训练得到代码行覆盖区间信息,结合函数标识信息,获取接口-函数标识关联度;
56.步骤s2.1:执行接口调用,获取代码行覆盖信息,记录接口覆盖区间信息;
57.步骤s2.2:按照匹配行数和函数区间计算函数关联度,建立接口-函数标识关联度库;
58.步骤s2.3:按照关联度去重接口训练列表。
59.步骤s3:通过函数变更区间、接口覆盖区间、函数关联度,推荐影响接口列表。
60.步骤s3.1:获取不同版本间有效代码行变更信息;
61.步骤s3.2:通过函数标识获取代码行相对位置,通过相对位置计算函数实际变更区间;
62.步骤s3.3:通过函数实际变更区间,接口覆盖区间,函数关联度进行匹配,计算出受影响接口;
63.步骤s3.4:推荐影响接口列表。
64.本发明还提供一种存储有计算机程序的计算机可读存储介质,计算机程序被处理器执行时实现上述中的方法的步骤。
65.实施例2:
66.实施例2为实施例1的优选例,以更为具体地对本发明进行说明。
67.本发明还提供一种函数区间智能分析的测试系统,系统包括如下模块:
68.模块m1:通过静态函数分析,获取函数标识信息并存储;
69.模块m1.1:对代码库进行静态函数代码分析;
70.模块m1.2:记录函数路径,模块-包名-类名-函数;
71.模块m1.3:记录函数代码行区间信息;
72.模块m1.4:使用函数路径+代码行区间信息生成函数关键标识。
73.模块m2:通过接口训练得到代码行覆盖区间信息,结合函数标识信息,获取接口-函数标识关联度;
74.模块m2.1:执行接口调用,获取代码行覆盖信息,记录接口覆盖区间信息;
75.模块m2.2:按照匹配行数和函数区间计算函数关联度,建立接口-函数标识关联度库;
76.模块m2.3:按照关联度去重接口训练列表。
77.模块m3:通过函数变更区间、接口覆盖区间、函数关联度,推荐影响接口列表。
78.模块m3.1:获取不同版本间有效代码行变更信息;
79.模块m3.2:通过函数标识获取代码行相对位置,通过相对位置计算函数实际变更区间;
80.模块m3.3:通过函数实际变更区间,接口覆盖区间,函数关联度进行匹配,计算出受影响接口;
81.模块m3.4:推荐影响接口列表。
82.实施例3:
83.实施例3为实施例1的优选例,以更为具体地对本发明进行说明。
84.本发明公开了一种函数区间智能分析的精准测试方法,主要解决目前测试工作无法确定测试范围,造成大量冗余测试的问题。本发明在进行精准测试时,会自动建立接口-函数标识关联度库,通过有效变更区间分析,能够从代码行区间层面自动分析出最小影响范围,并按照函数区间关联度自动进行接口收敛,与现阶段方法相比,该发明的方法能得到更好的精准测试效果。
85.本发明实现过程主要分为函数分析、接口训练、智能推荐三个步骤,其实现过程为:
86.步骤1:通过静态函数分析,获取函数关键标识信息并存储。
87.步骤2:通过接口训练得到代码行覆盖区间信息,结合函数标识,获取接口-函数标识关联度。
88.步骤3:通过函数变更区间、接口覆盖区间、函数关联度,智能推荐影响接口列表。
89.所述步骤1包括如下步骤:
90.步骤1.1:对代码库进行静态函数代码分析;
91.步骤1.2:记录函数路径,模块-包名-类名-函数;
92.步骤1.3:记录函数代码行区间信息;
93.步骤1.4:使用函数路径+代码行区间信息生成函数关键标识;
94.所述步骤2包括如下步骤:
95.步骤2.1:执行接口调用,获取代码行覆盖信息,记录接口覆盖区间信息;
96.步骤2.2:按照匹配行数和函数区间计算函数关联度,建立接口-函数标识关联度库;
97.步骤2.3:按照关联度去重接口训练列表;
98.所述步骤3包括如下步骤:
99.步骤3.1:获取不同版本间有效代码行变更信息;
100.步骤3.2:通过函数标识获取代码行相对位置,通过相对位置计算函数实际变更区间;
101.步骤3.3:通过函数实际变更区间,接口覆盖区间,函数关联度进行匹配,计算出受影响接口;
102.步骤3.4:推荐影响接口列表。
103.本发明公开了一种函数区间智能分析的精准测试方法,主要解决目前测试工作无法确定测试范围,造成大量冗余测试的问题。
104.本领域技术人员可以将本实施例理解为实施例1、实施例2的更为具体的说明。
105.本领域技术人员知道,除了以纯计算机可读程序代码方式实现本发明提供的系统及其各个装置、模块、单元以外,完全可以通过将方法步骤进行逻辑编程来使得本发明提供的系统及其各个装置、模块、单元以逻辑门、开关、专用集成电路、可编程逻辑控制器以及嵌入式微控制器等的形式来实现相同功能。所以,本发明提供的系统及其各项装置、模块、单元可以被认为是一种硬件部件,而对其内包括的用于实现各种功能的装置、模块、单元也可以视为硬件部件内的结构;也可以将用于实现各种功能的装置、模块、单元视为既可以是实现方法的软件模块又可以是硬件部件内的结构。
106.以上对本发明的具体实施例进行了描述。需要理解的是,本发明并不局限于上述特定实施方式,本领域技术人员可以在权利要求的范围内做出各种变化或修改,这并不影响本发明的实质内容。在不冲突的情况下,本技术的实施例和实施例中的特征可以任意相互组合。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1