CN114490400A - 一种处理测试用例的方法和装置 - Google Patents
一种处理测试用例的方法和装置 Download PDFInfo
- Publication number
- CN114490400A CN114490400A CN202210111140.0A CN202210111140A CN114490400A CN 114490400 A CN114490400 A CN 114490400A CN 202210111140 A CN202210111140 A CN 202210111140A CN 114490400 A CN114490400 A CN 114490400A
- Authority
- CN
- China
- Prior art keywords
- test case
- text
- texts
- processed
- test
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000012360 testing method Methods 0.000 title claims abstract description 485
- 238000000034 method Methods 0.000 title claims abstract description 71
- 238000012545 processing Methods 0.000 title claims abstract description 56
- 238000012216 screening Methods 0.000 claims abstract description 20
- 238000004590 computer program Methods 0.000 claims description 12
- 238000010998 test method Methods 0.000 claims description 5
- 230000008569 process Effects 0.000 abstract description 12
- 230000006870 function Effects 0.000 description 15
- 238000010586 diagram Methods 0.000 description 9
- 239000013598 vector Substances 0.000 description 9
- 238000013527 convolutional neural network Methods 0.000 description 7
- 238000004364 calculation method Methods 0.000 description 6
- 238000004891 communication Methods 0.000 description 6
- 239000012634 fragment Substances 0.000 description 6
- 238000004422 calculation algorithm Methods 0.000 description 5
- 230000003287 optical effect Effects 0.000 description 4
- 238000012549 training Methods 0.000 description 4
- 230000008901 benefit Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000011176 pooling Methods 0.000 description 3
- 239000011800 void material Substances 0.000 description 3
- 239000000835 fiber Substances 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 230000011218 segmentation Effects 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 230000002159 abnormal effect Effects 0.000 description 1
- 238000013528 artificial neural network Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000018109 developmental process Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 238000003058 natural language processing Methods 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 238000007781 pre-processing Methods 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/22—Matching criteria, e.g. proximity measures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/30—Semantic analysis
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Artificial Intelligence (AREA)
- Bioinformatics & Computational Biology (AREA)
- Evolutionary Computation (AREA)
- Evolutionary Biology (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Health & Medical Sciences (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种处理测试用例的方法和装置,涉及计算机技术领域。该方法的一具体实施方式包括:获取多个测试用例文本,将多个测试用例文本划分为多个待处理文本集合;并针对各个待处理文本集合,计算各个所述测试用例文本之间的语义相似度,从而筛选出重复的测试用例文本,并对重复的测试用例文本进行处理;通过筛选出重复的测试用例文本,并针对重复的测试用例文本进行处理,降低了测试应用的测试代码的冗余度,节省了运行测试用例代码的计算资源。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种处理测试用例的方法和装置。
背景技术
随着互联网应用的普及,互联网应用的功能越来越复杂、规模越来越大,因此开发互联网应用的复杂度和难度也越来越大,在开发应用的过程中,开发人员需要创建测试用例对所开发的应用代码进行测试,以检测代码的功能。
目前在开发应用的过程中,由于存在多个开发人员共同开发一个功能模块,或者不同功能模块存在一种或多种代码交叉依赖关系,因此存在不同的开发人员针对相同的功能代码分别编写测试用例的情况,而不同的开发人员对相同测试用例的描述存在差异,产生重复的测试用例,尤其在应用包含的测试用例数量较多的情况下,增大了测试用例对应的测试代码的冗余度,提高了运行测试用例代码的计算资源消耗。
发明内容
有鉴于此,本发明实施例提供一种处理测试信息的方法和装置,能够获取多个测试用例文本,将多个测试用例文本划分为多个待处理文本集合;并针对各个待处理文本集合,计算各个所述测试用例文本之间的语义相似度,从而筛选出重复的测试用例文本,并对重复的测试用例文本进行处理;通过筛选出重复的测试用例文本,并针对重复的测试用例文本进行处理(例如删除重复的测试用例文件对应的测试代码),降低了测试应用的测试代码的冗余度,节省了运行测试用例代码的计算资源。
为实现上述目的,根据本发明实施例的一个方面,提供了一种处理测试用例的方法,其特征在于,包括:
获取多个测试用例文本,将所述多个测试用例文本划分为多个待处理文本集合;针对每一个所述待处理文本集合,确定所述待处理文本集合中各个所述测试用例文本之间的语义相似度,利用各个所述测试用例文本之间的语义相似度以及预设的语义匹配阈值,筛选出重复的测试用例文本,并对重复的测试用例文本进行处理。
可选地,处理测试用例的方法,其特征在于,
所述确定所述待处理文本集合中各个所述测试用例文本之间的语义相似度,利用各个所述测试用例文本之间的语义相似度以及预设的语义匹配阈值,筛选出重复的测试用例文本,包括:
循环执行N1-N4的步骤:
N1:判断所述待处理文本集合中未被选取过的测试用例文本的个数是否不小于2,如果是,则执行N2,否则,结束当前流程;
N2:从所述未被选取过的测试用例文本中任意选取一个第一测试用例文本;
N3:确定所述第一测试用例文本与未被选取过的第二测试用例文本之间的语义相似度;
N4:如果所述语义相似度不小于所述语义匹配阈值,则确定所述第二测试用例文本为重复的测试用例文本。
可选地,处理测试用例的方法,其特征在于,
所述确定所述待处理文本集合中各个所述测试用例文本之间的语义相似度,利用各个所述测试用例文本之间的语义相似度以及预设的语义匹配阈值,筛选出重复的测试用例文本,包括:
针对所述待处理文本集合包含的每一个测试用例文本,分别计算所述测试用例文本与所述待处理文本集合中除所述测试用例文本以外的其他测试用例文本的语义相似度;
如果存在任一语义相似度不小于预设的语义匹配阈值,则确定所述测试用例文本为重复的测试用例文本。
可选地,处理测试用例的方法,其特征在于,
所述将所述多个测试用例文本划分为多个待处理文本集合,包括:
利用预设的文本匹配模型,将包含至少一个相同的关键字的多个测试用例文本划分到对应的待处理文本集合。
可选地,处理测试用例的方法,其特征在于,进一步包括:
针对每一个所述待处理文本集合包含的每一个测试用例文本,利用所述文本匹配模型,分别计算所述测试用例文本与所述待处理文本集合中除所述测试用例文本以外的其他测试用例文本的文本相似度;
如果所述测试用例文本与每一个其他测试用例文本的文本相似度均小于设定文本相似阈值,则从所述待处理文本集合中删除所述测试用例文本。
可选地,处理测试用例的方法,其特征在于,
获取多个测试用例文本,包括:从多个测试用例代码中,抽取测试用例的所述测试用例文本。
可选地,处理测试用例的方法,其特征在于,
所述抽取测试用例的所述测试用例文本,包括:从所述测试用例代码包含的注解中抽取测试关键词,根据所述测试关键词确定关联与所述测试关键词的所述测试用例文本。
可选地,处理测试用例的方法,其特征在于,
所述抽取测试用例的所述测试用例文本,包括:从所述测试用例代码包含的测试方法标识中抽取一个或多个关键词,基于所述一个或多个关键词生成所述测试用例文本。
可选地,处理测试用例的方法,其特征在于,
在所述获取多个测试用例文本之后,进一步包括:针对各个所述测试用例文本,在所述测试用例文本包含一个或多个预设字符串的情况下,从所述测试用例文本中移除所述预设字符串。
为实现上述目的,根据本发明实施例的第二方面,提供了一种处理测试用例的装置,其特征在于,包括:获取文本模块和处理文本模块;其中,
所述获取文本模块,用于获取多个测试用例文本,将所述多个测试用例文本划分为多个待处理文本集合;
所述处理文本模块,用于针对每一个所述待处理文本集合,确定所述待处理文本集合中各个所述测试用例文本之间的语义相似度,利用各个所述测试用例文本之间的语义相似度以及预设的语义匹配阈值,筛选出重复的测试用例文本,并对重复的测试用例文本进行处理。
为实现上述目的,根据本发明实施例的第三方面,提供了一种处理测试用例的电子设备,其特征在于,包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如上述处理测试用例的方法中任一所述的方法。
为实现上述目的,根据本发明实施例的第四方面,提供了一种计算机可读介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现如上述处理测试用例的方法中任一所述的方法。
上述发明中的一个实施例具有如下优点或有益效果:能够获取多个测试用例文本,将多个测试用例文本划分为多个待处理文本集合;并针对各个待处理文本集合,计算各个所述测试用例文本之间的语义相似度,从而筛选出重复的测试用例文本,并对重复的测试用例文本进行处理;通过筛选出重复的测试用例文本,并针对重复的测试用例文本进行处理(例如删除重复的测试用例文件对应的测试代码),提高了查找重复测试用例文本的效率,降低了针对应用测试的测试代码的冗余度,节省了运行测试用例代码的计算资源。
上述的非惯用的可选方式所具有的进一步效果将在下文中结合具体实施方式加以说明。
附图说明
附图用于更好地理解本发明,不构成对本发明的不当限定。其中:
图1是本发明一个实施例提供的处理测试用例的方法的流程示意图;
图2是本发明另一个实施例提供的处理测试用例的流程示意图;
图3是本发明一个实施例提供的处理测试用例的装置的结构示意图;
图4是本发明实施例可以应用于其中的示例性***架构图;
图5是适于用来实现本发明实施例的终端设备或服务器的计算机***的结构示意图。
具体实施方式
以下结合附图对本发明的示范性实施例做出说明,其中包括本发明实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本发明的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
如图1所示,本发明实施例提供了一种处理测试用例的方法,该方法可以包括以下步骤:
步骤S101:获取多个测试用例文本,将所述多个测试用例文本划分为多个待处理文本集合。
具体地,测试用例文本包括用于描述测试用例的文本、或者关联于测试用例方法的文本;可以理解的是,对代码的测试的过程中,测试模块由多个测试用例组成,其中,测试用例包含测试相关的代码、文本等。例如:在开发的不同阶段开发人员往往需要进行多次多种类型的测试(单元测试、回归测试、集成测试等),以单元测试为例,通过单元测试对应的各个测试用例可以测试代码的功能、代码处理异常情况的能力等;示例性地,通常需要开发人员编写测试用例(例如:编写测试用例的代码);基于测试用例可以利用JUnit和Ant工具结合的方式运行自动化单元测试;示例性地,测试用例的代码的片段如下所示:
@DisplayName(“测试物品信息:skuid为空:物品售后:扩展信息维度为空:按业务提供提示信息”)
@Test
Public void execute_校验skuid_物品售后_扩展信息维度为空_按业务提供提示信息(){
…
}
其中,“测试物品信息:skuid为空:物品售后:扩展信息维度为空:按业务提供提示信息”为测试用例文本的示例;由此可见,可以从测试用例代码中抽取测试用例文本,即,获取多个测试用例文本,包括:从多个测试用例代码中,抽取测试用例的测试用例文本。
进一步地,优选地,在在所述获取多个测试用例文本之后,进一步包括:针对各个所述测试用例文本,在所述测试用例文本包含一个或多个预设字符串的情况下,从所述测试用例文本中移除所述预设字符串。具体地,预设字符串可以为特殊字符、停用词(包括语气助词、副词、介词、连接词等自身无明确意义的词);可以理解的是,通过从测试用例文本中移除预设字符串的预处理操作,提高了计算测试用例文本之间的文本相似度、语义相似度的效率和准确度,从而提高了处理测试用例的效率。
进一步地,将所述多个测试用例文本划分为多个待处理文本集合;其中,可以利用文本匹配模型(例如:PPjoin算法模型)将多个测试用例文本基于相同关键字划分成多个待处理文本集合;例如:100个测试用例文本中均包含字符串“物品信息”,则可以利用PPjoin算法模型将“物品信息”作为关键词,将包含该关键词的多个测试用例文本匹配到一个节点,即将多个测试用例文本中均包含“物品信息”划分至一个待处理文本集合。即,所述将所述多个测试用例文本划分为多个待处理文本集合,包括:利用预设的文本匹配模型,将包含至少一个相同的关键字的多个测试用例文本划分到对应的待处理文本集合;可以理解的,可以根据多个一个或多个关键词将所述多个测试用例文本划分为多个待处理文本集合;本发明对待处理文本集合的数量、关键词的内容、关键词的数量和格式不做限定。
由此可见,任意一个待处理文本集合中包含测试用例文本由于具有一个或多个相同的关键词,因此文本相似度大于0,优选地,进一步通过计算任意两个或多个测试用例文本的文本相似度,并与设定文本相似度阈值(例如:50%、80%等)比较,可以从待处理文本集合中删除一个或多个文本相似度低于设定文本相似度阈值的测试用例文本(即删除从文本维度与其他测试文本不存在重复的测试用例文本);通过减少待处理的文本的数量提高了确定重复的测试用例文本的效率;即,针对每一个所述待处理文本集合包含的每一个测试用例文本,利用所述文本匹配模型,分别计算所述测试用例文本与所述待处理文本集合中除所述测试用例文本以外的其他测试用例文本的文本相似度;如果所述测试用例文本与每一个其他测试用例文本的文本相似度均小于设定文本相似阈值,则从所述待处理文本集合中删除所述测试用例文本。其中,可以通过文本匹配模型(PPjoin算法模型)通过jaccard系数计算同一个节点(即一个待处理文本集合)中测试用例文本之间的文本相似度。例如:待处理文本集合包含三个测试用例文本,测试用例1的测试用例文本1为:“ocsSkuUuid补齐:skuUuid为空:售后单:x维度扩展信息为空:按业务线提供报警”;测试用例2的测试用例文本2为:“ocsSkuUuid补齐:skuUuid为空:售后单:x维度扩展信息不存在:区分业务线报警”;测试用例3的测试用例文本3为:“ocsSkuUuid补齐:skuUuid非法”;利用文本匹配模型分别计算测试用例文本3与待处理文本集合中其他测试用例文本(测试用例文本1、测试用例文本2)之间的测试用例文本相似度,例如:计算结果分别为20%和20%,假设设定文本相似阈值为50%,即测试用例文本3与除自身以外的其他测试用例文本(测试用例文本1、测试用例文本2)的文本相似度均小于设定文本相似阈值(50%),则可以将测试用例3对应的测试用例文本从待处理文本集合中删除;以在进一步计算测试用例文本的语义相似度之前,排除测试用例3对应的测试用例文本3作为重复的测试用例文本的可能。
步骤S102:针对每一个所述待处理文本集合,确定所述待处理文本集合中各个所述测试用例文本之间的语义相似度,利用各个所述测试用例文本之间的语义相似度以及预设的语义匹配阈值,筛选出重复的测试用例文本,并对重复的测试用例文本进行处理。
具体地,针对如步骤S101所得到的每一个待处理文件集合;确定所述待处理文本集合中各个所述测试用例文本之间的语义相似度;可以理解的是,待处理文本集合中包含的测试用例文本之间的文本相似度大于0,优选地,待处理文本集合中包含的测试用例文本之间的文本相似度大于设定文本相似度阈值;可以理解的是,在确定测试用例文本之间的语义相似度之前计算测试用例文本之间的文本相似度,节约了计算测试用例文本之间的语义相似度的计算资源,同时提高了筛选出重复的测试用例文本的效率和准确度。
具体地,确定所述待处理文本集合中各个所述测试用例文本之间的语义相似度,利用各个所述测试用例文本之间的语义相似度以及预设的语义匹配阈值,筛选出重复的测试用例文本,有两种方法:
第一种方法:针对每一个待处理文本集合,循环执行N1-N4的步骤:
N1:判断所述待处理文本集合中未被选取过的测试用例文本的个数是否不小于2,如果是,则执行N2,否则,结束当前流程;N2:从所述未被选取过的测试用例文本中任意选取一个第一测试用例文本;
N3:确定所述第一测试用例文本与未被选取过的第二测试用例文本之间的语义相似度;
N4:如果所述语义相似度不小于所述语义匹配阈值,则确定所述第二测试用例文本为重复的测试用例文本。
具体地,在循环计算时,判断所述待处理文本集合中未被选取过的测试用例文本的数是否不小于2(用于确定循环停止的条件),则从未被选取过的测试用例文本中选出第一测试用例文本,计算(确定)所述第一测试用例文本与未被选取过的第二测试用例文本之间的语义相似度;例如:待处理文本集合中包含100个测试用例文本,用{T1,T2…T100}表示,在执行中,例如T1被选取为第一测试用例文本,从T2…T100中确定未被选取过的第二测试用例文本,分别计算T1与T2…T100中每一个第二测试用例文本的语义相似度,即分别计算T1与T2之间…T1与T100之间的语义相似度;即,确定所述第一测试用例文本与每一个未被选取过的第二测试用例文本之间的语义相似度;可以理解的是,在针对T1的语义相似度计算之后,T1即为已经选取的测试用例文本,并继续执行从未被选取过的T2…T100中(即未被选取过的测试用例文本中)从任意选取一个第一测试用例文本(例如:选取的第一测试用例文本为T2),如果T3…T100作为未被选取过的第二测试用例文本,则分别计算T2与T3…T2与T100的语义相似度;以此类推,直到100个测试用例文本中的任意两个测试用例文本均被遍历处理过,也即未被选取过的测试用例文本的数是否不小于2,则循环结束。如果所述语义相似度不小于所述语义匹配阈值(例如:95%),则确定所述第二测试用例文本为重复的测试用例文本,即第二测试用例文本为与之对比的第一测试用例文本的重复测试用例文本,也即筛选出第二测试用例文本(重复测试用例文本)。在确定重复的测试用例文本之后,可以对重复的测试用例文本进行标记、保存等。
优选地,可以利用训练好的卷积神经网络模型(例如Convolutional NeuralNetwork,CNN等)确定所述第一测试用例文本与未被选取过的第二测试用例文本之间的语义相似度。其中,训练好的CNN模型可以由词嵌入层、卷积层、池化层组成。在训练模型时,针对经过预处理和筛选的测试用例文本,可以首先利用分词工具(例如jieba等工具)进行分词,然后利用Word2Vec等工具训练得到词向量查找表;在训练时可以通过Word Embedding层(词嵌入层)获取词向量组成的向量矩阵,作为卷积层的输入,构建词嵌入层;卷积层利用多尺度卷积模型来提取特征:卷积层在自然语言处理中的操作是将句中连续词的词向量以卷积窗口为单位进行串接,然后将这个向量通过映射函数映射成为一个新的局部特征向量,即对语义进行一个更深层次的抽象;优选地,为避免训练的过拟合,本方案利用Dropout来丢弃卷积层所得到的设定比例(例如20%)的特征,将剩余的作为最大池化层的输入;最大池化层提取特征中的关键特征,在卷积层操作后进行降采样,得到固定大小的句子特征向量表示;在得到单测用例描述句子的语义向量表示后,利用向量空间的Cosine值来衡量目标单测用例与待检测单测用例之间的语义匹配程度;以及卷积神经网络模型训练中可以使用损失函数为交叉熵损失函数(binary_crossentropy)。
第二种方法:所述确定所述待处理文本集合中各个所述测试用例文本之间的语义相似度,利用各个所述测试用例文本之间的语义相似度以及预设的语义匹配阈值,筛选出重复的测试用例文本,包括:针对所述待处理文本集合包含的每一个测试用例文本,分别计算所述测试用例文本与所述待处理文本集合中除所述测试用例文本以外的其他测试用例文本的语义相似度;如果存在任一语义相似度不小于预设的语义匹配阈值,则确定所述测试用例文本为重复的测试用例文本。具体地,例如:待处理文本集合中包含100个测试用例文本,表示为{T1,T2…T100},针对待处理文本集合中的每一个测试用例文本,分别计算所述测试用例文本与所述待处理文本集合中除所述测试用例文本以外的其他测试用例文本的语义相似度;可以利用训练好的CNN模型计算语义相似度,如果测试用例文本与任一个其他测试用例文本的语义相似度不小于语义匹配阈值(例如:95%),即,如果存在任一语义相似度不小于预设的语义匹配阈值,则确定所述测试用例文本为重复的测试用例文本。例如:利用CNN模型分别计算T1与T2…T100之间的语义相似度,得到99个语义形似度,如果存在任一个语义相似度不小于语义匹配阈值的情况下,则确定T1为重复的测试用例文本;即如果所述测试用例文本与任一个其他测试用例文本的语义相似度不小于预设的语义匹配阈值,则确定所述测试用例文本为重复的测试用例文本,即,将被选取的测试用例文本作为与之对比的其他测试用例文本的重复测试用例文本;也即筛选出被选取的测试用例文本(即重复测试用例文本);关于CNN模型的描述与第一种方法中的描述一致,在此不再赘述。
进一步地,在筛选出重复的测试用例文本之后,并对重复的测试用例文本进行处理;处理的方法可以对重复的测试用例文本进行标记和保存,以指示测试用例文本对应的测试用例为重复测试用例;当利用测试工具运行测试用例时可以跳过重复的测试用例,或者对测试用例的代码进行注释掉或删除,以使重复的测试用例代码不被运行;克服了测试代码的冗余度、提高了运行测试用例的效率。
如图2所示,本发明实施例提供了一种处理测试用例的方法,该方法可以包括以下步骤:
步骤S201:从多个测试用例代码中,抽取测试用例的所述测试用例文本。
具体地,以下面示出的测试用例代码的片段为例:
@DisplayName(“测试物品信息:skuid为空:物品售后:扩展信息维度为空:按业务提供提示信息”)
@Test
Public void execute_校验skuid_物品售后_扩展信息维度为空_按业务提供提示信息(){
…
}
其中,“测试物品信息:skuid为空:物品售后:扩展信息维度为空:按业务提供提示信息”为测试用例文本;
进一步地,抽取测试用例文本有两种方法:
第一种方法:从测试用例代码包含的注解中抽取测试关键词,根据所述测试关键词确定关联于所述测试关键词的所述测试用例文本;具体地,例如,上述测试用例代码的片段示出的“@DisplayName”为测试关键词,根据@DisplayName确定关联的所述测试用例文本为“测试物品信息:skuid为空:物品售后:扩展信息维度为空:按业务提供提示信息”;即,所述抽取测试用例的所述测试用例文本,包括:从所述测试用例代码包含的注解中抽取测试关键词,根据所述测试关键词确定关联于所述测试关键词的所述测试用例文本。
进一步地,如示例代码片段,还可以利用@Test确定该代码片段与测试相关;优选地,可以通过设置目录结构和命名策略,进一步提高获取测试用例文本的效率;例如:将测试用例代码与被测试代码在设置于同一代码包中;在设置目录结构时,可以建立被测试的代码与测试用例代码的对应关系,例如被测试的代码所在目录为:src/main/java;资源目录为:src/main/resources;关联的测试用例所在的目录为:src/test/java;关联的测试资源目录为:src/test/resources;进一步地,可以利用设定的命名策略建立为被测试代码与测试用例代码的对应关系,示例性地,被测试代码对应的类的标识为:com.aa.b2b.xxx.xxx.DuccConfService;可以设置被测试代码对应的测试用例代码对应的类的标识为:com.aa.b2b.xxx.xxx.DuccConfServiceTest;可见测试用例代码的命名策略为被测试代码的标识添加关键字“Test”,从而建立两者的对应关系;进一步地,测试代码中的方法也可以依照设定的命名策略命名,例如命名的测试用例方法标识为:被测试方法_{测试用例描述}。由此可见,在获取测试用例文本之前,通过建立测试用例与被测试的代码的对应关系以定位各个测试用例关联的类或文件,降低了获取测试用例文本的难度,提高了测试用例文本的规范化程度,从而提高了获取测试用例文本的效率和准确性。
第二种方法:从所述测试用例代码包含的测试方法标识中抽取一个或多个关键词,基于所述一个或多个关键词生成所述测试用例文本;
具体地,上述测试用例代码的片段示出的测试方法标识为“Public voidexecute_校验skuid_物品售后_扩展信息维度为空_按业务提供信息”,则可以抽取出一个或多个关键词,例如:抽取“校验skuid”、“物品售后”、“扩展信息维度为空”、“按业务提供信息”等,进一步地,基于抽取的关键词生成测试用例文本,例如生成的测试用例文本为“测试物品信息:skuid为空:物品售后:扩展信息维度为空:按业务提供提示信息”;即,所述抽取测试用例的所述测试用例文本,包括:从所述测试用例代码包含的测试方法标识中抽取一个或多个关键词,基于所述一个或多个关键词生成所述测试用例文本。
步骤S202:利用预设的文本匹配模型,将包含至少一个相同的关键字的多个测试用例文本划分到对应的待处理文本集合。
具体地,利用预设的文本匹配模型(例如:PPjoin算法模型)将包含至少一个相同的关键字的多个测试用例文本划分到对应的待处理文本集合。关于包含至少一个相同的关键字的多个测试用例文本划分到对应的待处理文本集合的具体描述与步骤S101的描述一致,在此不再赘述。
步骤S203:针对每一个所述待处理文本集合包含的每一个测试用例文本,利用所述文本匹配模型,分别计算所述测试用例文本与所述待处理文本集合中除所述测试用例文本以外的其他测试用例文本的文本相似度。
具体地,利用所述文本匹配模型(例如利用PPjoin算法模型、jaccard系数)分别计算所述测试用例文本与待处理文本集合中除该测试用例文本以外的其他测试用例文本的文本相似度;对文本相似度小于设定文本相似阈值的测试用例文本删除,减少了进一步筛选重复的测试用例文本的计算难度,节省了计算资源;即,针对每一个所述待处理文本集合包含的每一个测试用例文本,利用所述文本匹配模型,分别计算所述测试用例文本与所述待处理文本集合中除所述测试用例文本以外的其他测试用例文本的文本相似度;;如果所述测试用例文本与每一个其他测试用例文本的文本相似度均小于设定文本相似阈值,则从所述待处理文本集合中删除所述测试用例文本。
关于计算所述测试用例文本与每一个其他测试用例文本的文本相似度的描述与步骤S101的描述一致,在此不再赘述。
步骤S204:针对每一个所述待处理文本集合,确定所述待处理文本集合中各个所述测试用例文本之间的语义相似度,利用各个所述测试用例文本之间的语义相似度以及预设的语义匹配阈值,筛选出重复的测试用例文本,并对重复的测试用例文本进行处理。
具体地,针对每一个所述待处理文本集合,筛选出重复的测试用例文本,并对重复的测试用例文本进行处理的具体描述与步骤S102的描述一致,在此不再赘述。
如图3所示,本发明实施例提供了一种处理测试用例的装置300,包括:获取文本模块301和处理文本模块302;其中,
所述获取文本模块301,用于获取多个测试用例文本,将所述多个测试用例文本划分为多个待处理文本集合;
所述处理文本模块302,用于针对每一个所述待处理文本集合,确定所述待处理文本集合中各个所述测试用例文本之间的语义相似度,利用各个所述测试用例文本之间的语义相似度以及预设的语义匹配阈值,筛选出重复的测试用例文本,并对重复的测试用例文本进行处理。
本发明实施例还提供了一种处理测试用例的电子设备,包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现上述任一实施例提供的方法。
本发明实施例还提供了一种计算机可读介质,其上存储有计算机程序,所述程序被处理器执行时实现上述任一实施例提供的方法。
图4示出了可以应用本发明实施例的处理测试用例的方法或处理测试用例的装置的示例性***架构400。
如图4所示,***架构400可以包括终端设备401、402、403,网络404和服务器405。网络404用以在终端设备401、402、403和服务器405之间提供通信链路的介质。网络404可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
用户可以使用终端设备401、402、403通过网络404与服务器405交互,以接收或发送消息等。终端设备401、402、403上可以安装有各种客户端应用,例如电子商城客户端应用、网页浏览器应用、搜索类应用、即时通信工具和邮箱客户端等。
终端设备401、402、403可以是具有显示屏并且支持各种客户端应用的各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机和台式计算机等等。
服务器405可以是提供各种服务的服务器,例如对用户利用终端设备401、402、403所使用的客户端应用提供支持的后台管理服务器。后台管理服务器可以对接收到的处理测试用例的请求进行处理,并将处理重复的测试用例文本的结果反馈给终端设备。
需要说明的是,本发明实施例所提供的处理测试用例的方法一般由服务器405执行,相应地,处理测试用例的装置一般设置于服务器405中。
应该理解,图4中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。
下面参考图5,其示出了适于用来实现本发明实施例的终端设备的计算机***500的结构示意图。图5示出的终端设备仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图5所示,计算机***500包括中央处理单元(CPU)501,其可以根据存储在只读存储器(ROM)502中的程序或者从存储部分508加载到随机访问存储器(RAM)503中的程序而执行各种适当的动作和处理。在RAM 503中,还存储有***500操作所需的各种程序和数据。CPU 501、ROM 502以及RAM 503通过总线504彼此相连。输入/输出(I/O)接口505也连接至总线504。
以下部件连接至I/O接口505:包括键盘、鼠标等的输入部分506;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分507;包括硬盘等的存储部分508;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分509。通信部分509经由诸如因特网的网络执行通信处理。驱动器510也根据需要连接至I/O接口505。可拆卸介质511,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器510上,以便于从其上读出的计算机程序根据需要被安装入存储部分508。
特别地,根据本发明公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本发明公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分509从网络上被下载和安装,和/或从可拆卸介质511被安装。在该计算机程序被中央处理单元(CPU)501执行时,执行本发明的***中限定的上述功能。
需要说明的是,本发明所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的***、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本发明中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行***、装置或者器件使用或者与其结合使用。而在本发明中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行***、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、RF等等,或者上述的任意合适的组合。
附图中的流程图和框图,图示了按照本发明各种实施例的***、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的***来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本发明实施例中所涉及到的模块和/或单元可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的模块和/或单元也可以设置在处理器中,例如,可以描述为:一种处理器包括获取文本模块和处理文本模块。其中,这些模块的名称在某种情况下并不构成对该模块本身的限定,例如,获取文本模块还可以被描述为“将多个测试用例文本划分为多个待处理文本集合的模块”。
作为另一方面,本发明还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的设备中所包含的;也可以是单独存在,而未装配入该设备中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被一个该设备执行时,使得该设备包括:获取多个测试用例文本,将所述多个测试用例文本划分为多个待处理文本集合;针对每一个所述待处理文本集合,确定所述待处理文本集合中各个所述测试用例文本之间的语义相似度,利用各个所述测试用例文本之间的语义相似度以及预设的语义匹配阈值,筛选出重复的测试用例文本,并对重复的测试用例文本进行处理。
本发明的实施例,能够获取多个测试用例文本,将多个测试用例文本划分为多个待处理文本集合;并针对各个待处理文本集合,计算各个所述测试用例文本之间的语义相似度,从而筛选出重复的测试用例文本,并对重复的测试用例文本进行处理;通过筛选出重复的测试用例文本,并针对重复的测试用例文本进行处理(例如删除重复的测试用例文件对应的测试代码),降低了测试应用的测试代码的冗余度,尤其在测试用例数量较大(例如数以万计)的情况下,节省了运行测试用例代码的计算资源。
上述具体实施方式,并不构成对本发明保护范围的限制。本领域技术人员应该明白的是,取决于设计要求和其他因素,可以发生各种各样的修改、组合、子组合和替代。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明保护范围之内。
Claims (12)
1.一种处理测试用例的方法,其特征在于,包括:
获取多个测试用例文本,将所述多个测试用例文本划分为多个待处理文本集合;
针对每一个所述待处理文本集合,确定所述待处理文本集合中各个所述测试用例文本之间的语义相似度,利用各个所述测试用例文本之间的语义相似度以及预设的语义匹配阈值,筛选出重复的测试用例文本,并对重复的测试用例文本进行处理。
2.根据权利要求1所述的方法,其特征在于,
所述确定所述待处理文本集合中各个所述测试用例文本之间的语义相似度,利用各个所述测试用例文本之间的语义相似度以及预设的语义匹配阈值,筛选出重复的测试用例文本,包括:
循环执行N1-N4的步骤:
N1:判断所述待处理文本集合中未被选取过的测试用例文本的个数是否不小于2,如果是,则执行N2,否则,结束当前流程;
N2:从所述未被选取过的测试用例文本中任意选取一个第一测试用例文本;
N3:确定所述第一测试用例文本与未被选取过的第二测试用例文本之间的语义相似度;
N4:如果所述语义相似度不小于所述语义匹配阈值,则确定所述第二测试用例文本为重复的测试用例文本。
3.根据权利要求1所述的方法,其特征在于,
所述确定所述待处理文本集合中各个所述测试用例文本之间的语义相似度,利用各个所述测试用例文本之间的语义相似度以及预设的语义匹配阈值,筛选出重复的测试用例文本,包括:
针对所述待处理文本集合包含的每一个测试用例文本,分别计算所述测试用例文本与所述待处理文本集合中除所述测试用例文本以外的其他测试用例文本的语义相似度;
如果存在任一语义相似度不小于预设的语义匹配阈值,则确定所述测试用例文本为重复的测试用例文本。
4.根据权利要求1所述的方法,其特征在于,
所述将所述多个测试用例文本划分为多个待处理文本集合,包括:
利用预设的文本匹配模型,将包含至少一个相同的关键字的多个测试用例文本划分到对应的待处理文本集合。
5.根据权利要求4所述的方法,其特征在于,进一步包括:
针对每一个所述待处理文本集合包含的每一个测试用例文本,
利用所述文本匹配模型,分别计算所述测试用例文本与所述待处理文本集合中除所述测试用例文本以外的其他测试用例文本的文本相似度;
如果所述测试用例文本与每一个其他测试用例文本的文本相似度均小于设定文本相似阈值,则从所述待处理文本集合中删除所述测试用例文本。
6.根据权利要求1所述的方法,其特征在于,
获取多个测试用例文本,包括:
从多个测试用例代码中,抽取测试用例的所述测试用例文本。
7.根据权利要求6所述的方法,其特征在于,
所述抽取测试用例的所述测试用例文本,包括:
从所述测试用例代码包含的注解中抽取测试关键词,根据所述测试关键词确定与所述测试关键词关联的所述测试用例文本。
8.根据权利要求6所述的方法,其特征在于,
所述抽取测试用例的所述测试用例文本,包括:
从所述测试用例代码包含的测试方法标识中抽取一个或多个关键词,基于所述一个或多个关键词生成所述测试用例文本。
9.根据权利要求1所述的方法,其特征在于,
在所述获取多个测试用例文本之后,进一步包括:
针对各个所述测试用例文本,在所述测试用例文本包含一个或多个预设字符串的情况下,从所述测试用例文本中移除所述预设字符串。
10.一种处理测试用例的装置,其特征在于,包括:获取文本模块和处理文本模块;其中,
所述获取文本模块,用于获取多个测试用例文本,将所述多个测试用例文本划分为多个待处理文本集合;
所述处理文本模块,用于针对每一个所述待处理文本集合,确定所述待处理文本集合中各个所述测试用例文本之间的语义相似度,利用各个所述测试用例文本之间的语义相似度以及预设的语义匹配阈值,筛选出重复的测试用例文本,并对重复的测试用例文本进行处理。
11.一种电子设备,其特征在于,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-9中任一所述的方法。
12.一种计算机可读介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现如权利要求1-9中任一所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210111140.0A CN114490400A (zh) | 2022-01-27 | 2022-01-27 | 一种处理测试用例的方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210111140.0A CN114490400A (zh) | 2022-01-27 | 2022-01-27 | 一种处理测试用例的方法和装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114490400A true CN114490400A (zh) | 2022-05-13 |
Family
ID=81477591
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210111140.0A Pending CN114490400A (zh) | 2022-01-27 | 2022-01-27 | 一种处理测试用例的方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114490400A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117951007A (zh) * | 2024-01-09 | 2024-04-30 | 航天中认软件测评科技(北京)有限责任公司 | 一种基于主题的测试用例分类方法 |
-
2022
- 2022-01-27 CN CN202210111140.0A patent/CN114490400A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117951007A (zh) * | 2024-01-09 | 2024-04-30 | 航天中认软件测评科技(北京)有限责任公司 | 一种基于主题的测试用例分类方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10303689B2 (en) | Answering natural language table queries through semantic table representation | |
CN111566654A (zh) | 集成知识和自然语言处理的机器学习 | |
CN113204621B (zh) | 文档入库、文档检索方法,装置,设备以及存储介质 | |
CN109359194B (zh) | 用于预测信息类别的方法和装置 | |
US20160188569A1 (en) | Generating a Table of Contents for Unformatted Text | |
CN109858045B (zh) | 机器翻译方法和装置 | |
CN114385780B (zh) | 程序接口信息推荐方法、装置、电子设备和可读介质 | |
CN110807311B (zh) | 用于生成信息的方法和装置 | |
US20200349226A1 (en) | Dictionary Expansion Using Neural Language Models | |
CN111435406A (zh) | 一种纠正数据库语句拼写错误的方法和装置 | |
US9836450B2 (en) | Methods and systems for providing universal portability in machine learning | |
CN111753029A (zh) | 实体关系抽取方法、装置 | |
CN110895587B (zh) | 用于确定目标用户的方法和装置 | |
CN110852057A (zh) | 一种计算文本相似度的方法和装置 | |
CN114490400A (zh) | 一种处理测试用例的方法和装置 | |
CN113590756A (zh) | 信息序列生成方法、装置、终端设备和计算机可读介质 | |
US11379669B2 (en) | Identifying ambiguity in semantic resources | |
CN116560661A (zh) | 代码优化方法、装置、设备及存储介质 | |
CN112784596A (zh) | 一种识别敏感词的方法和装置 | |
CN113792232B (zh) | 页面特征计算方法、装置、电子设备、介质及程序产品 | |
CN115481031A (zh) | 南向网关检测方法、装置、设备及介质 | |
CN114048315A (zh) | 确定文档标签的方法、装置、电子设备和存储介质 | |
CN111368036B (zh) | 用于搜索信息的方法和装置 | |
CN109857838B (zh) | 用于生成信息的方法和装置 | |
CN113779370A (zh) | 一种地址检索方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |