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

南向网关检测方法、装置、设备及介质与流程

2022-12-20 00:19:55 来源:中国专利 TAG:


1.本公开涉及计算机技术领域,尤其涉及一种南向网关检测方法、装置、电子设备及计算机可读存储介质。


背景技术:

2.在领域驱动设计的分层架构中,基础设施层位于最外层,领域层位于最内层,领域层是架构中的核心层,应用层位于领域层和基础设施层之间。根据以来方向,若被调用的方向为由外至内调用,称之为北向网关,若当前限界上下文是通过网关调用外部资源或者其他限界上下文,即由内至外的调用方向,称之为南向网关。
3.南向网关是打通应用层与外部资源、或领域层与外部资源的通道,因此,需要识别南向网关的复杂度。但是,目前如何对南向网关的复杂度进行检测,检测难度比较大。
4.需要说明的是,在上述背景技术部分公开的信息仅用于加强对本公开的背景的理解,因此可以包括不构成对本领域普通技术人员已知的现有技术的信息。


技术实现要素:

5.本公开提供一种南向网关检测方法、装置、设备及介质,至少在一定程度上克服相关技术中南向网关的复杂度检测难度高的问题。
6.本公开的其他特性和优点将通过下面的详细描述变得显然,或部分地通过本公开的实践而习得。
7.根据本公开的一个方面,提供一种南向网关检测方法,包括:提取南向网关的多个单元测试用例中的测试用例描述文本,构成测试用例描述文本集合;在所述测试用例描述文本集合中筛选与目标用例描述文本相似的测试用例描述文本,构成相似测试用例描述文本集合;将相似测试用例描述文本集合中语义相同的测试用例描述文本聚为一类,得到聚类后相似测试用例描述文本集合中测试用例描述文本的数量;根据聚类后相似测试用例描述文本集合中测试用例描述文本的数量,确定与所述目标用例描述文本对应南向网关的复杂度。
8.在本公开的一个实施例中,所述在所述测试用例描述文本集合中筛选与目标用例描述文本相似的测试用例描述文本,构成相似测试用例描述文本集合,包括:以所述目标用例描述文本的单个token为key,以所述测试用例描述文本集合中的测试用例描述文本的文本id和文本内容为value进行匹配;将所述测试用例描述文本集合中包含相同token的测试用例描述文本匹配到相似测试用例描述文本集合。
9.在本公开的一个实施例中,所述方法还包括:计算所述相似测试用例描述文本集合内的测试用例描述文本对的文本相似度;输出文本相似度超过第一相似度阈值的第一测试用例描述文本和第二测试用例描述文本,其中,所述第一测试用例描述文本和第二测试用例描述文本为所述相似测试用例描述文本集合内的测试用例描述文本对。
10.在本公开的一个实施例中,所述计算所述相似测试用例描述文本集合内的测试用
例描述文本对的文本相似度,包括:对所述测试用例描述文本对进行分词处理,得到所述测试用例描述文本对的词汇交集和词汇并集;根据所述词汇交集和词汇并集计算所述测试用例描述文本对的文本相似度。
11.在本公开的一个实施例中,所述将相似测试用例描述文本集合中语义相同的测试用例描述文本聚为一类,得到聚类后相似测试用例描述文本集合中测试用例描述文本的数量,包括:计算所述第一测试用例描述文本和第二测试用例描述文本的语义相似度;将语义相似度超过第二相似度阈值的第一测试用例描述文本和第二测试用例描述文本聚类为一类。
12.在本公开的一个实施例中,所述计算所述第一测试用例描述文本和第二测试用例描述文本的语义相似度,包括:对所述第一测试用例描述文本对进行分词处理,得到所述第一测试用例描述文本的第一分词集合;对所述第二测试用例描述文本对进行分词处理,得到所述第二测试用例描述文本的第二分词集合;计算第一分词集合和第二分词集合的分词相似度;对计算得到的所述分词相似度进行归一化处理,得到所述第一测试用例描述文本和第二测试用例描述文本的语义相似度。
13.在本公开的一个实施例中,所述方法还包括:获取所述第一测试用例描述文本的第一分词向量;获取所述第二测试用例描述文本的第二分词向量;根据所述第一分词向量和第二分词向量计算所述第一测试用例描述文本和所述第二测试用例描述文本的词语距离;根据所述词语距离对所述第一测试用例描述文本和所述第二测试用例描述文本的语义相似度进行修正。
14.在本公开的一个实施例中,所述根据聚类后相似测试用例描述文本集合中测试用例描述文本的数量,确定与所述目标用例描述文本对应南向网关的复杂度,包括:判断所述聚类后相似测试用例描述文本集合中测试用例描述文本的数量是否大于或者等于第一预设阈值;若满足,则判定所述南向网关的测试场景满足测试需求。
15.在本公开的一个实施例中,所述方法还包括:若所述聚类后相似测试用例描述文本集合中测试用例描述文本的数量小于第一预设阈值,则判定南向网关的单元测试用例测试场景不足。
16.在本公开的一个实施例中,所述方法还包括:判断所述聚类后相似测试用例描述文本集合中测试用例描述文本的数量是否大于第二预设阈值,其中,第二预设阈值大于第一预设阈值;若满足,则判定所述南向网关具备复杂度。
17.在本公开的一个实施例中,所述测试用例描述文本包括测试功能描述文本和测试结果描述文本,其中,所述测试功能描述文本用于区分不同的测试方法;所述测试结果描述文本用于区分同一测试方法下不同的测试结果。
18.在本公开的一个实施例中,所述目标用例描述文本为测试用例描述文本集合中测试用例描述文本;或者,所述目标用例描述文本为预先设定的文本。
19.在本公开的一个实施例中,所述方法还包括:对测试用例描述文本集合中的多个所述测试用例描述文本进行预处理。
20.根据本公开的另一个方面,提供一种南向网关检测装置,包括:文本提取模块,用于提取南向网关的多个单元测试用例中的测试用例描述文本,构成测试用例描述文本集合;文本筛选模块,用于在所述测试用例描述文本集合中筛选与目标用例描述文本相似的
测试用例描述文本,构成相似测试用例描述文本集合;文本聚类模块,用于将相似测试用例描述文本集合中语义相同的测试用例描述文本聚为一类,得到聚类后相似测试用例描述文本集合中测试用例描述文本的数量;复杂度判定模块,用于根据聚类后相似测试用例描述文本集合中测试用例描述文本的数量,确定与所述目标用例描述文本对应南向网关的复杂度。
21.根据本公开的另一个方面,提供一种电子设备,包括:处理器;以及存储器,用于存储所述处理器的可执行指令;其中,所述处理器配置为经由执行所述可执行指令来执行上述的南向网关检测方法。
22.根据本公开的另一个方面,提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述的南向网关检测方法。
23.本公开的实施例所提供的一种南向网关检测方法、装置、设备及介质,提取南向网关的多个单元测试用例中测试用例描述文本,并从中筛选与目标用例描述文本相似的测试用例描述文本,将相似测试用例描述文本中语义相同的测试用例描述文本聚为一类,根据聚类后的相似测试用例描述文本的数量,从而方便、快速的确定南向网关的复杂度,以及各个南向网关单元测试用例的场景覆盖率,判断单元测试用例是否合格,有效识别南向网关的复杂度,保证南向网关的质量。
24.应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
25.此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
26.图1示出本公开实施例提供的一种南向网关检测方法流程图;
27.图2示出本公开实施例提供的另一种南向网关检测方法流程图;
28.图3示出本公开实施例提供的输出相似测试用例文本对的流程图;
29.图4示出本公开实施例中提供的又一种南向网关检测方法流程图;
30.图5示出本公开实施例提供的计算相似测试用例文本对的语义相似度的示意图;
31.图6示出本公开实施例提供的又一种南向网关检测方法流程图;
32.图7示出本公开实施例提供的南向网关检测方法的原理图;
33.图8示出本公开实施例提供的南向网关检测装置示意图;
34.图9示出本公开实施例提供的实现南向网关检测的系统构架图;
35.图10示出本公开实施例提供的电子设备的结构框图。
具体实施方式
36.现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提供这些实施方式使得本公开将更加全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。所描述的特征、结
构或特性可以以任何合适的方式结合在一个或更多实施方式中。
37.此外,附图仅为本公开的示意性图解,并非一定是按比例绘制。图中相同的附图标记表示相同或类似的部分,因而将省略对它们的重复描述。附图中所示的一些方框图是功能实体,不一定必须与物理或逻辑上独立的实体相对应。可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
38.南向网关调用第三方服务,调用方不清楚其内部的实现形式和复杂度,对接时,使用者根据单元测试用例的返回值确定南向网关内部的复杂度。
39.单元测试的主要目的是验证代码的功能和代码处理异常情况的能力。在本公开中基于junit框架和ant工具结合对南向网关编写单元测试用例,实现自动化测试,例如,基于junit5编写单元测试用例,可以使使用者频繁地整合,保证软件现有功能不被破坏,并自动分析现有代码的状态,发布相关的测试报告,以在一定程度上识别南向网关内部实现方式的复杂度以及单元测试用例的场景覆盖率。
40.在利用junit5编写单元测试用例的情况下,通常使用@displayname对单元测试用例进行描述,描述文本由自然语言组成,不同的描述可能表示的含义有两种,其一为不同南向网关各自场景的单元测试用例覆盖情况;其二为相同南向网关不同场景的单元测试用例覆盖情况。
41.在一种情况下,测试数据如下所示:
42.class updateorderrecycle{
43.@displayname(“更新订单回收站状态返回200,成功”)
44.@test
45.public void testupdateorderrecycle_return_200(){
46.测试代码(略)
47.}
48.class updateorderrecycle{
49.@displayname(“更新订单回收站状态返回420,并发锁控制,请稍后重试”)
50.@test
51.public void testupdateorderrecycle_return_420(){
52.测试代码(略)
53.}
54.class updateorderrecycle{
55.@displayname(“更新订单回收站状态返回500,内部服务异常”)
56.@test
57.public void testupdateorderrecycle_return_500(){
58.测试代码(略)
59.}
60.class updateorderrecycle{
61.@displayname(“更新订单回收站状态返回400,请求参数异常”)
62.@test
63.public void testupdateorderrecycle_return_400(){
64.测试代码(略)
65.}
66.class updateorderrecycle{
67.@displayname(“更新订单回收站状态返回控制”)
68.@test
69.public void testupdateorderrecycle_return_null(){
70.测试代码(略)
71.}
72.上述测试数据为五个单元测试用例的测试结果,五个单元测试用例@displayname标签内的描述文本不同,从五个描述文本可以发现,五个单元测试用例都是针对相同测试方法或者相同服务不同返回值场景的用例,在一定程度上表明该南向网关具备一定的复杂度。
73.在另一种情况中,测试数据如下所示:
74.@displayname(“查询erp订单:包含影分身商品:商品编码和产品编码相同”)
75.@test
76.public void geterporderinfo_影分身商品_商品编码和产品编码相同(){
77.测试代码(略)
78.}
79.@displayname(“查询erp订单:包含影分身商品:商品编码和产品编码一致”)
80.@test
81.public void geterporderinfo_影分身商品_商品编码和产品编码一致(){
82.测试代码(略)
83.}
84.上述测试数据包括两个单元测试用例,两个单元测试用例@displayname标签内的描述文本不同,但是语义相同,实际上是相同的单元测试用例,在此情形下,并不能表明南向网关具备一定的复杂度,并且该南向网关还存在异常场景覆盖不足的风险。
85.相同的描述指的是相同南向网关同一场景的单元测试用例覆盖情况,在一个复杂的测试项目中,测试数据中可能存在大量的单元测试用例,在此情况下,如何统计单元测试用例数量衡量场景覆盖率以及判断南向网关的复杂度至关重要。
86.基于此,本公开实施例提供的技术方案通过提取南向网关的多个单元测试用例中测试用例描述文本,并从中筛选与目标用例描述文本相似的测试用例描述文本,将相似测试用例描述文本中语义相同的测试用例描述文本聚为一类,根据聚类后的相似测试用例描述文本的数量,从而方便、快速的确定南向网关的复杂度,以及各个南向网关单元测试用例的场景覆盖率,判断单元测试用例是否合格,有效减少了人工检测的成本,有效识别南向网关的复杂度,保证南向网关的质量。
87.需要指出的是,在不冲突的情况下,本发明的实施例以及实施例中的技术特征可以相互结合。
88.下面结合附图及实施例对本示例实施方式进行详细说明。
89.首先,本公开实施例中提供了一种南向网关检测方法,该方法可以由任意具备计算处理能力的系统执行。
90.图1示出本公开实施例中一种南向网关检测方法流程图,如图1所示,本公开实施例中提供的南向网关检测方法,包括如下步骤:
91.s102、提取多个单元测试用例测试数据中的测试用例描述文本,构成测试用例描述文本集合。
92.在本实施例中,基于junit框架和ant工具结合对南向网关编写单元测试用例,单元测试用例和被测试代码存储于同一个模块module中,无需单独的测试模块testmodule,其中,代码目录为:src/main/java,java,资源目录为src/main/resources;单元测试用例目录为src/test/java,被测试资源目录:src/test/resources。需要说明的是,单元测试用例和被测试代码存储于同一个包packag的不同目录下。
93.单元测试用例的文件命名在被测试代码的文件命名之后加后缀test,例如,被测试代码的文件命名为com.xx.b2b.xxx.xxx.orderauitservice,对应单元测试用例的文件命名为com.xx.b2b.xxx.xxx.orderauitservicetest。
94.本实施例的测试用例描述文本为从单元测试用例文件中提取的。在一个复杂的项目中,单元测试用例的数据中包括对不同南向网关的测试,不同南向网关的单元测试用例的数量不同,即提取到的多个测试用例描述文本可以属于不同的南向网关。
95.需要说明的是,测试用例描述文本对应@displayname标签中的文本,测试用例描述文本包括测试功能描述文本和测试结果描述文本,其中,测试功能描述文本用于区分不同的测试方法;测试结果描述文本用于区分同一测试方法下不同的测试结果,通过测试功能描述文本区分不同的测试方法,进而区分南向网关,通过测试结果描述文本可以表征单元测试用例覆盖率。
96.例如,上述的第一种情形,第一条单元测试用例的测试用例描述文本为“更新订单回收站状态返回200,请求成功”,其中,测试功能描述文本为“更新订单回收站状态”,测试结果描述文本为“返回200,请求成功”。上述的第二种情形,第一条单元测试用例的测试用例描述文本为“查询erp订单:包含影分身商品”,测试结果描述文本为“商品编码和产品编码相同”。
97.通常的,测试用例描述文本集合中的测试用例描述文本的顺序与单元测试用例测试数据的顺序一致。
98.s104、在测试用例描述文本集合中筛选与目标用例描述文本相似的测试用例描述文本,构成相似测试用例描述文本集合。
99.本实施例的目标用例描述文本用于区分单元测试用例测试数据中的南向网关,通常的,一个目标用例描述文本对应一个南向网关,通过筛选与目标用例描述文本相似的测试用例描述文本,可以得到针对一个南向网关进行测试的单元测试用例。
100.示例性的,目标用例描述文本可以为使用者预先设定的文本,通常的,目标用例描述文本可以仅包括测试功能描述文本,或者,同时包括测试功能描述文本和测试结果描述文本。例如,上述第一种情形的单元测试用例,可以将目标用例描述文本设定为“更新订单回收站状态”;上述第二种情形的单元测试用例,可以将目标用例描述文本设定为“查询erp订单:包含影分身商品”。
101.示例性的,目标用例描述文本还可以为测试用例描述文本集合中的测试用例描述文本,此时,可以顺次从测试用例描述文本中选择一个测试用例描述文本作为目标用例描述文本,或者,也可以随机从测试用例描述文本中选择一个测试用例描述文本作为目标用例描述文本。将目标用例描述文本与测试用例描述文本集合中的剩余测试用例描述文本进行比对,刷选出与目标用例描述文本相似的测试用例描述文本,构成该目标用例描述文本的相似测试用例描述文本集合,同时,将筛选出的该目标用例描述文本的相似测试用例描述文本从测试用例描述文本集合中去除,直至将测试用例描述文本集合中的测试用例描述文本筛选完毕,划分出与各个目标用例描述文本对应的相似测试用例描述文本集合,即对多个南向网关进行区分。
102.举例说明,上述的第一种情形和第二种情形为同一次单元测试用例的测试数据,表1为从测试数据中提取的单元测试用例对应的测试用例描述文本。
103.表1
104.文本id文本内容单元测试用例1更新订单回收站状态返回200,请求成功单元测试用例2查询erp订单:包含影分身商品:商品编号和产品编号相同单元测试用例3更新订单回收站状态返回420,并发锁控制,请稍后重试单元测试用例4查询erp订单:包含影分身商品:商品编号和产品编号一致单元测试用例5更新订单回收站状态返回500,内部服务异常
105.测试用例描述文本集合为p1{{更新订单回收站状态返回200,请求成功},{查询erp订单:包含影分身商品:商品编号和产品编号相同},{更新订单回收站状态返回420,并发锁控制,请稍后重试},{查询erp订单:包含影分身商品:商品编号和产品编号一致},{更新订单回收站状态返回500,内部服务异常}}。如表1所示,若将单元测试用例1作为目标用例描述文本,则单元测试用例1、单元测试用例3和单元测试用例5被匹配到同一个相似测试用例描述文本集合;而后,将单元测试用例2作为目标用例描述文本,将单元测试用例2和单元测试用例4被匹配到另一个相似测试用例描述文本集合。
106.s106、将相似测试用例描述文本集合中语义相同的测试用例描述文本聚为一类,得到聚类后相似测试用例描述文本集合中测试用例描述文本的数量。
107.在本实施例中,相似测试用例描述文本集合的两条或多条测试用例描述文本相同或者语义相同,在计算南向网关单元测试用例的数量时,文本相同或者语义相同的测试用例描述用例按一条统计。
108.例如,上述的单元测试用例2和单元测试用例4,两者为语义相同的单元测试用例,在相似测试用例描述文本集合中聚为一类,聚类后相似测试用例描述文本集合中测试用例描述文本的数量为1个。
109.s108、根据聚类后相似测试用例描述文本集合中测试用例描述文本的数量,确定与目标用例描述文本对应南向网关的复杂度。
110.本实施例的南向网关的复杂度根据聚类后相似测试用例描述文本集合中测试用例描述文本的数量确定,通常的,聚类后相似测试用例描述文本集合中测试用例描述文本的数量多,表明南向网关在一定程度上具备一定的复杂度;聚类后相似测试用例描述文本集合中测试用例描述文本的数量少,表明南向网关的单元测试用例合格;聚类后相似测试
用例描述文本集合中测试用例描述文本的数量的非常少,表明南向网关简单,有可能出现场景覆盖不足的情况。
111.本公开实施例提供的南向网关检测方法,通过提取南向网关的多个单元测试用例中测试用例描述文本,并从中筛选与目标用例描述文本相似的测试用例描述文本,将相似测试用例描述文本中语义相同的测试用例描述文本聚为一类,根据聚类后的相似测试用例描述文本的数量,从而方便、快速的确定南向网关的复杂度,以及各个南向网关单元测试用例的场景覆盖率,判断单元测试用例是否合格,有效减少了人工检测的成本,有效识别南向网关的复杂度,保证南向网关的质量。
112.在一个实施例中,步骤s104在测试用例描述文本集合中筛选与目标用例描述文本相似的测试用例描述文本,构成相似测试用例描述文本集合,包括:
113.以目标用例描述文本的单个token为key,以测试用例描述文本集合中的测试用例描述文本的文本id和文本内容为value进行匹配;
114.将测试用例描述文本集合中包含相同token的测试用例描述文本匹配到相似测试用例描述文本集合。
115.基于朴素法的思想,相似或者相同的句子在组成上具有一定的共同性,若只考虑词语的语义,则会丢失句法上包含的语义信息。在本公开中使用ppjoin算法筛选与目标用例描述文本相似的测试用例描述文本,ppjoin算法是一种基于字符匹配的快速筛选相似文本的算法,其能够接受一个字符串的集合并且输出文本相似度超过阈值的字符串对。
116.在本实施例中,在ppjoin算法基于字符串匹配的map阶段,以目标用例描述文本的单个token为key,其中,token可以是字符、词语、或者ngram;对测试用例描述文本集合中的测试用例描述文本的文本id和文本内容为value去map,这样包含相同token的文本被map到相同的相似测试用例描述文本集合中,换句话说,从文本上来说,与目标用例描述文本相似的测试用例描述文本被map到相同的节点(相似测试用例描述文本集合),或者,目标用例描述文本与测试用例描述文本的文本相似度大于0的文本被map到相同的节点。
117.例如,在表1中,目标用例描述文本为单元测试用例1的{更新订单回收站状态返回200,请求成功},token可以为更新、订单、回收站、状态、返回等,以token为更新进行说明,依次遍历测试用例描述文本集合中的单元测试用例2~5,可以发现单元测试用例1、单元测试用例3和单元测试用例5包含相同的token,被map到相同的相似测试用例描述文本集合。
118.图2示出本公开实施例提供的另一种南向网关检测方法流程图。在图1实施例的基础上,在步骤s104和s106之间增加步骤s202和s204,以确定相似测试用例描述文本集合中可能语义相同的相似测试用例描述文本对。如图2所示,在本实施例中,该方法包括步骤s102-s104、步骤s202-s204、以及步骤s106-s108,其中,
119.s202、计算相似测试用例描述文本集合内的测试用例描述文本对的文本相似度;
120.s204、输出文本相似度超过第一相似度阈值的第一测试用例描述文本和第二测试用例描述文本,其中,第一测试用例描述文本和第二测试用例描述文本为相似测试用例描述文本集合内的测试用例描述文本对。
121.需要说明的是,步骤s102-s108与前述实施例的实现方式相同,此处不再赘述。
122.本实施例的测试用例描述文本对的文本相似度通过将文本进行分词处理后,利用jaccard算法计算测试用例描述文本的文本相似度。直观上来说,两个句子的相同部分越
多,共现词的词汇数目越多,两个句子之间的文本相似度越高,通过共现词相对于两个句子中的所有词汇所占的比例可以从数值上反应这两个句子的文本相似度。
123.第一相似度阈值可以预先设定,第一相似度阈值的大小可根据实际情况设定,本技术不做具体限定。
124.图3示出本公开实施例提供的输出相似测试用例文本对的流程图。在本实施例中,在图2实施例的基础上,进一步将步骤s202细化为s302-s308,如图3所示,该方法包括:
125.s302、对测试用例描述文本对进行分词处理,得到测试用例描述文本对的词汇交集和词汇并集;
126.s304、根据词汇交集和词汇并集计算测试用例描述文本对的文本相似度;
127.s306、判断文本相似度是否超过第一相似度阈值,若超过,则执行步骤s204;若未超过,则执行步骤s308;
128.s308、该测试用例描述文本对的语义不同,无需聚类。
129.需要说明的是,步骤s204与上述实施例的实现方式相同,此处不再赘述。
130.在本实施例中,可利用分词工具(如:jieba)进行分词处理,例如,对表1中的单元测试用例2和单元测试用例4进行分词处理,得到的词汇集合分别记为{a}和{b},其中,{a}={查询,erp,订单,包含,影分身,商品,商品编号,和,产品编号,相同},{b}={查询,erp,订单,包含,影分身,商品,商品编号,和,产品编号,一致},在{a}和{b}中,共现词的数量为9,即测试用例描述文本对的词汇交集为9,测试用例描述文本对的词汇并集为11,可得文本相似度s=9/11=81.8%,若预设的第一相似度阈值为80%,则确定该测试用例描述文本对为语义可能相同的文本。
131.图4示出本公开实施例提供的又一种南向网关检测方法流程图。在图2实施例的基础上,进一步将步骤s106细化为步骤s402-s404,具体的,如图4所示,该方法包括:
132.s402、计算第一测试用例描述文本和第二测试用例描述文本的语义相似度;
133.s404、将语义相似度超过第二相似度阈值的第一测试用例描述文本和第二测试用例描述文本聚类为一类。
134.本实施例的第二相似度阈值可以预先设定,第一相似度阈值的大小可根据实际情况设定,本技术不做具体限定。
135.本实施例中,第一测试用例描述文本和第二测试用例描述文本的语义相似度利用检索网站(例如知网、百度等)计算每个句子的词语的语义相似度,进而计算第一测试用例描述文本和第二测试用例描述文本整体的语义相似度,以下实施例中基于知网的名词分析法计算第一测试用例描述文本和第二测试用例描述文本的语义相似度。
136.在一个实施例中,步骤s402计算所述第一测试用例描述文本和第二测试用例描述文本的语义相似度,包括:
137.对第一测试用例描述文本对进行分词处理,得到第一测试用例描述文本的第一分词集合;
138.对第二测试用例描述文本对进行分词处理,得到第二测试用例描述文本的第二分词集合;
139.计算第一分词集合和第二分词集合的分词相似度;
140.对计算得到的分词相似度进行归一化处理,得到第一测试用例描述文本和第二测
试用例描述文本的语义相似度。
141.经过ppjoin算法计算后,输出第一测试用例描述文本和第二测试用例描述文本,作为名词分析法的输入,该名词分析法以词语为基准单位。图5示出本公开实施例提供的计算相似测试用例文本对的语义相似度的示意图。
142.如图5所示,对输入的第一测试用例描述文本和第二测试用例描述文本,利用分词工具进行分词处理,得到第一测试用例描述文本的第一分词集合,记为{c}={c1,c2,

,cn},以及第二测试用例描述文本的第二分词集合,记为{d}={d1,d2,

,dn}。
143.对于集合{c}中的一个名词ci,利用检索网站(例如知网)的树状结构分别计算其与集合{d}中每一个名词di的词语相似度s
i1
,s
i2


,s
in

144.依次计算得到集合{c}中所有名词和集合{d}中的所有名词的相似度矩阵s:
[0145][0146]
在相似度矩阵s中,s
ij
表示集合{c}的第i个名词和集合{d}的第j个名词的相似度。
[0147]
从相似度矩阵s中,确定相似度数值最大的三个元素,从大到小依次记为s
max1
,s
max2
和s
max3
,计算归一化的相似度s
cd
即为第一测试用例描述文本和第二测试用例描述文本的语义相似度,如下:
[0148][0149]
需要说明的是,相似度数值最大的元素数量可根据相似度矩阵中的元素数量而定,或者相似度数值最大的元素数量可以为固定值,本技术不做具体限定。
[0150]
在一个实施例中,该方法还包括:
[0151]
获取第一测试用例描述文本的第一分词向量;
[0152]
获取第二测试用例描述文本的第二分词向量;
[0153]
根据第一分词向量和第二分词向量计算第一测试用例描述文本和第二测试用例描述文本的词语距离;
[0154]
根据词语距离对第一测试用例描述文本和第二测试用例描述文本的语义相似度进行修正。
[0155]
若第一分词向量记为c,第二份词向量记为d,则第一测试用例描述文本和第二测试用例描述文本的词语距离可以采用余弦相似度计算方法得到。当然,还可以采用任何相似度算法,而不限于余弦相似度算法。
[0156]
为使本公开实施例的技术方案更加清楚,现对余弦相似度算法做一个简单介绍,该算法通过计算向量之间夹角的余弦值,判断两个向量的相似度,或者两个测试用例描述文本之间的词语距离。
[0157]
如,c、d是两个向量,则两者的余弦相似度为:
[0158][0159]
其中,θ为a、b两个向量的夹角。
[0160]
以上述实施例中单元测试用例2和单元测试用例4对应的测试用例描述文本为例进行说明,词汇集合分别记为{a}和{b},{a}={查询,erp,订单,包含,影分身,商品,商品编号,和,产品编号,相同},{b}={查询,erp,订单,包含,影分身,商品,商品编号,和,产品编号,一致},其中,词语出现的次数:
[0161]
集合{a}:查询1,erp1,订单1,包含1,影分身1,商品1,商品编号1,和1,产品编号1,相同1,一致0;
[0162]
集合{b}:查询1,erp1,订单1,包含1,影分身1,商品1,商品编号1,和1,产品编号1,相同0,一致1。
[0163]
则两个测试用例描述文本的余弦相似度为:
[0164][0165]
根据公式一计算θ,将θ定义为向量c和向量d的词语距离,根据词语距离与词语相似度的对应关系,修正后的语义相似度s
cd
与第一测试用例描述文本和第二测试用例描述文本的词语距离之间的关系如下:
[0166][0167]
其中,d
cd
为第一词语向量和第二词语向量之间的词语距离;β为可调节的参数,通常的β<1,β=0.5表示第一测试用例描述文本和第二测试用例描述文本的相似度为0.5时的词语距离,便于聚类,β的取值可根据使用者的经验而定。
[0168]
通常的,词语距离越小,第一测试用例描述文本和第二测试用例描述文本的语义相似度越高,词语距离越大,第一测试用例描述文本和第二测试用例描述文本越小。
[0169]
需要注意的是,上述集合{a}和集合{b}以及词库的具体结构和内容仅是为说明本公开实施例而提供的示例,不应将其视为对本公开保护范围的限制。根据具体的实现(例如,具体的分词技术等)在另一些实现方式中,集合{a}、集合{b}以及词库也可以具有不同的结构和形式。
[0170]
在图1实施例的基础上,对步骤s108进一步细化,在一个实施例中,步骤s108根据聚类后相似测试用例描述文本集合中测试用例描述文本的数量,确定与目标用例描述文本对应南向网关的复杂度,包括:
[0171]
判断聚类后相似测试用例描述文本集合中测试用例描述文本的数量是否大于或者等于第一预设阈值;
[0172]
若满足,则判定南向网关的测试场景满足测试需求;
[0173]
若聚类后相似测试用例描述文本集合中测试用例描述文本的数量小于第一预设阈值,则判定南向网关的单元测试用例测试场景不足。
[0174]
本实施例的第一预设阈值可以根据实际情况而定,例如,第一预设阈值为2,本技术不做具体限定。
[0175]
示例性的,当同一南向网关的单元测试用例的数量大于或等于2时,在一定程度上表明该测试方法的单元测试用例合格;当同一南向网关的单元测试用例的数量小于2时,表明该测试方法的单元测试用例数量不足,存在单元测试用例覆盖不足的风险。
[0176]
当聚类后相似测试用例描述文本集合中测试用例描述文本的数量大于或者等于第一预设阈值时,还需要判断聚类后相似测试用例描述文本集合中测试用例描述文本的数量是否大于第二预设阈值,其中,第二预设阈值大于第一预设阈值;
[0177]
若满足,则判定南向网关具备复杂度。
[0178]
本实施例的第二预设阈值可以根据实际情况而定,例如,第二预设阈值为5,仅为示例性说明,本技术不做具体限定。
[0179]
示例性的,当同一南向网关的单元测试用例的数量大于5时,在一定程度上表明该南向网关内部实现具备一定的复杂度。
[0180]
图6示出本公开实施例提供的又一种南向网关检测方法流程图。在图1实施例的基础上,在步骤s102和s104之间增加步骤s602,如图6所示,该方法包括s102、s602和s104-s108,具体的,包括:
[0181]
s602、对测试用例描述文本集合中的多个测试用例描述文本进行预处理。
[0182]
本实施例的预处理的方式包括但不限于在保证结构完整的情况下过滤掉中英文混杂的测试用例描述文本、在保证语义完整的情况下过滤掉过短的测试用例描述文本、删除掉测试用例描述文本中的特殊符号(例如空字符、
“‑”
、“:”、“,”等)、将测试用例描述文本中的英文替换为语义相同的中文等等。
[0183]
需要说明的是,上述预处理的具体实现方式仅是为说明本公开实施例而提供的示例,不应将其视为对本公开保护范围的限制。
[0184]
图7示出本公开实施例提供的南向网关检测方法的原理图。如图7所示,测试完成后,生成测试报告,从多个单元测试用例测试数据中提取测试用例描述文本,对测试用例描述文本和目标用例描述文本进行预处理,如移除英文的测试用例描述文本、进行分词处理等;通过ppjoin快速筛选与目标用例描述文本相似的测试用例描述文本,构成相似测试用例描述文本集合,通过名词法计算语义相似度,并对相似测试用例描述文本集合中语义相似度超过相似度阈值的测试用例描述文本聚为一类,统计该类相似测试用例描述文本集合中单元测试用例的数量;若选择不同的目标用例描述文本可将测试用例描述文本匹配到不同的相似测试用例描述文本集合,则可得到不同南向网关对应的单元测试用例的数量,进而根据单元测试用例的数量确定对应南向网关的复杂度。
[0185]
基于同一发明构思,本公开实施例中还提供了一种南向网关检测装置,如下面的实施例所述。由于该装置实施例解决问题的原理与上述方法实施例相似,因此该装置实施例的实施可以参见上述方法实施例的实施,重复之处不再赘述。
[0186]
图8示出本公开实施例的一种南向网关检测装置示意图。如图8所示,本实施例的南向网关检测装置,包括文本提取模块801、文本筛选模块802、文本聚类模块803和复杂度判定模块804,其中,
[0187]
文本提取模块801,用于提取南向网关的多个单元测试用例中的测试用例描述文
本,构成测试用例描述文本集合;
[0188]
文本筛选模块802,用于在测试用例描述文本集合中筛选与目标用例描述文本相似的测试用例描述文本,构成相似测试用例描述文本集合;
[0189]
文本聚类模块803,用于将相似测试用例描述文本集合中语义相同的测试用例描述文本聚为一类,得到聚类后相似测试用例描述文本集合中测试用例描述文本的数量;
[0190]
复杂度判定模块804,用于根据聚类后相似测试用例描述文本集合中测试用例描述文本的数量,确定与目标用例描述文本对应南向网关的复杂度。
[0191]
在一个实施例中,文本筛选模块802包括未显示在附图中的文本匹配子模块,
[0192]
文本匹配子模块,用于以目标用例描述文本的单个token为key,以测试用例描述文本集合中的测试用例描述文本的文本id和文本内容为value进行匹配;
[0193]
将测试用例描述文本集合中包含相同token的测试用例描述文本匹配到相似测试用例描述文本集合。
[0194]
需要注意的是,文本筛选模块802还包括未显示在附图中的文本相似度计算子模块,
[0195]
文本相似度计算子模块,用于计算相似测试用例描述文本集合内的测试用例描述文本对的文本相似度;
[0196]
输出文本相似度超过第一相似度阈值的第一测试用例描述文本和第二测试用例描述文本,其中,第一测试用例描述文本和第二测试用例描述文本为相似测试用例描述文本集合内的测试用例描述文本对。
[0197]
在一个实施例中,相似测试用例描述文本集合内的测试用例描述文本对的语义相似度通过以下方式得到:
[0198]
对测试用例描述文本对进行分词处理,得到测试用例描述文本对的词汇交集和词汇并集;
[0199]
根据词汇交集和词汇并集计算测试用例描述文本对的文本相似度。
[0200]
在一个实施例中,文本聚类模块803包括未显示在附图中的语义相似度计算子模块和文本聚类子模块,其中,
[0201]
语义相似度计算子模块,用于计算第一测试用例描述文本和第二测试用例描述文本的语义相似度;
[0202]
文本聚类子模块,用于将语义相似度超过第二相似度阈值的第一测试用例描述文本和第二测试用例描述文本聚类为一类。
[0203]
具体的,语义相似度计算子模块,具体用于对所述第一测试用例描述文本对进行分词处理,得到第一测试用例描述文本的第一分词集合;
[0204]
对第二测试用例描述文本对进行分词处理,得到第二测试用例描述文本的第二分词集合;
[0205]
计算第一分词集合和第二分词集合的分词相似度;
[0206]
对计算得到的分词相似度进行归一化处理,得到第一测试用例描述文本和第二测试用例描述文本的语义相似度。
[0207]
在本公开的一个可选实施例中,文本聚类模块803还包括未显示在附图中的语义相似度修正模块,用于获取第一测试用例描述文本的第一分词向量;
[0208]
获取第二测试用例描述文本的第二分词向量;
[0209]
根据第一分词向量和第二分词向量计算第一测试用例描述文本和所述第二测试用例描述文本的词语距离;
[0210]
根据词语距离对第一测试用例描述文本和第二测试用例描述文本的语义相似度进行修正。
[0211]
在本公开的一个实施例中,复杂度判定模块804,用于判断聚类后相似测试用例描述文本集合中测试用例描述文本的数量是否大于或者等于第一预设阈值;
[0212]
若满足,则判定南向网关的测试场景满足测试需求;
[0213]
若聚类后相似测试用例描述文本集合中测试用例描述文本的数量小于第一预设阈值,则判定南向网关的单元测试用例测试场景不足。
[0214]
在一个实施例中,复杂度判定模块804,还用于判断聚类后相似测试用例描述文本集合中测试用例描述文本的数量是否大于第二预设阈值,其中,第二预设阈值大于第一预设阈值;
[0215]
若满足,则判定南向网关具备复杂度。
[0216]
在一个实施例中,测试用例描述文本包括测试功能描述文本和测试结果描述文本,其中,测试功能描述文本用于区分不同的测试方法;测试结果描述文本用于区分同一测试方法下不同的测试结果。
[0217]
在一个实施例中,目标用例描述文本为测试用例描述文本集合中测试用例描述文本;或者,
[0218]
目标用例描述文本为预先设定的文本。
[0219]
可选的,该装置还包括未显示在附图中的文本预处理模块,用于对测试用例描述文本集合中的多个测试用例描述文本进行预处理。
[0220]
所属技术领域的技术人员能够理解,本发明的各个方面可以实现为系统、方法或程序产品。因此,本发明的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“系统”。
[0221]
本实施例提供的一种南向网关检测方法、装置,提取南向网关的多个单元测试用例中测试用例描述文本,并从中筛选与目标用例描述文本相似的测试用例描述文本,将相似测试用例描述文本中语义相同的测试用例描述文本聚为一类,根据聚类后的相似测试用例描述文本的数量,从而方便、快速的确定南向网关的复杂度,以及各个南向网关单元测试用例的场景覆盖率,判断单元测试用例是否合格,有效识别南向网关的复杂度,保证南向网关的质量。此外,本公开实施例首先筛选与目标用例描述文本相似的测试用例描述文本,然后将相似测试用例描述文本中语义相同的进行聚类,从而减少统计每类相似测试用例描述文本的样本量,从而提升检测效率。
[0222]
图9示出了可以应用本公开实施例的南向网关检测方法或南向网关检测装置的示例性系统架构900。
[0223]
如图9所示,系统架构900可以包括终端设备910,网络920和服务器930。
[0224]
网络920用以在终端设备910和服务器930之间提供通信链路的介质,可以是有线网络,也可以是无线网络。
[0225]
用户可以使用终端设备910通过网络920与服务器930交互,以接收或发送消息。
[0226]
终端设备910可以是具有显示屏并且支持对南向网关的单元测试用例进行测试的各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机和台式计算机等。
[0227]
终端设备910上可以安装的应用程序的客户端是相同的,或基于不同操作系统的同一类型应用程序的客户端。基于终端平台的不同,该应用程序的客户端的具体形态也可以不同,比如,该应用程序客户端可以是手机客户端、pc客户端等。
[0228]
示例性的,终端设备910安装有junit单元测试框架和ant软件开发工具,用户通过junit单元测试框架和ant软件开发工具相结合的方式实现对单元测试用例的自动化测试。
[0229]
服务器930可以是提供各种服务的服务器,例如对用户利用终端设备910所进行操作的装置提供支持的后台管理服务器。后台管理服务器可以对接收到的请求等数据(例如单元测试用例的测试用例描述文本)进行分析等处理,并将处理结果(例如南向网关的复杂度信息)反馈给终端设备910。
[0230]
可选地,服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、cdn(content delivery network,内容分发网络)、以及大数据和人工智能平台等基础云计算服务的云服务器。
[0231]
本领域技术人员可以知晓,图9中的终端设备、网络和服务器的数量仅仅是示意性的,根据实际需要,可以具有任意数目的终端设备、网络和服务器。本公开实施例对此不作限定。
[0232]
下面参照图10来描述根据本发明的这种实施方式的电子设备1000。图10显示的电子设备1000仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
[0233]
如图10所示,电子设备1000以通用计算设备的形式表现。电子设备1000的组件可以包括但不限于:上述至少一个处理单元1010、上述至少一个存储单元1020、连接不同系统组件(包括存储单元1020和处理单元1010)的总线1030。
[0234]
其中,所述存储单元存储有程序代码,所述程序代码可以被所述处理单元1010执行,使得所述处理单元1010执行本说明书上述“示例性方法”部分中描述的根据本发明各种示例性实施方式的步骤。
[0235]
存储单元1020可以包括易失性存储单元形式的可读介质,例如随机存取存储单元(ram)10201和/或高速缓存存储单元10202,还可以进一步包括只读存储单元(rom)10203。
[0236]
存储单元1020还可以包括具有一组(至少一个)程序模块10205的程序/实用工具10204,这样的程序模块10205包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
[0237]
总线1030可以为表示几类总线结构中的一种或多种,包括存储单元总线或者存储单元控制器、外围总线、图形加速端口、处理单元或者使用多种总线结构中的任意总线结构的局域总线。
[0238]
电子设备1000也可以与一个或多个外部设备1040(例如键盘、指向设备、蓝牙设备等)通信,还可与一个或者多个使得用户能与该系统1000交互的设备通信,和/或与使得该电子设备1000能与一个或多个其它计算设备进行通信的任何设备(例如路由器、调制解调器等等)通信。这种通信可以通过输入/输出(i/o)接口1050进行。并且,系统1000还可以通
过网络适配器1060与一个或者多个网络(例如局域网(lan),广域网(wan)和/或公共网络,例如因特网)通信。如图所示,网络适配器1060通过总线1030与电子设备1000的其它模块通信。应当明白,尽管图中未示出,可以结合电子设备1000使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、raid系统、磁带驱动器以及数据备份存储系统等。
[0239]
通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本公开实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是cd-rom,u盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、终端装置、或者网络设备等)执行根据本公开实施方式的方法。
[0240]
在本公开的示例性实施例中,还提供了一种计算机可读存储介质,其上存储有能够实现本说明书上述方法的程序产品。在一些可能的实施方式中,本发明的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当所述程序产品在终端设备上运行时,所述程序代码用于使所述终端设备执行本说明书上述“示例性方法”部分中描述的根据本发明各种示例性实施方式的步骤。
[0241]
本公开中的计算机可读存储介质的更具体的例子可以包括但不限于:便携式计算机磁盘、硬盘、随机访问存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑磁盘只读存储器(cd-rom)、或者上述的任意合适的组合。
[0242]
应当注意,尽管在上文详细描述中提及了用于动作执行的设备的若干模块或者单元,但是这种划分并非强制性的。实际上,根据本公开的实施方式,上文描述的两个或更多模块或者单元的特征和功能可以在一个模块或者单元中具体化。反之,上文描述的一个模块或者单元的特征和功能可以进一步划分为由多个模块或者单元来具体化。
[0243]
此外,尽管在附图中以特定顺序描述了本公开中方法的各个步骤,但是,这并非要求或者暗示必须按照该特定顺序来执行这些步骤,或是必须执行全部所示的步骤才能实现期望的结果。
[0244]
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本公开旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由所附的权利要求指出。
再多了解一些

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

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

相关文献