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

测试用例推荐方法、装置、介质及电子设备与流程

2021-11-29 14:03: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.本发明还提供了一种电子设备,所述电子设备包括存储器和处理器,其中:所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现如前文所述的测试用例推荐方法。
24.本发明提供的测试用例推荐方法及装置首先建立测试用例与业务模块之间的第一对应关系、以及建立代码文件与业务模块之间的第二对应关系,接着在响应于代码文件的测试请求时,一方面根据代码文件的测试请求确定代码文件的目标业务模块,另一方面根据第二对应关系确定代码文件的相关业务模块,最后根据目标业务模块、相关业务模块以及第一对应关系获取相应的测试用例进行推荐。与现有技术中仅仅根据测试需求人为选择测试用例的方式相比,一方面实施本发明可以实现测试用例的自动推荐,有利于测试效率的提高;另一方面实施本发明除了可以提供与代码文件测试目的直接相关的目标业务模块的测试用例之外,还可以提供代码文件可能影响到的其他相关业务模块的测试用例,如此一来,可以有效避免人为选择或编写测试用例可能出现的遗漏,进而确保测试的全面性。
附图说明
25.通过阅读参照以下附图所作的对非限制性具体实施方式所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:
26.图1是根据本发明的一个具体实施例的测试用例推荐方法流程图;
27.图2是根据本发明的一个优选实施例的图1所示步骤s2的方法流程图;
28.图3是根据本发明的一个优选实施例的图1所示步骤s3的方法流程图;
29.图4是根据本发明的一个优选实施例的汇总不同项目中各业务模块的测试用例并去掉重复内容的测试用例的方法流程图;
30.图5是根据本发明的一个优选实施例的图4所示步骤s54的方法流程图;
31.图6是根据本发明的一个具体实施例的测试用例推荐装置的结构示意图;
32.图7是用于实施本发明的测试用例推荐方法的一种电子设备的结构示意图。
33.附图中相同或相似的附图标记代表相同或相似的部件。
具体实施方式
34.为了更好地理解和阐释本发明,下面将结合附图对本发明作进一步的详细描述。本发明并不仅仅局限于这些具体实施方式。相反,对本发明进行的修改或者等同替换,均应涵盖在本发明的权利要求范围当中。
35.需要说明的是,在下文的具体实施方式中给出了众多的具体细节。本领域技术人
员应当理解,没有这些具体细节,本发明同样可以实施。在下文给出的多个具体实施方式中,对于本领域熟知的原理、结构和部件未作详细描述,以便于凸显本发明的主旨。
36.本发明提供了一种测试用例推荐方法。请参考图1,图1是根据本发明的一个具体实施例的测试用例推荐方法流程图。如图所示,该方法包括:
37.在步骤s1中,建立测试用例与业务模块之间的第一对应关系;
38.在步骤s2中,建立代码文件与业务模块之间的第二对应关系,其中,所述代码文件与一个或多个业务模块之间存在对应关系;
39.在步骤s3中,响应于代码文件的测试请求,根据所述代码文件的测试请求确定所述代码文件的目标业务模块、以及根据所述第二对应关系确定所述代码文件的相关业务模块;
40.在步骤s4中,根据所述目标业务模块、所述相关业务模块以及所述第一对应关系获取相应的测试用例,并对该测试用例进行推荐。
41.下面将对上述步骤s1至步骤s4的内容进行详细说明。
42.具体地,本发明所提供的测试用例推荐方法可以由计算机设备执行,其中,该计算机设备可以为终端或者服务器等设备。该终端可以为智能手机、平板电脑、笔记本电脑、触控屏幕、个人计算机(personal computer,pc)、个人数字助理(personal digital assistant,pda)等终端设备,终端还可以包括客户端。服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、cdn、以及大数据和人工智能平台等基础云计算服务的云服务器。
43.在步骤s1中,软件项目在开发时通常会基于业务类型的不同划分为多个业务模块。以游戏项目为例,其可能会包括商城模块、活动模块、聊天模块、好友模块、语音模块等。每个业务模块相应具有各自的测试用例。在本实施实例中,获取一个项目或者多个项目中各个业务模块的测试用例,并将测试用例与其对应的业务模块进行关联以建立其二者之间的对应关系(下文以第一对应关系表示)。
44.下文中将以商城模块、活动模块、聊天模块、好友模块以及语音模块五个业务模块为例进行说明。本领域技术人员可以理解的是,上述五个业务模块仅为示意性说明,在实际开发中具体业务模块需要根据设计需求进行设置。
45.在步骤s2中,建立代码文件与业务模块之间的对应关系(下文以第二对应关系表示)。此处需要说明的是,一个业务模块的实现通常需要一个或多个代码文件,不同的业务模块之间则存在代码文件的复用。举例说明,聊天模块涉及代码文件a、代码文件b以及代码文件c,好友模块涉及代码文件b和代码文件d,语音模块涉及代码文件c和代码文件e,其中代码文件b被聊天模块和好友模块复用,代码文件c被聊天模块和语音模块复用。由于代码文件被业务模块复用,所以当针对一个业务模块所涉及的代码文件进行开发时,除了对该业务模块产生影响之外,对于复用该代码文件的其他业务模块也可能会存在影响。仍以上述举例进行说明,当聊天模块的一个功能需要优化而对代码文件a、代码文件b以及代码文件c进行开发时,除了对聊天模块产生影响,对好友模块和语音模块也可能产生影响。为了后续在代码文件测试时可以对其所可能影响到的业务模块的测试用例进行全面推荐,所以需要预先建立代码文件与业务模块之间的对应关系。其中,考虑到代码文件存在被多个业
务模块复用的情况,所以一个代码文件与一个或多个业务模块之间存在对应关系。
46.现有技术中,在对业务模块涉及的代码文件进行开发之前,通常会向需求管理平台提交业务需求进行说明。也就是说,代码文件与业务需求之间存在对应关系。进一步地,由于业务需求的需求描述(下文以第一需求描述表示)会对业务模块的开发目的进行说明,因此往往携带有和业务模块相关的词条。例如针对于聊天模块的“聊天复制功能优化”、针对于好友模块的“好友邀请功能优化”等。因此,在一个优选实施例中,通过业务需求建立代码文件与业务模块之间的第二对应关系,具体实现方式如图2所示,包括如下步骤:
47.在步骤s21中,根据业务需求的需求描述判断业务需求对应的业务模块;
48.在步骤s22中,将基于所述业务需求实现的代码文件与所述业务需求对应的业务模块进行关联以建立第二对应关系。
49.具体地,在步骤s21中,获取业务需求的需求描述(下文以第一需求描述表示),对该第一需求描述进行分析并根据分析结果判断业务需求对应的业务模块。在本实施例中,根据业务需求的需求描述判断业务需求对应的业务模块的具体步骤包括:首先,对业务需求的第一需求描述进行分词处理,以得到第一词条集合,该第一词条集合包括至少一个词条(下文以第一词条表示);接着,将第一词条与业务模块的名称进行匹配,并将匹配成功的业务模块确定为与业务需求相对应的业务模块。
50.在步骤s22中,考虑到根据业务需求对业务模块涉及的代码文件进行开发后提交至代码管理平台时会相应生成提交日志,该提交日志中通常包括与代码文件相对应的业务需求的信息(例如可以用于确定业务需求的需求单号)、以及代码文件信息(例如代码文件的文件名、存储路径等)等。因此,首先获取代码文件的提交日志并根据该提交日志确定该代码文件相对应的业务需求;接着从步骤s21的执行结果中获取与该业务需求相对应的业务模块;最后将与该业务需求相对应的业务模块与提交日志中的代码文件进行关联以及建立其二者之间的对应关系(下文以第二对应关系表示)。在本实施例中,通过映射表的形式记录业务模块与代码文件之间的第二对应关系。
51.举例说明,需求单号是001的业务需求其第一需求描述是“聊天复制功能优化”,通过对该第一需求描述进行分词处理得到“聊天”、“复制”、“功能”以及“优化”四个第一词条,将“聊天”、“复制”、“功能”以及“优化”这四个第一词条分别与商城模块、活动模块、聊天模块、好友模块以及语音模块进行匹配,其中第一词条“聊天”与聊天模块匹配成功,因此可以判断与该业务需求相对应的业务模块是聊天模块。同样地,需求单号是002的业务需求其第一需求描述是“好友表情功能优化”,经判断与该业务需求相对应的业务模块是好友模块。需求单号是003的业务需求其第一需求描述为“语音降噪功能优化”,经判断与该业务需求相对应的业务模块是语音模块。
52.当对聊天复制功能进行优化时,该功能优化涉及到代码文件a、代码文件b以及代码文件c的开发。通过对代码文件a、代码文件b以及代码文件c的提交日志分析得到该三个代码文件对应于需求单号为001的业务需求。结合需求单号001的业务需求与聊天模块之间的对应关系,可以将代码文件a、代码文件b以及代码文件c与聊天模块进行对应,建立第二对应关系。
53.当对好友表情功能进行优化时,该功能优化涉及到代码文件b和代码文件d的开发。通过对代码文件b和代码文件d的提交日志分析得到该两个代码文件对应于需求单号为
002的业务需求。结合需求单号002的业务需求与好友模块之间的对应关系,可以建立代码文件b和代码文件d与好友模块之间的第二对应关系。
54.当对语音降噪功能进行优化时,该功能优化涉及到代码文件c和代码文件e的开发。通过对代码文件c和代码文件e的提交日志分析得到该两个代码文件对应于需求单号为003的业务需求。结合需求单号003的业务需求与语音模块之间的对应关系,可以建立代码文件c和代码文件e与语音模块之间的第二对应关系。
55.在上述举例中,代码文件a与聊天模块建立了第二对应关系,代码文件b与聊天模块和好友模块建立了第二对应关系,代码文件c与聊天模块和语音模块建立了第二对应关系,代码文件d与好友模块建立了第二对应关系,代码文件e与语音模块建立了第二对应关系。
56.在一个优选实施例中,在执行步骤s22之后,本发明所提供的方法还包括:检测代码文件与业务模块之间是否首次建立第二对应关系;若是,则设置代码文件与业务模块之间的相关度系数;若否,则对相关度系数的值进行更新。
57.具体地,在将基于业务需求实现的代码文件与业务需求对应的业务模块进行关联以建立第二对应关系之后,对该代码文件与业务需求是否是首次建立第二对应关系进行检测。若检测到该代码文件与业务需求是首次建立第二对应关系,则设置该代码文件与业务模块之间的相关度系数,其中,相关度系数用于表征代码文件与业务模块之间关联性的高低。若检测到该代码文件与业务需求是再次建立第二对应关系,则对代码文件与业务模块之间的相关度系数进行更新,例如按照预定规定增大相关度系数的值。在一个具体实施例中,代码文件和业务模块之间的相关度系数的初始值设置等于1,后续该代码文件与业务模块每关联一次相关度系数的值相应增加1。
58.相关度系数的设置有助于判断代码文件与业务模块之间建立的第二对应关系是否准确。针对于一个业务模块来说,在其生命周期中会不断进行开发(例如增加功能、优化功能等),即不断地提出业务需求、不断地开发代码文件、以及不断地生成提交日志。考虑到代码文件与业务需求之间的对应关系可以从提交日志中准确获取,所以从理论上讲,如果对于不断提出的业务需求都可以准确地对应到业务模块上,那么代码文件与其相对应的业务模块应该多次被关联,相应地相关度系数的值也会不断增加。但实际开发中,存在个别业务需求的第一需求描述不准确,导致业务需求与业务模块对应错误、进而导致代码文件与业务模块关联错误的情况。所以在一个代码文件已经足够多次被关联的前提下,若该代码文件与一个业务模块之间的相关度系数的数值仍低于预设阈值(下文以第一阈值表示),则表明该代码文件与业务模块之间不具有关联性、进而表明其二者之间所建立的第二对应关系有误;反之则表明该代码文件与业务模块之间具有关联性、进而表明其二者之间所建立的第二对应关系正确。本发明对于第一阈值不做任何限定,其具体值可以根据实际设计需求制定。
59.继续前述举例,以聊天模块和好友模块复用的代码文件b、以及聊天模块和语音模块复用的代码文件c为例说明。此外,第一阈值设置为5,相关度系数初始值等于1,相关度系数每次更新时增加1。假设在代码文件b和代码文件c都经过了足够多次的关联之后,代码文件b除了与聊天模块和好友模块之间建立了第二对应关系,还与活动模块之间建立了第二对应关系,代码文件c除了与聊天模块和语音模块之间建立第二对应关系之外,还与商城模
块之间建立了第二对应关系。其中,代码文件b与聊天模块、好友模块以及活动模块之间的相关度系数分别等于10、8以及1,代码文件c与聊天模块、语音模块以及商场模块之间的相关度系数分别等于10、9以及1。由于代码文件b与活动模块之间的相关度系数小于第一阈值,所以判断代码文件b与活动模块之间不具备关联性,该二者之间所建立的第二对应关系不准确。同样地,由于代码文件c与商城模块之间的相关度系数小于第一阈值,所以判断代码文件c与商城模块之间不具备关联性,该二者之间所建立的第二对应关系不准确。
60.在步骤s3中,当代码文件需要测试时,通常会首先提出测试请求。在本实施中,测试请求采用向需求管理平台提交测试需求的方式提出。通常情况下,测试需求除了包括待测试的代码文件信息(例如代码文件的文件名、存储路径等)之外,还会包括需求描述(下文以第二需求描述表示)以对待测试的代码文件的测试目的进行说明。例如“聊天复制功能优化测试”、“好友聊天功能优化测试”等。
61.一旦发现待测试的代码文件的测试需求被提交至需求管理平台,首先根据测试需求的第二需求描述确定待测试的代码文件的目标业务模块。此处,目标业务模块指的是待测试的代码文件其测试目的所直接针对的业务模块。举例说明,针对于聊天模块进行聊天复制功能优化后对代码文件进行测试,测试需求的第二需求描述为“聊天复制功能优化测试”,从该第二需求描述确定待测试的代码文件其测试目的所直接针对的是聊天模块,所以聊天模块即为待测试的代码文件的目标业务模块。接着,根据第二对应关系确定待测试的代码文件的相关业务模块。此处,相关业务模块指的是除了目标业务模块之外待测试的代码文件可能影响到的业务模块,即除了目标业务模块之外对待测试的代码文件进行复用的其他业务模块。由于在前述步骤s2中预先建立了代码文件和业务模块之间的第二对应关系,所以可以根据待测试的代码文件以及第二对应关系确定该代码文件的相关业务模块。
62.在一个优选实施例中,如图3所示,根据代码文件的测试需求确定代码文件的目标业务模块、以及根据第二对应关系确定代码文件的相关业务模块的步骤包括:
63.在步骤s31中,当发现待测试的代码文件的测试需求被提交至需求管理平台时,对该代码文件的测试需求的第二需求描述进行分词,以得到第二词条集合,该第二词条集合包括至少一个词条(下文以第二词条表示)。
64.在步骤s32中,将第二词条与业务模块的名称进行匹配,并将匹配成功的业务模块确定为代码文件的目标业务模块。
65.在步骤s33中,首先根据第二对应关系获取代码文件对应的所有业务模块作为相关业务模块的候选项,接着从候选项中去掉目标业务模块,最后在剩下的候选项中选择与代码文件之间相关度系数超过第一阈值的业务模块作为代码文件的相关业务模块。
66.继续前述举例,以对代码文件a、代码文件b以及代码文件c的测试进行说明。当聊天模块的聊天复制功能优化的测试需求被提交至需求管理平台后,首先对测试需求的第二需求描述“聊天复制功能优化测试”进行分词处理,得到“聊天”、“复制”、“功能”、“优化”以及“测试”五个第二词条。将“聊天”、“复制”、“功能”、“优化”以及“测试”这五个第二词条分别与商城模块、活动模块、聊天模块、好友模块以及语音模块进行匹配,其中第二词条“聊天”与聊天模块匹配成功,因此确定待测试的代码文件a、代码文件b以及代码文件c其目标业务模块是聊天模块。接着根据第二对应关系确定与代码文件a对应的业务模块是聊天模块,与代码文件b对应的业务模块是聊天模块、好友模块和活动模块,与代码文件c对应的业
务模块是聊天模块、语音模块和商城模块。去掉作为目标业务模块的聊天模块之后,获取代码文件b与好友模块、活动模块之间的关系度系数分别是8和1,以及获取代码文件c与语音模块、商城模块之间的关系度系数分别是9和1,其中,相关度系数超过第一阈值的业务模块是好友模块和语音模块,因此将好友模块作为代码文件b的相关业务模块,以及将语音模块作为代码文件c的相关业务模块。
67.此处需要说明的是,(1)当一个代码文件还未足够多次被关联时,会存在代码文件与业务模块之间虽然具有关联性,但是其二者的相关度系数还未超过第一阈值。针对于这种可能性,可以统计代码文件被关联的次数,当代码文件被关联的次数低于预设阈值时,认为该代码文件与业务模块之间相关度系数还不足以准确反映其二者之间的关联性。这种情况下,存在多种处理方式。例如可以不考虑相关度系数,而是从根据第二对应关系所得到的所有业务模块中去掉目标业务模块,将剩下的所有业务模块作为代码文件的相关业务模块,又例如从根据第二对应关系所得到的所有业务模块中去掉目标业务模块,将剩下的所有业务模块按照其与代码文件之间相关度系数的大小进行排序,选择排序位于前面的业务模块作为相关业务块,以尽可能地避免相关业务模块的遗漏。(2)针对于并未对代码文件与业务模块之间设置相关度系数的情况,可以从根据第二对应关系所得到的所有业务模块中去掉目标业务模块,将剩下的所有业务模块作为代码文件的相关业务模块。
68.在步骤s4中,在确定了待测试代码文件的目标业务模块以及相关业务模块之后,将目标业务模块与第一对应关系中的业务模块进行匹配,并获取匹配成功的业务模块所对应的测试用例,该测试用例用于对目标业务模块进行测试。除此之外,将相关业务模块与第一对应关系中的业务模块进行匹配,并获得匹配成功的业务模块所对应的测试用例,该测试用例用于对相关业务模块进行测试。最后,将用于目标业务模块和相关业务模块的测试用例提供给测试人员。
69.继续前述举例,当对聊天模块的聊天复制功能优化进行测试时,在确定了目标业务模块是聊天模块、相关业务模块是好友模块和语音模块之后,根据第一对应关系获取与聊天模块相对应的测试用例、与好友模块相对应的测试用例、以及与语音模块相对应的测试用提供给测试人员。
70.本发明所提供的测试用例推荐方法,一方面实现了测试用例的自动推荐,相较于现有人为确定测试用例的方式来说,有效地提高了测试效率;另一方面,除了可以提供与代码文件测试目的直接相关的目标业务模块的测试用例之外,还可以提供代码文件可能影响到的其他相关业务模块的测试用例,如此一来,可以有效避免人为选择或编写测试用例可能出现的遗漏,进而确保测试的全面性。
71.在一个优选实施例中,在建立测试用例与业务模块之间的第一对应关系之前,本发明所提供的方法还包括:汇总不同项目中各业务模块的测试用例并去掉内容重复的测试用例。现有技术中,测试用例通常以项目为单位,即每个项目具有自己的测试用例。由于不同项目通常会涉及相同的业务模块,所以不同项目中相同业务模块分别具有自己的测试用例。将不同项目中各业务模块的测试用例进行汇总并去掉内容重复的测试用例,这种方式针对于各业务模块来说可以有效地形成测试用例之间的互补,有利于提高测试用例的全面性。此外,现有技术中每个项目的测试用例通常由该项目的测试人员来编写,也就是说,不同项目的测试用例由不同的测试人员编写。由于有些测试人员的水平和经验有限,所以导
致其编写的测试用例质量不高。如果利用单个项目的测试用例进行测试,若恰好该项目测试人员编写的测试用例质量不高,则会影响后续的测试质量。所以通过汇总不同项目中各个业务模块的测试用例,可以有效避免上述情况的出现,有利于提高测试用例的总体质量。下面,对如何实现汇总不同项目中各业务模块的测试用例并去掉内容重复的测试用例进行说明。如图4所示,实现步骤如下:
72.在步骤s51中,初始化用例库。例如用例库初始化时不包括任何测试用例,或者将一个项目各业务模块的测试用例存储至用例库作为初始化。其中,只要保证初始化用例库中的测试用例之间不存在重复即可。
73.在步骤s52中,接收不同项目中各业务模块上传的待入库测试用例,并检测用例库中是否存在与待入库测试用例属于相同业务模块的已入库测试用例。
74.若不存在则执行步骤s53,将待入库测试用例存储至用例库中;若存在则执行步骤s54,计算待入库测试用例和已入库测试用例之间的文本相似度。
75.在步骤s54中,若文本相似度的计算结果超过预定阈值(下文以第二阈值表示),则维持已入库测试用例或利用待入库测试用例替换已入库测试用例;否则,将待入库测试用例存储至所述用例库中。其中,文本相似度计算结果超过第二阈值,表明待入库测试用例与已入库测试用例之间相似度很高,可以认为其二者内容相同是相同的测试用例;反之则认为其二者是不同的测试用例。
76.需要说明的是,(1)现有技术中测试用例主要包括由汉字构成的手动测试用例、以及由机器语言构成的自动测试用例。本实施例主要针对的是由汉字构成的手动测试用例。针对于由机器语言构成的自动测试用例,上传后无需计算文本相似度直接存储至用例库即可。(2)实际应用中,通常是将一批测试用例(例如一个项目的测试用例或者一个业务模块的测试用例)进行入库操作,而且已入库的测试用例数量也不止一个,这种情况下,需要对每一个待入库测试用例分别与各个已入库测试用例进行相似度计算。(3)考虑到接收待入库测试用例时,存在同时接收不同项目相同业务模块的测试用例的情况,即存在待入库测试用例之间存在内容重复的可能,所以在计算待入库测试用例和已入库测试用例之间的文本相似度时,可以以一个项目的业务模块为单位进行文本相似度计算,例如待入库测试用例包括游戏项目1中聊天模块的测试用例、以及游戏项目2中聊天模块的测试用例,这种情况下,先对游戏项目1中聊天模块的测试用例与已入库测试用例进行文本相似度计算并根据计算结果对测试用例进行入库,然后再对游戏项目2中聊天模块的测试用例与已入库测试用例(包括游戏项目1中聊天模块入库的测试用例)进行文本相似度计算并根据计算结果对测试用例进行入库,如此一来,在接收待入库测试用例中存在内容相同测试用例的情况下,可以有效避免相同内容的测试用例入库。
77.文本相似度存在多种计算方式。在一个优选实施例中,利用nlp(natural language processing,自然语言处理)技术计算待入库测试用例和已入库测试用例之间的文本相似度。如图5所示,计算过程如下:
78.在步骤s541中,对待入库测试用例和已入库测试用例进行分词处理,分别得到第三词条集合和第四词条集合。其中,第三词条集合包括至少一个词条(下文以第三词条表示),同样地,第四词条集合也至少包括一个词条(下文以第四词条表示)。优选地,分词处理后去掉无意义的词条(例如停止词、连接词、介词、语气词等)形成第三词条集合和第四词条
集合。
79.在步骤s542中,将第三词条集合和第四词条集合进行汇总并去除重复词条后得到第五词条集合。
80.在步骤s543中,形成第一词频向量和第二词频向量,其中,第一词频向量由所述第五词条集合中的各词条在第三词条集合中的第一词频构成,第二词频向量由第五词条集合中的各词条在第四词条集合中的第二词频构成。
81.在步骤s544中,计算第一词频向量和第二词频向量之间的相似度作为待入库测试用例和已入库测试用例之间的文本相似度。
82.以一个具体实施例进行说明。假设已入库测试用例的内容是“购买道具,查看背包到货情况”,待入库测试用例的内容是“点击购买一个道具,检查道具是否进背包”,计算其二者的文本相似度。首先执行步骤s541,对待入库测试用例进行分词处理得到第三词条集合{点击、购买、一个、道具、检查、是否、进、背包},对已入库测试用例进行分词处理得到第四词条集合{购买、道具、查看、背包、到货、情况}。接着执行步骤s542,将第三词条集合和第四词条集合进行汇总并去除重复词条后得到第五词条集合{点击、购买、一个、道具、检查、是否、进、背包、查看、到货、情况}。接着执行步骤s543,首先统计第五词条集合中的各词条在第三词条集合中的第一词频如下:点击1、购买1、一个1、道具2、检查1、是否1、进1、背包1、查看0、到货0、情况0;统计第五词条集合中的各词条在第四词条集合中的第二词频如下:点击0、购买1、一个0、道具1、检查0、是否0、进0、背包1、查看1、到货1、情况1。根据第一词频形成第一词频向量{1,1,1,2,1,1,1,1,0,0,0}以及根据第二词频形成第二词频向量{0,1,0,1,0,0,0,1,1,1,1}。最后执行步骤s544,计算第一词频向量{1,1,1,2,1,1,1,1,0,0,0}和第二词频向量{0,1,0,1,0,0,0,1,1,1,1}之间的余弦距离,并将其作为待入库测试用例和已入库测试用例之间的文本相似度。
83.需要说明的是,(1)向量之间余弦距离的计算是现有技术,在此不再对其进行详细说明。其中,余弦距离的值越接近1表明待入库测试用例和已入库测试用例之间的相文本似度越高。(2)计算得到待入库测试用例和已入库测试用例之间的文本相似度之后,将该文本相似度与预设阈值进行比较,当文本相似度大于预设阈值,则认为待入库测试用例和已入库测试用例二者内容相同,反之则认为二者不同。其中,预设阈值的具体数值根据实际设计需求或者经验值来确定。(3)针对于前述实施例中已入库测试用例的内容是“购买道具,查看背包到货情况”、待入库测试用例的内容是“点击购买一个道具,检查道具是否进背包”的情况,对第一词频向量和第二词频向量之间的余弦距离进行计算,结果表明待入库测试用例和已入库测试用例内容相同。
84.当待入库测试用例和已入库测试用例之间的文本相似度超过第二阈值时,表明待入库测试用例与已入库测试用例之间相似度很高,可以认为其二者内容相同是相同的测试用例。这种情况下,可以进一步统计第三词条集合中第三词条的第一字数总和、以及统计第四词条集合中第四词条的第二字数总和,然后将第一字数总和与第二字数总和进行比较。考虑到文本相似度高的两个测试用例,在去除无意义词条之后文本长的一个通常携带的信息更为完整,所以当第一字数总和大于第二字数总和时,认为待入库测试用例比已入库测试用例所携带的信息更为完整,因此利用待入库测试用例替换已入库测试用例,否则放弃待入库测试用例继续维持已入库测试用例。继续前述用例,通过文本相似度计算已经表明,
待入库测试用例“点击购买一个道具,检查道具是否进背包”与已入库测试用例“购买道具,查看背包到货情况”内容相同,计算第三词条集合{点击、购买、一个、道具、检查、是否、进、背包}的第一字数总和为15,计算第四词条集合{购买、道具、查看、背包、到货、情况}的第二字数总和为12,这种情况下,利用代入库测试用例“点击购买一个道具,检查道具是否进背包”代替已入库测试用例“购买道具,查看背包到货情况”。当然本领域技术人员可以理解的是,当计算表明待入库测试用例与已入库测试用例之间相似度很高时,也可以直接放弃待入库测试用例继续维持已入库测试用例。
85.在一个优选实施例中,本发明所提供的方法还包括对用例库进行更新,以确保测试用例的准确性以及持续有效性。例如可以向用例库上传测试人员根据业务模块所新增或修改的测试用例、或向用例库上传经专家评审后的测试用例、又或者向用例库上传根据线上bug形成的测试用例等。
86.此外,还需要说明的是,尽管在附图中以特定顺序描述了本发明方法的操作,但是,这并非要求或者暗示必须按照该特定顺序来执行这些操作,或是必须执行全部所示的操作才能实现期望的结果。相反,流程图中描绘的步骤可以改变执行顺序。附加地或备选地,可以省略某些步骤,将多个步骤合并为一个步骤执行,和/或将一个步骤分解为多个步骤执行。
87.相应地,本发明还提供了一种测试推荐装置。请参考图6,图6是根据本发明的一个具体实施例的测试用例推荐装置的结构示意图。如图所示,该装置20包括:
88.第一建立模块201,用于建立测试用例与业务模块之间的第一对应关系;
89.第二建立模块202,用于建立代码文件与业务模块之间的第二对应关系,其中,所述代码文件与一个或多个业务模块之间存在对应关系;
90.确定模块203,用于响应于代码文件的测试请求,根据所述代码文件的测试请求确定所述代码文件的目标业务模块、以及根据所述第二对应关系确定所述代码文件的相关业务模块;
91.推荐模块204,用于根据所述目标业务模块、所述相关业务模块以及所述第一对应关系获取相应的测试用例,并对该测试用例进行推荐。
92.本发明所提供的测试推荐装置可以实现自动且全面的测试用例的推荐。
93.相应地,本发明还公开了一个或多个存储计算机可执行指令的计算机可读介质,所述指令在由一个或多个计算机设备使用时使得一个或多个计算机设备执行如前文所述的测试用例推荐方法的各个具体实施方式,例如图1所示出的测试用例推荐方法。所述计算机可读介质可以是可由计算机设备访问的任何可用介质,且包括用任何方法和技术实现以存储诸如计算机可读指令、数据结构、程序模块或其它数据等信息的易失性和非易失性介质、可移动和不可移动介质。计算机可读介质包括但不限于,ram、rom、eeprom、闪存或其它存储器技术、cd

rom、数字多功能盘(dvd)或其它光存储、盒式磁带、磁带、磁盘存储或其它磁存储设备,或者可用于存储所需信息并且可由计算设备访问的任何其它介质。上述的任意组合也应包含在计算机可读介质的范围内。
94.相应地,本发明还公开了一种电子设备。请参考图7,图7是用于实施本发明的测试用例推荐方法的一种电子设备的结构示意图。如图所示,该电子设备30包括存储器301和处理器302,其中:所述存储器301存储有计算机程序,所述处理器302执行所述计算机程序时
实现如前文所述的测试用例推荐方法的各个具体实施方式,例如图1所示出的测试用例推荐方法。其中存储器301和处理器302可以通过总线连接。
95.本发明提供的测试用例推荐方法中涉及软件逻辑的部分可以使用可编程逻辑器件来实现,也可以实施为计算机程序产品,该程序产品使计算机执行用于所示范的方法。所述计算机程序产品包括计算机可读存储介质,该介质上包含计算机程序逻辑或代码部分,用于实现上述涉及软件逻辑的部分的各个步骤。所述计算机可读存储介质可以是被安装在计算机中的内置介质或者可从计算机主体拆卸的可移动介质(例如可热拔插的存储设备)。所述内置介质包括但不限于可重写的非易失性存储器,例如ram、rom和硬盘。所述可移动介质包括但不限于:光存储媒体(例如cd

rom和dvd)、磁光存储媒体(例如mo)、磁存储媒体(例如磁带或移动硬盘)、具有内置的可重写的非易失性存储器的媒体(例如存储卡)和具有内置rom的媒体(例如rom盒)。
96.本领域技术人员应当理解,任何具有适当编程装置的计算机系统都能够执行包含在计算机程序产品中的本发明的方法的诸步骤。尽管本说明书中描述的多数具体实施方式都侧重于软件程序,但是以硬件方式实现本发明提供的方法的替代实施例同样在本发明要求保护的范围之内。
97.对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。因此,应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,在权利要求的等同要件的含义和范围内的所有变化均涵括在本发明内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。此外,显然“包括”一词不排除其他部件、单元或步骤,单数不排除复数。权利要求中陈述的多个部件、单元或装置也可以由一个部件、单元或装置通过软件或者硬件来实现。
98.本发明提供的测试用例推荐方法及装置首先建立测试用例与业务模块之间的第一对应关系、以及建立代码文件与业务模块之间的第二对应关系,接着在检测到代码文件需要测试时,一方面根据代码文件的测试需求确定代码文件的目标业务模块,另一方面根据第二对应关系确定代码文件的相关业务模块,最后根据目标业务模块、相关业务模块以及第一对应关系获取相应的测试用例进行推荐。与现有技术中仅仅根据测试需求人为选择测试用例的方式相比,一方面实施本发明可以实现测试用例的自动推荐,有利于测试效率的提高;另一方面实施本发明除了可以提供与代码文件测试目的直接相关的目标业务模块的测试用例之外,还可以提供代码文件可能影响到的其他相关业务模块的测试用例,如此一来,可以有效避免人为选择或编写测试用例可能出现的遗漏,进而确保测试的全面性。
99.以上所披露的仅为本发明的一部分实施例或具体实施方式,不能以此来限定本发明之权利范围,依本发明权利要求所作的等同变化,仍属本发明所涵盖的范围。
再多了解一些

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

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

相关文献