测试用例的校验方法、装置、介质以及电子设备
技术领域
本公开涉及文本处理
技术领域
,具体而言,涉及一种测试用例的校验方法、测试用例的校验装置、计算机可读介质以及电子设备。背景技术
针对文本等类型的字符串的校验方式有多种,例如测试人员写各种形式的断言或者匹配的代码。
但是,编写代码进行校验的效率太低,并且也需要在不同的场景下进行人为判断和维护。因此,这种方式可靠度较低,且不够自动化和智能化。
鉴于此,本领域亟需开发一种新的测试用例的校验方法及装置。
需要说明的是,在上述
背景技术
部分公开的信息仅用于加强对本申请的技术背景的理解,因此可以包括不构成对本领域普通技术人员已知的现有技术的信息。
发明内容
本公开的目的在于提供一种测试用例的校验方法、测试用例的校验装置、计算机可读介质以及电子设备,进而至少在一定程度上克服字符串校验方式的效率和可靠度太低的技术问题。
本公开的其他特性和优点将通过下面的详细描述变得显然,或部分地通过本公开的实践而习得。
根据本公开实施例的一个方面,提供一种测试用例的校验方法,该方法包括:获取与测试用例对应的至少两个用例字符串,并确定所述至少两个用例字符串的公共字符串;
计算所述至少两个用例字符串两两之间的相似度得到相似度集合;
获取执行所述测试用例得到的待校验字符串,并且利用所述公共字符串与所述相似度集合对所述待校验字符串进行校验得到所述测试用例的校验结果。
根据本公开实施例的一个方面,提供一种测试用例的校验装置,该装置包括:公共部分模块,被配置为获取与测试用例对应的至少两个用例字符串,并确定所述至少两个用例字符串的公共字符串;
差异计算模块,被配置为计算所述至少两个用例字符串两两之间的相似度得到相似度集合;
校验执行模块,被配置为获取执行所述测试用例得到的待校验字符串,并且利用所述公共字符串与所述相似度集合对所述待校验字符串进行校验得到所述测试用例的校验结果。
在本公开的一些实施例中,基于以上技术方案,所述校验执行模块包括:个数确定子模块,被配置为获取所述公共字符串的字符串个数,并获取所述待校验字符串的待校验个数;
集合确定子模块,被配置为若所述待校验字符串包括所述公共字符串,且所述字符串个数小于所述待校验个数,确定与所述待校验字符串对应的待校验相似度集合;
集合校验子模块,被配置为利用所述相似度集合对所述待校验相似度集合进行校验得到所述测试用例的校验结果。
在本公开的一些实施例中,基于以上技术方案,所述集合校验子模块包括:校验成功单元,被配置为若所述相似度集合包括所述待校验相似度集合,确定所述测试用例的校验结果为校验成功;
校验失败单元,被配置为若所述相似度集合未包括所述待校验相似度集合,确定所述测试用例的校验结果为校验失败。
在本公开的一些实施例中,基于以上技术方案,所述集合校验子模块,包括:参数获取单元,被配置为获取与所述相似度集合对应的波动参数;
随机校验单元,被配置为利用所述相似度集合和所述波动参数对所述待校验相似度集合进行校验得到校验结果。
在本公开的一些实施例中,基于以上技术方案,所述测试用例的校验装置,还包括:个数确定模块,被配置为获取所述公共字符串的字符串个数,并获取所述待校验字符串的待校验个数;
相同校验模块,被配置为若所述待校验字符串包括所述公共字符串,且所述待校验个数等于所述字符串个数,确定所述测试用例的校验结果为校验成功。
在本公开的一些实施例中,基于以上技术方案,所述测试用例的校验装置,还包括:验证更新模块,被配置为获取与所述至少两个用例字符串对应的验证字符串;
集合更新模块,被配置为利用所述验证字符串更新所述公共字符串和所述相似度集合。
在本公开的一些实施例中,基于以上技术方案,所述集合更新模块,包括:集合确定子模块,被配置为确定所述至少两个用例字符串和所述验证字符串的验证公共字符串和验证相似度集合;
集合比较子模块,被配置为比较所述公共字符串与所述验证公共字符串得到公共比较结果,并比较所述相似度集合与所述验证相似度集合得到相似度比较结果;
比较结果子模块,被配置为根据所述公共比较结果和所述相似度比较结果更新所述公共字符串和所述相似度集合。
在本公开的一些实施例中,基于以上技术方案,所述比较结果子模块,包括:公共更新单元,被配置为若所述公共比较结果为所述公共字符串与所述验证公共字符串存在差异,更新所述公共字符串;和/或
差异更新单元,被配置为若所述相似度比较结果为所述相似度集合与所述验证相似度集合存在差异,更新所述相似度集合。
在本公开的一些实施例中,基于以上技术方案,所述公共部分模块,包括:操作确定子模块,被配置为确定所述至少两个操作字符串两两之间的操作子字符串;
操作聚合子模块,被配置为对所述操作子字符串进行聚合处理得到操作聚合字符串;
操作去重子模块,被配置为对所述操作聚合字符串进行去重处理得到公共字符串。
在本公开的一些实施例中,基于以上技术方案,所述差异计算模块,包括:操作相似子模块,被配置为利用相似度算法计算所述至少两个操作字符串两两之间的相似度得到操作相似度;
操作集合子模块,被配置为对所述操作相似度进行聚合处理得到相似度集合。
在本公开的一些实施例中,基于以上技术方案,所述公共部分模块,包括:网络确定子模块,被配置为确定所述至少两个网络字符串两两之间的网络子字符串;
网络聚合子模块,被配置为对所述网络子字符串进行聚合处理得到网络聚合字符串;
网络去重子模块,被配置为对所述网络聚合字符串进行去重处理得到公共字符串。
在本公开的一些实施例中,基于以上技术方案,所述差异计算模块,包括:网络相似子模块,被配置为利用相似度算法计算所述至少两个网络字符串两两之间的相似度得到网络相似度;
网络集合子模块,被配置为对所述网络相似度进行聚合处理得到相似度集合。
根据本公开实施例的一个方面,提供一种计算机可读介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如以上技术方案中的测试用例的校验方法。
根据本公开实施例的一个方面,提供一种电子设备,该电子设备包括:处理器;以及存储器,用于存储所述处理器的可执行指令;其中,所述处理器被配置为经由执行所述可执行指令来执行如以上技术方案中的测试用例的校验方法。
在本公开实施例提供的技术方案中,一方面,确定至少两个用例字符串的公共字符串和相似度集合,是一种自学习的用例校验方式,运行过程自动化且智能化,无需编写代码,提升了测试用例的字符串的校验效率;另一方面,利用公共字符串和相似度集合对待校验字符串进行校验,无需人工参与,提高了字符串校验的可靠性和准确度。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:
图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示意性地示出了适于用来实现本公开实施例的电子设备的计算机系统的结构示意图。
具体实施方式
现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提供这些实施方式使得本公开将更加全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。
此外,所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施例中。在下面的描述中,提供许多具体细节从而给出对本公开的实施例的充分理解。然而,本领域技术人员将意识到,可以实践本公开的技术方案而没有特定细节中的一个或更多,或者可以采用其它的方法、组元、装置、步骤等。在其它情况下,不详细示出或描述公知方法、装置、实现或者操作以避免模糊本公开的各方面。
附图中所示的方框图仅仅是功能实体,不一定必须与物理上独立的实体相对应。即,可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
附图中所示的流程图仅是示例性说明,不是必须包括所有的内容和操作/步骤,也不是必须按所描述的顺序执行。例如,有的操作/步骤还可以分解,而有的操作/步骤可以合并或部分合并,因此实际执行的顺序有可能根据实际情况改变。
在本领域的相关技术中,字符串校验的方法有很多种。举例而言,写各种形式的断言和匹配。其中,断言是软件开发中一种常用的调试方式,多开发语言都支持。断言用于保证程序最基本和最关键的正确性。
尤其是在测试领域,测试人员需要通过写大量的代码进行字符串验证。并且,在不同的场景下还需要测试人员进行判断和维护。
这种测试人员写代码来校验字符串的方式,使得校验结果因人而异,可靠度不高且变化较大。并且,针对不同的场景,开发人员都要参与写代码进行校验,校验效率太低。
基于以上方案存在的问题,本公开提供了一种基于人工智能的测试用例的校验方法、测试用例的校验装置、计算机可读介质以及电子设备。
人工智能(Artificial Intelligence,AI)是利用数字计算机或者数字计算机控制的机器模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、方法、技术及应用系统。换句话说,人工智能是计算机科学的一个综合技术,它企图了解智能的实质,并生产出一种新的能以人类智能相似的方式做出反应的智能机器。人工智能也就是研究各种智能机器的设计原理与实现方法,使机器具有感知、推理与决策的功能。
人工智能技术是一门综合学科,涉及领域广泛,既有硬件层面的技术也有软件层面的技术。人工智能基础技术一般包括如传感器、专用人工智能芯片、云计算、分布式存储、大数据处理技术、操作/交互系统、机电一体化等技术。人工智能软件技术主要包括计算机视觉技术、语音处理技术、自然语言处理技术以及机器学习/深度学习等几大方向。
其中,机器学习(Machine Learning,ML)是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、算法复杂度理论等多门学科。专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能。机器学习是人工智能的核心,是使计算机具有智能的根本途径,其应用遍及人工智能的各个领域。机器学习和深度学习通常包括人工神经网络、置信网络、强化学习、迁移学习、归纳学习、式教学习等技术。
利用人工智能中机器学习技术的测试用例的校验方法无需人工参与,提高了测试用例校验结果的可靠性,也无需编写代码,提高了测试用例的校验效率。
图1示出了应用本公开技术方案的示例性系统架构示意图。
如图1所示,系统架构100可以包括终端110、网络120、服务器端130。其中,终端110和服务器端130通过网络120连接。
终端110可以是智能手机、平板电脑、笔记本电脑、台式计算机、智能音箱、智能手表等,但并不局限于此。网络120可以是能够在终端110和服务器端130之间提供通信链路的各种连接类型的通信介质,例如可以是有线通信链路、无线通信链路或者光纤电缆等等,本申请在此不做限制。服务器130可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN、以及大数据和人工智能平台等基础云计算服务的云服务器。
具体地,服务器端130获取到与测试用例对应的至少两个用例字符串,并确定至少两个用例字符串的公共字符串,且计算至少两个用例字符串两两之间的相似度得到相似度集合。进一步的,获取执行测试用例得到的待校验字符串,以利用公共字符串与相似度集合对待校验字符串进行校验得到测试用例的校验结果。
另外,本公开实施例中的测试用例的校验方法可以应用于终端,也可以应用于服务器端,本公开对此不做特殊限定。本公开实施例主要以测试用例的校验方法应用于服务器端130来举例说明。
下面结合具体实施方式对本公开提供的测试用例的校验方法、测试用例的校验装置、计算机可读介质以及电子设备做出详细说明。
图2示意性地示出了本公开的一些实施例中测试用例的校验方法的步骤流程图,如图2所示,测试用例的校验方法主要可以包括以下步骤:
步骤S210.获取与测试用例对应的至少两个用例字符串,并确定至少两个用例字符串的公共字符串。
步骤S220.计算至少两个用例字符串两两之间的相似度得到相似度集合。
步骤S230.获取执行测试用例得到的待校验字符串,并且利用公共字符串与相似度集合对待校验字符串进行校验得到测试用例的校验结果。
在本公开的示例性实施例中,一方面,确定至少两个用例字符串的公共字符串和相似度集合,是一种自学习的用例校验方式,运行过程是自动化且智能化的,无需编写代码,提升了测试用例的字符串的校验效率;另一方面,利用公共字符串和相似度集合对待校验字符串进行校验,无需人工参与,提高了字符串校验的可靠性和准确度。
下面对测试用例的校验方法的各个步骤进行详细说明。
在步骤S210中,获取与测试用例对应的至少两个用例字符串,并确定至少两个用例字符串的公共字符串。
在本公开的示例性实施例中,该测试用例可以是录制好的用例,并且可以是通过录制引擎进行录制的。
值得说明的是,录制好的测试用例可以看做一系列的操作流和网络流。其中,操作流可以是用户的各个操作,网络流可以是用户在各个操作中产生的网络请求。
与该测试用例对应的至少两个用例字符串可以是回放录制好的测试用例的过程中产生的字符串。
举例而言,当测试用例为测试用户点击搜索引擎搜索数据的功能的用例时,操作流对应的字符串可以是搜索引擎的名称或其他元素的值,网络流可以是搜索数据对应的标识字符串等,本示例性实施例对此不做特殊限定。
因此,至少两个用例字符串可以包括操作流对应的字符串和网络流对应的字符串两种类别,以确定不同类别下的公共字符串。
图3和图4分别示出了两种类别下确定公共字符串的方法的步骤流程图。其中,图3示出了操作流对应的操作字符串确定公共字符串的方法的步骤流程图,图4示出了网络流对应的网络字符串确定公共字符串的方法的步骤流程图。
在可选的实施例中,至少两个用例字符串包括至少两个操作字符串。图3示出了操作字符串得到公共字符串的方法的步骤流程图,如图3所示,该方法至少包括以下步骤:在步骤S310中,确定至少两个操作字符串两两之间的操作子字符串。
至少两个操作字符串为操作流对应的字符串,该字符串可以是文本形式,也可以是数字形式,本示例性实施例对此不做特殊限定。
确定至少两个字符串两两之间相同字符串的方式可以是利用标准库Python中difflib模块的标准算法。difflib模块无需安装,提供的算法的作用是对比文本等字符串之间的差异,而且支持输出可读性比较强的文档。
因此,使用difflib模型的标准算法可以两两的比对出操作字符串之间的操作子字符串。该子字符串可以是两两操作字符串之间相同的字符串。
具体的,difflib模型的标准算法可以首先将分别将两个操作字符串中包括的所有字符串存放到对应的集合中得到两个字符串集合;然后,对两个字符串集合求交集得到这两个操作字符串的操作子字符串。当操作字符串的个数大于2时,确定其他两两操作字符串之间的操作子字符串的方式与此相同,不再赘述。
举例而言,当第一个操作字符串的字符串集合为{元素1、元素2、元素3},第二个操作字符串的字符串集合为{元素1、元素2、元素4},第三个操作字符串的字符串集合为{元素2、元素5}时,对第一个操作字符串和第二个操作字符串求交集得到第一个操作字符串和第二个操作字符串之间的操作子字符串为{元素1、元素2},对第一个操作字符串和第三个操作字符串求交集得到第一个操作字符串和第三个操作字符串之间的操作子字符串为{元素2},对第二个操作字符串和第三个操作字符串求交集得到第二个操作字符串和第三个操作字符串之间的操作子字符串为{元素2}。因此,可以得到这三个操作字符串的操作子字符串分别为{元素1、元素2}、{元素2}和{元素2}。
在步骤S320中,对操作子字符串进行聚合处理得到操作聚合字符串。
在确定两两操作字符串之间相同的操作子字符串之后,可以将操作子字符串之间进行聚合处理得到操作聚合字符串,该操作聚合字符串可以包括至少一个操作子字符串。
举例而言,当三个操作字符串的操作子字符串分别为{元素1、元素2}、{元素2}和{元素2}时,对这三个操作子字符串进行聚合处理可以得到聚合字符串为{元素1、元素2、元素2、元素2}。
在步骤S330中,对操作聚合字符串进行去重处理得到公共字符串。
在得到操作聚合字符串之后,可以进一步对操作聚合字符串进行去重处理,以得到公共字符串,该公共字符串可以包括至少一个不同的操作子字符串。
举例而言,当操作聚合字符串为{元素1、元素2、元素2、元素2}时,对{元素1、元素2、元素2、元素2}进行去重处理可以得到公共字符串为{元素1、元素2}。
在本示例性实施例中,给出了至少两个操作字符串时确定公共字符串的方法,逻辑缜密的确定方式保证了公共字符串的准确性,并且提高了公共字符串的确定效率。
在可选的实施例中,至少两个用例字符串包括至少两个网络字符串。图4示出了网络字符串得到公共字符串的方法的步骤流程图,如图4所示,该方法至少包括以下步骤:在步骤S410中,确定至少两个网络字符串两两之间的网络子字符串。
至少两个网络字符串为网络流对应的字符串,该字符串可以是文本形式,也可以是数字形式,本示例性实施例对此不做特殊限定。
确定至少两个字符串两两之间相同字符串的方式也可以是利用标准库Python中difflib模块的标准算法。
因此,使用difflib模型的标准算法可以两两的比对出网络字符串之间的网络子字符串。该网络子字符串可以是两两网络字符串之间相同的字符串。
举例而言,当第一个网络字符串的字符串集合为{1、2、3},第二个网络字符串的字符串集合为{1、2、4},第三个网络字符串的字符串集合为{2、5}时,对第一个网络字符串和第二个网络字符串求交集得到第一个网络字符串和第二个网络字符串之间的网络子字符串为{1、2},对第一个网络字符串和第三个网络字符串求交集得到第一个网络字符串和第三个网络字符串之间的网络子字符串为{2},对第二个网络字符串和第三个网络字符串求交集得到第二个网络字符串和第三个网络字符串之间的网络子字符串为{2}。因此,可以得到这三个网络字符串的网络子字符串分别为{1、2}、{2}和{2}。
在步骤S420中,对网络子字符串进行聚合处理得到网络聚合字符串。
在确定两两网络字符串之间相同的网络子字符串之后,可以将网络字符串之间进行聚合处理得到网络聚合字符串,该网络聚合字符串包括多个网络字符串。
举例而言,当三个网络字符串的网络子字符串分别为{1、2}、{2}和{2}时,对这三个网络子字符串进行聚合处理可以得到网络聚合字符串为{1、2、2、2}。
在步骤S430中,对网络聚合字符串进行去重处理得到公共字符串。
在得到网络聚合字符串之后,可以进一步对网络聚合字符串进行去重处理,以得到公共字符串,该公共字符串可以包括至少一个不同的网络聚合字符串。
举例而言,当网络聚合字符串为{1、2、2、2}时,对{1、2、2、2}进行去重处理可以得到公共字符串为{1、2}。
在本示例性实施例中,给出了至少两个网络字符串时确定公共字符串的方法,逻辑缜密的确定方式保证了公共字符串的准确性,并且提高了公共字符串的确定效率。
值得说明的是,不论是对操作字符串确定对应的公共字符串,或者是对网络字符串确定对应的公共字符串,也可以根据实际情况利用其他算法或方式直接得到不重复的公共字符串,本示例性实施例对公共字符串的确定方式不做特殊限定。
在步骤S220中,计算至少两个用例字符串两两之间的相似度得到相似度集合。
在本公开的示例性实施例中,除了确定至少两个用例字符串之间的公共字符串之外,还可以进一步计算至少两个用例字符串之间的相似度。
图5和图6分别示出了计算操作字符串和网络字符串的相似度得到相似度集合的方法的步骤流程图。其中,图5示出了计算操作字符串之间的相似度得到相似度集合的方法的步骤流程图,图6示出了计算网络字符串之间的相似度得到相似度集合的方法的步骤流程图。
在可选的实施例中,图5示出了得到操作字符串的相似度集合的方法的步骤流程图,如图5所示,该方法至少包括以下步骤:在步骤S510中,利用相似度算法计算至少两个操作字符串两两之间的相似度得到操作相似度。
该相似度算法也可以是difflib模型的标准算法,还可以是其他计算相似度的算法,本示例性实施例对此不做特殊限定。
利用相似度算法对两两操作字符串进行相似度计算可以分别得到两两操作字符串之间的操作相似度。
具体的,difflib模型的标准算法可以先分别对两个操作字符串进行分词处理得到分词字符串,然后计算分词字符串之间余弦值作为对应的操作相似度。
分别对两个操作字符串进行分词处理的方式包括基于规则分词和基于统计分词。
其中,基于规则分词是通过预先构建词典按照匹配方式进行分词切分。该词典可以是多元文法N-gram(汉语语言模型)词典,并按照分词策略将操作字符串与预先构建的多元文法N-gram词典进行匹配得到每个字符串的可能切分结果,然后采用基于多元文法N-gram词典的最短路径方法计算出最终的分词字符串。
基于统计分词是利用经过标注的语料训练构建的分类器来进行分词处理。分类器可以是利用机器学习或深度学习算法进行训练构建的。这类算法通过可以采用隐含马尔柯夫模型(Hidden Markov Model,简称HMM)、条件随机场算法(conditional random fieldalgorithm,简称CRF)和深度学习等。
除此之外,也可以直接通过调用多种不同的分词工具作为分词模型,分别调用类型不同的分词工具对操作字符串进行分词处理得到分词字符串。该操作字符串也可以称为粗分语料。调用类型不同的分词工具对操作字符串进行初步分词处理得到与不同的分词工具对应的多个初始分词,将多个初始分词合并成初始分词集合。此时,初始分词集合所包含的初始分词数据较多,可以通过对每个初始分词进行投票缩减初始分词的数量。其中,投票过程可以是按照分词工具统计得到的。举例而言,对于某个初始分词,三种分词工具均可以从原始文本中切分得到该初始分词,此时该初始分词作为分词字符串。如果三种分词工具对于该初始分词的分词结果不一致,直接丢弃该初始分词;如果两种分词工具对该初始分词的分词结果一致,另一种分词工具的分词结果不一致,可以确定该初始分词为分词字符串。
当使用多种分词工具进行分词时,通过投票方式可以初步缩小初始分词集合中初始分词的数量,保证分词字符串的有效性。
其中,分词工具可以采用开源中文分词工具,例如结巴中文分词、Hanlp分词器、哈工大语言技术平台(Language Technology Platform,简称LTP)、由清华大学自然语言处理与社会人文计算实验室研制推出的一套中文词法分析工具包(THU Lexial Analyzer forChinese,简称THULAC)、斯坦福分词器、自然语言处理与信息检索共享平台NLPIR等。这些分词工具分别具备各自的分词特点。举例而言,调用的多种分词工具分别可以是LTP、THULAV和NLPIR三种分词工具对操作字符串进行分词处理。
LTP的分词模块基于CRF模型进行训练和解码,它在观测序列的基础上对目标序列进行建模,采用的数据来源是1998年1-6月人民日报中的数据。通过获取文件路径分词接口进行初始化,调用分词接口对操作字符串进行分词处理得到分词字符串。
THULAC工具包自带模型训练原始语料,但是需要授权。THULAC工具包的中文分词和词性标注功能具有能力强、准确率高的特点。它可以通过配置接口参数,调用分词语句来对操作字符串进行分词处理得到分词字符串。
NLPIR工具是一个全链条的分析工具,可以对操作字符串进行分词。在具体分词过程中,需要导入预先构建的词典,通过调用词典来进行初次切分得到切分结果。进一步的,再使用概率统计方法和简单规则消除歧义词语,并利用词频信息识别未登录词语,经过消除歧义和识别未登录词后得到分词字符串。
在得到分词字符串之后,可以计算分词字符串之间的余弦值作为操作相似度。
余弦相似度通过测量两个分词字符串的向量的夹角的余弦值来度量它们之间的相似性。0度角的余弦值是1,而其他任何角度的余弦值都不大于1,并且其最小值是-1,从而两个向量之间的角度的余弦值确定两个向量是否大致指向相同的方向。两个向量有相同的指向时,余弦相似度的值为1;两个向量夹角为90°时,余弦相似度的值为0;两个向量指向完全相反的方向时,余弦相似度的值为-1。这结果是与向量的长度无关的,仅仅与向量的指向方向相关。余弦相似度通常用于正空间,因此给出的值为0到1之间。
两个分词字符串之间的余弦相似度可以通过欧几里得点积公式求出:
a·b=‖a‖‖b‖cosθ (1)
在给定两个字符串的向量A和B时,余弦相似度θ由点积和向量长度得出:
其中,Ai和Bi分别代表向量A和向量B的对应分量。
因此,第一个操作字符串和第二个操作字符串的操作相似度为20%,第一个操作字符串和第三个操作字符串的操作相似度为31%,第二个操作字符串和第三个操作字符串的操作相似度为50%。
值得说明的是,操作相似度的形式可以是百分比的形式,可以是小数形式,也可以是其他数值形式,本示例性实施例对此不做特殊限定。
在步骤S520中,对操作相似度进行聚合处理得到相似度集合。
在得到两两操作字符串之间的操作相似度之后,可以进一步进行聚合处理得到相似度集合,该相似度集合包括至少一个操作相似度。
举例而言,第一个操作字符串和第二个操作字符串的操作相似度为20%,第一个操作字符串和第三个操作字符串的操作相似度为31%,第二个操作字符串和第三个操作字符串的操作相似度为50%。进一步的,对这三个操作相似度进行聚合处理可以得到相似度集合为{20%、31%、50%}。
值得说明的是,该相似度集合也可以是列表的形式,或者是序列的形式。当相似度集合为序列的形式时,可以按照操作相似度的大小排序,以在后续验证是否学习完成,或者是在校验过程中快速使用。
在本示例性实施例中,通过分别计算两两操作字符串之间的操作相似度可以得到对应的相似度集合,计算方式简单准确,从相似度集合方面提升了整体的学习效率。
图6示出了计算网络字符串之间的相似度得到相似度集合的方法的步骤流程图,如图6所示,该方法至少包括以下步骤:在步骤S610中,利用相似度算法计算至少两个网络字符串两两之间的相似度得到网络相似度。
该相似度算法也可以是difflib模型的标准算法,还可以是其他计算相似度的算法,本示例性实施例对此不做特殊限定。
利用相似度算法对两两网络字符串进行相似度计算可以分别得到两两网络字符串之间的网络相似度。具体计算方式与步骤S510相同,在此不再赘述。
举例而言,第一个网络字符串和第二个网络字符串的网络相似度为80%,第一个网络字符串和第三个网络字符串的网络相似度为71%,第二个网络字符串和第三个网络字符串的网络相似度为77%。
值得说明的是,网络相似度的形式可以是百分比的形式,可以是小数形式,也可以是其他数值形式,本示例性实施例对此不做特殊限定。
在步骤S620中,对网络相似度进行聚合处理得到相似度集合。
在得到两两网络字符串之间的网络相似度之后,可以进一步进行聚合处理得到相似度集合。
举例而言,第一个网络字符串和第二个网络字符串的网络相似度为80%,第一个网络字符串和第三个网络字符串的网络相似度为71%,第二个网络字符串和第三个网络字符串的网络相似度为77%。进一步的,对这三个网络相似度进行聚合处理可以得到相似度集合为{80%、71%、77%}。
值得说明的是,该相似度集合也可以是列表的形式,或者是序列的形式。当相似度集合为序列的形式时,可以按照网络相似度的大小排序,以在后续验证是否学习完成,或者是在校验过程中快速使用。
在本示例性实施例中,通过分别计算两两网络字符串之间的网络相似度可以得到对应的相似度集合,计算方式简单准确,从相似度集合方面提升了整体的学习效率。
值得说明的是,不论是计算操作字符串之间的操作相似度得到相似度集合,还是计算网络字符串之间的网络相似度得到相似度集合,也可以根据实际情况利用其他算法或方式得到相似度集合,本示例性实施例对相似度集合的计算方式不做特殊限定。
在确定至少两个用例字符串的公共字符串和相似度集合之后,还可以进一步对此时学习到的公共字符串和相似度集合进行验证。当验证结果为公共字符串和相似度集合都不再变化时,确定此时学习结束,无需对公共字符串和相似度集合进行更新;当验证结果为公共字符串和相似度集合还不稳定时,需要对公共字符串和/或相似度集合进行更新。
在可选的实施例中,图7示出了更新公共字符串和相似度集合的方法的步骤流程图,如图7所示,该方法至少包括以下步骤:在步骤S710中,获取与至少两个用例字符串对应的验证字符串。
该验证字符串可以是将至少两个用例字符串中的一个进行拷贝得到的,也可以是再回放一次测试用例生成的操作流或网络流对应的字符串,本示例性实施例对验证字符串的获取方式不做特殊限定。
值得说明的是,当要验证的是根据操作字符串得到的公共字符串或相似度集合时,该验证字符串就是拷贝或根据测试用例的操作流得到的字符串;当要验证的是根据网络字符串得到的公共字符串或相似度集合时,该验证字符串就是拷贝或根据测试用例的网络流得到的字符串。
在步骤S720中,利用验证字符串更新公共字符串和相似度集合。
在可选的实施例中,图8示出了根据比较结果更新公共字符串和相似度集合的方法的步骤流程图,如图8所示,该方法至少包括以下步骤:在步骤S810中,确定至少两个用例字符串和验证字符串的验证公共字符串和验证相似度集合。
在确定验证字符串时,确定验证公共字符串的字符串除了至少两个用例字符串之外,还包括了一条新增的验证字符串。而验证公共字符串的确定方式与步骤S210确定公共字符串的方式相同,在此不再赘述。
对应的,确定验证相似度的字符串除了至少两个用例字符串之外,还新增了一条验证字符串。而计算至少两个用例字符串和验证字符串两两之间的相似度得到验证相似度集合的方式与步骤S220中得到相似度集合的方式相同,在此不再赘述。
在步骤S820中,比较公共字符串与验证公共字符串得到的公共比较结果,并比较相似度集合与验证相似度集合得到相似度比较结果。
对公共字符串和验证公共字符串的比较方式可以是比较二者之间是否存在差异以得到公共比较结果。存在差异的方式包括但不限于公共字符串的个数和验证公共字符串的个数是否相同,公共字符串是否与验证公共字符串中的字符串一致等。
而对相似度集合和验证相似度集合之间的比较方式也可以是二者之间是否存在差异以得到相似度比较结果。存在差异的方式包括但不限于相似度集合和验证相似度中的相似度个数是否相同,相似度集合和验证相似度集合中的相似度是否一致等。
在步骤S830中,根据公共比较结果和相似度比较结果更新公共字符串和相似度集合。
在可选的实施例中,图9示出了进一步根据比较结果更新公共字符串和相似度集合的方法的步骤流程图,如图9所示,该方法至少包括以下步骤:在步骤S910中,若公共比较结果为公共字符串与验证公共字符串存在差异,更新公共字符串。
若公共字符串和验证公共字符串的公共比较结果为二者存在差异,可以更新公共字符串。更新方式可以是将验证公共字符串替换公共字符串做新的公共字符串,也可以是将验证公共字符串中公共字符串没有的字符串新增到公共字符串,也可以是其他更新方式,本示例性实施例对更新方式不做特殊限定。
在步骤S920中,若相似度比较结果为相似度集合与验证相似度集合存在差异,更新相似度集合。
若相似度集合与验证相似度集合的相似度比较结果为二者存在差异,可以更新相似度集合。更新方式可以是将验证相似度集合替换相似度集合作为新的相似度集合,也可以是将验证相似度集合中相似度集合没有的相似度新增到相似度集合中,也可以是其他更新方式,本示例性实施例对此不做特殊限定。
值得说明的是,当公共比较结果为公共字符串与验证公共字符串存在差异时,可以是仅更新公共字符串,也可以是同时更新公共字符串和相似度集合;当相似度比较结果为相似度集合与验证相似度集合存在差异时,可以是仅更新相似度集合,也可以是同时更新相似度集合和公共字符串。
在对公共字符串和/或相似度集合更新之后,为确定更新后的公共字符串和相似度集合是否稳定,可以继续获取待校验字符串进行新一轮的验证和更新,直至满足验证次数之后,公共字符串和相似度集合在每一轮的验证中均不再变化,表明学习结束。
或者是当公共比较结果为公共字符串和验证公共字符串之间未存在差异,以及相似度比较结果为相似度集合与验证相似度集合之间未存在差异时,可以继续获取新的待校验字符串进行新一轮验证,直至满足验证次数之后,公共字符串和相似度集合在每一轮的验证中均不再变化,确定学习结束。
在本示例性实施例中,在确定公共字符串和相似度集合之后,可以对公共字符串和相似度集合进行更新,以使公共字符串和相似度集合稳定,为后续校验过程提供数据基础,保证了校验结果的准确性。
在步骤S230中,获取执行测试用例得到的待校验字符串,并且利用公共字符串与相似度集合对待校验字符串进行校验得到测试用例的校验结果。
在本公开的示例性实施例中,待校验字符串可以是为校验测试用例要测试的功能是否变化或可用时,执行测试用例得到的操作流或网络流对应的字符串。
在获取到待校验字符串之后,可以利用公共字符串和相似度集合对待校验字符串进行校验,以实现对测试用例的校验。
在可选的实施例中,图10示出了同时利用公共字符串和相似度集合进行校验的方法的步骤流程图,如图10所示,该方法至少包括以下步骤:在步骤S1010中,获取公共字符串的字符串个数,并获取待校验字符串的待校验个数。
字符串个数可以是表征公共字符串中包括的无重复字符串的个数。
举例而言,当公共字符串是根据至少两个操作字符串得到,且公共字符串为{元素1、元素2、元素3}时,可以统计到此时的字符串个数为3个;当公共字符串是根据至少两个网络字符串得到,且公共字符串为{1、2、3、4}时,可以统计到此时的字符串个数为4个。
而待校验个数为待校验字符串中所包含的无重复的字符串的个数。举例而言,当待校验字符串为{元素1、元素2}时,待校验个数为2个;当待校验字符串为{1、2、3}时,待校验个数为3个。
除此之外,待校验个数也可以是在实际情况的需求下,统计出待校验字符串中的所有字符串的个数。亦即在该统计过程中,对待校验字符串中的字符串是否重复不做区分,均计入待校验个数的统计结果中。
在步骤S1020中,若待校验字符串包括公共字符串,且字符串个数小于待校验个数,确定与待校验字符串对应的待校验相似度集合。
将公共字符串和待校验字符串进行匹配,亦即确定公共字符串中的每一个字符串是否也在待校验字符串中存在。当确定公共字符串中的每一个字符串存在在待校验字符串中,可以确定待校验字符串中包括公共字符串。
进一步的,对字符串个数和待校验个数进行比较。在字符串个数小于待校验个数时,表明公共字符串和待校验字符串存在公共部分的字符串,也存在差异部分的字符串。
为进一步验证差异部分的字符串是否还能实现该测试用例的功能,可以进一步确定与待校验字符串对应的待校验相似度集合。
其中,该待校验相似度集合可以是计算待校验字符串和各个至少两个用例字符串之间的相似度得到的,计算方式与步骤S220中计算相似度集合的方式相同,在此不再赘述。
在步骤S1030中,利用相似度集合对待校验相似度集合进行校验得到测试用例的校验结果。
在可选的实施例中,图11示出了得到校验结果的方法的步骤流程图,如图11所示,该方法至少包括以下步骤:在步骤S1110中,若相似度集合包括待校验相似度集合,确定测试用例的校验结果为校验成功。
当相似度集合包括待校验相似度集合中的每一个相似度,确定相似度集合包括待校验相似度集合,此时可以通过对待校验字符串的校验确定测试用例的校验结果是校验成功。
在步骤S1120中,若相似度集合未包括待校验相似度集合,确定测试用例的校验结果为校验失败。
当相似度集合中未包括待校验相似度集合中的每一个相似度,确定相似度集合未包括待校验相似度集合,此时通过对待校验字符串的校验确定测试用例的校验结果为校验失败。
在本示例性实施例中,通过相似度集合和待校验相似度集合之间的校验结果,可以确定测试用例的校验结果,校验方式准确性高,且提升了校验效率。
对于公共字符串和待校验字符串之间差异部分的字符串规律变化时,可以仅利用公共字符串和相似度集合进行校验。而当公共字符串和待校验相似度之间差异部分的字符串随机变化时,还可以获取波动参数一同进行校验。
在可选的实施例中,图12示出了利用波动参数进行校验的方法的步骤流程图,如图12所示,该方法至少包括以下步骤:在步骤S1210中,获取与相似度集合对应的波动参数。
该波动参数是一允许相似度上下波动的阈值,可以是预先设定的,也可以是根据公共字符串和待校验字符串计算出来的,还可以是根据其他方式确定的,本示例性实施例对此不做特殊限定。
在步骤S1220中,利用相似度集合和波动参数对待校验相似度集合进行校验得到校验结果。
利用相似度和波动参数对待校验相似度进行校验时,可以是首先按照图11方式确定相似度集合中是否包括待校验相似度集合。
若相似度集合中未包括待校验相似度集合中的每一个相似度,可以将所述相似度集合中的相似度和各个待校验相似度集合中的相似度之间做差值,并判断差值是否小于波动参数。
若差值均小于波动参数,确定测试用例的校验结果为校验成功;若存在个别或全部均值未小于波动参数,可以确定测试用例的校验结果为校验失败。
在本示例性实施例中,利用公共字符串、相似度集合和波动参数对待校验字符串进行校验确定测试用例的校验结果,提高了校验的准确度和效率,并丰富了校验方法的应用场景。
除了同时利用公共字符串和相似度集合进行校验,或者是同时利用公共字符串、相似度集合和波动参数进行校验之外,还可以仅根据公共字符串进行校验。
在可选的实施例中,图13示出了利用公共字符串进行校验的方法的步骤流程图,如图13所示,该方法至少包括以下步骤:在步骤S1310中,获取公共字符串的字符串个数,并获取待校验字符串的待校验个数。
字符串个数可以是表征无重复字符串的公共字符串的个数。
在步骤S1320中,若待校验字符串包括公共字符串,且待校验个数等于字符串个数,确定测试用例的校验结果为校验成功。
将公共字符串和待校验字符串进行匹配,亦即确定公共字符串中的每一个字符串是否也在待校验字符串中存在。当确定公共字符串中的每一个字符串存在在待校验字符串中,可以确定待校验字符串中包括公共字符串。
进一步的,对字符串个数和待校验个数进行比较。在字符串个数等于待校验个数时,表明公共字符串和待校验字符串完全相同,那么可以进一步确定测试用例校验成功。
在本示例性实施例中,利用公共字符串对待校验字符串进行校验确定测试用例的校验结果,提高了校验的准确度和效率,并丰富了校验方法的应用场景。
下面结合一具体应用场景对本公开实施例中提供的测试用例的校验方法做出详细说明。
图14示出了应用场景下测试用例的校验方法的步骤流程图,如图14所示,在步骤S1401中,下发回放学习任务。
图15示出了应用场景中设置录制场景的界面示意图,如图15所示,当测试人员将录制的场景设置为ONLINE(上线)时,服务器会下发一条学习任务到任务表中。
图16示出了应用场景中学习任务的界面示意图,如图16所示,学习任务的名称为Scene Auto Learn Task(场景自动学习任务),且场景标识(scene list)为41,产品标识(product id)为4。
进一步的,回放引擎可以根据学习任务的名称Scene Auto Learn Task从服务器获取到当前的产品标识为4。然后,通过产品标识4可以拉取当前未执行的任务的任务信息。该任务信息中可以包括场景标识和表征该任务为学习(Learn)任务或校验(Verify)任务的信息,也可以包括其他的任务信息,本示例性实施例对此不做特殊限定。
其中,回放引擎获取当前的产品标识的时间间隔为1秒,也可以设置其他时长,本示例性实施例对此不做特殊限定。回放引擎可以支持两种类别的任务,分别是Learn的任务和Verify的任务。每次执行任务的时候,都可以通过场景标识从服务器拉取该场景下的操作流和网络流,并进行精准回放。
在步骤S1402中,回放引擎执行时上报待校验的文本。
在回放引擎执行操作流和网络流的过程中,可以产生操作流对应的文本和网络流对应的文本,亦即至少两个用例字符串。并且,将至少两个用例字符串上报到服务器。
图17示出了应用场景下一种至少两个字符串的界面示意图,如图17所示,至少两个字符串为操作流的操作字符串。操作流字符串为text(文本)对应的内容,分别是6、4、3、2、SMB客户清单、客户管理、客户运营和INPUT。
图18示出了应用场景下另一种至少两个字符串的界面示意图,如图18所示,至少两个字符串为网络流对应的网络字符串。网络字符串为text(文本)对应的内容,分别是{\“table_name\”:\“client_ka_smb\”……}、{\“table_name\”:\“label_router\”,……}、{}、{\“table_name\”:\“label_client\”,……}和{\“table_name\”:\“supplier\”,……}。
在步骤S1403中,文本公共部分学习。
在应用场景中,当至少两个用例字符串的个数超过3个时,可以触发学习任务的执行。
公共部分的学习方式可以是利用difflib模块两两的比对出至少两个用例字符串之间的子字符串。当至少两个用例字符串为至少两个操作字符串时,子字符串为操作子字符串;当至少两个用例字符串为至少两个网络字符串时,子字符串为网络子字符串。
在步骤S1404中,文本差异相似度部分学习。
差异相似度部分的学习也可以是difflib模型的标准算法等相似度算法。利用相似度算法对两两操作字符串进行相似度计算可以分别得到两两操作字符串之间的操作相似度。对应的,利用相似度算法对两两网络字符串进行相似度计算可以分别得到两两网络字符串之间的网络相似度。
在步骤S1405中,文本公共子串聚合。
在得到操作子字符串之后,可以将操作子字符串之间进行聚合处理得到操作聚合字符串;在得到网络子字符串之后,可以将网络子字符串之间进行聚合处理得到网络聚合字符串。
若操作聚合字符串或网络聚合字符串中的字符串存在重复部分,可以进行去重处理得到公共字符串。
在步骤S1406中,文本差异相似度部分聚合。
在得到操作相似度之后,可以进行聚合处理得到相似度集合。对应的,在得到网络相似度之后,可以进行聚合处理得到相似度集合。
在步骤S1407中,公共子串模式判断。
在得到公共字符串之后,可以新增一个验证字符串判断公共字符串是否会发生变化。若发生变化时,可以更新公共字符串,并发起新一轮的验证,直至连续3次公共字符串不再发生变化。
在步骤S1408中,差异部分模式判断。
同样的,还可以利用新增的验证字符串判断相似度列表是否会发生变化。若发生变化,可以更新相似度列表,病发期新一轮的验证,直至持续3次相似度列表不再发生变化。
在步骤S1409中,文本模式存储。
当公共字符串和相似度列表同时连续3次不再变化时,表示学习任务结束,可以按照固定格式,亦即文本模式将公共字符串和相似度集合存储起来,例如存储在数据库中。
图19示出了应用场景下按照文本模式存储的界面示意图,如图19所示,将学习到的至少两个操作字符串按照文本模式保存起来。
举例而言,该文本模式的具体格式可以是:
{
"now_time":"2020-09-28 19:52:36",
"text_list":["6"],
"result":[
["6"],
[]
],
"wave_num":5//
}
其中,now_time为学习结束的时间,text_list为学习时用到的用例字符串,result中包括公共字符串和相似度集合中的相似度,wave_num为该测试用例对应的波动参数。当wave_num为5时,表征相似度在上下为5的范围内的值,都确定校验成功,否则校验失败。
进一步的,那个回放引擎接收到Verify任务时,可以将待校验字符串导入到服务器中的验证表里。当服务器中的文本校验引擎发现验证表中存在待校验字符串时,可以执行校验任务的算法。
在步骤S1410中,获取执行测试用例得到的待校验字符串,亦即网络请求流产生的文本。其中,文本流为已确定的公共字符串和相似度集合。
图20示出了测试用例的校验方法可校验的场景示意图,如图20所示,可校验的场景首先包括完全相同场景。完全相同场景的验证可以仅通过公共字符串进行校验。
在步骤S1411中,公共子串验证全部存在。
获取公共字符串的字符串个数,并获取待校验字符串的待校验个数。然后,若待校验字符串包括公共字符串,且待校验个数等于字符串个数,确定测试用例的校验结果为校验成功。
但是当待校验字符串包括公共字符串,且字符串个数小于待校验个数时,进一步利用相似度集合进行验证。
因此,图20中可校验的场景还包括部分差异场景。当部分差异场景为差异部分规律变化时,可以进一步仅利用相似度集合进行校验。
在步骤S1412中,相似度差异计算。
确定与待校验字符串对应的待校验相似度集合。其中,该待校验相似度集合可以是计算待校验字符串和至少两个用例字符串两两之间的相似度得到的。
当相似度集合包括待校验相似度集合中的每一个相似度,确定相似度集合包括待校验相似度集合,此时可以通过对待校验字符串的校验确定测试用例的校验结果是校验成功;当相似度集合中未包括待校验相似度集合中的每一个相似度,确定相似度集合未包括待校验相似度集合,此时通过对待校验字符串的校验确定测试用例的校验结果为校验失败。
除此之外,图20中可校验的场景还包括差异部分随机变化的部分差异场景,可以再获取波动参数进行校验。
在步骤S1413中,相似度波动匹配验证。
利用相似度和波动参数对待校验相似度进行校验时,可以是首先按照图11方式确定相似度集合中是否包括待校验相似度集合。
若相似度集合中未包括待校验相似度集合中的每一个相似度,可以将所述相似度集合中的相似度和待校验相似度集合中的相似度两两之间做差值,并判断差值是否小于波动参数。
若差值均小于波动参数,确定测试用例的校验结果为校验成功;若存在个别或全部均值未小于波动参数,可以确定测试用例的校验结果为校验失败。
在步骤S1414中,单操作文本结果聚合。
若完全相同场景为多个时,可以一一按照完全相同场景的校验方式进行校验,并对多个单个校验结果进行聚合处理得到多个完全相同场景的校验结果。
在步骤S1415中,单操作网络请求结果聚合。
当部分差异场景为多个时,可以一一按照两种部分差异场景的校验方式进行校验,并对多个单个校验结果进行聚合处理得到多个部分差异场景的校验结果。
在步骤S1416中,单一场景结果聚合。
将完全相同场景和部分差异场景的校验结果进行聚合处理,得到最后所有的校验场景的校验结果。
可以看出,步骤S1401-S1409为新回放场景入库的学习部分,步骤S1410-S1416为新场景执行测试的校验部分。
图21示出了应用场景下待校验字符串校验的记录的界面示意图,如图21所示,state_text为校验状态,text为待校验字符串。
图22示出了应用场景下所有校验结果的界面示意图,如图22所示,state_text为SUCCESS表征校验成功,state_text为FALL表征校验失败。
图23示出了应用测试用例的校验方法的示例的步骤结果图,如图23所示,至少两个用例字符串包括4个用例字符串,分别为‘{“platform”:“pc”,“reqid”:“bc319c38-7009-4d2b-ad75-b2266037eeee”,“conferenceld”:“5ed10d0372101c6d5a4b130c”}’、‘{“platform”:“pc”,“reqid”:“cfc151aa-a886-4184-bfa2-10fd9709f263”,“conferenceld”:“5ed10d0372101c6d5a4b130c”}’、‘{“platform”:“pc”,“reqid”:“8a986dc5-d40c-47cb-869d-3e8bd6411e03”,“conferenceld”:“5ed10d0372101c6d5a4b130c”}’和‘{“platform”:“pc”,“reqid”:“39689567-f4be-458d-a187-9a7fa140b6d2”,“conferenceld”:“5ed10d0372101c6d5a4b130c”}’。
确定四个用例字符串的公共字符串为{“platform”:“pc”,“reqid”:“conferenceld”:“5ed10d0372101c6d5a4b130c”},且相似度集合为{74,77,70,74,74,76}。
获取执行测试用例得到的待校验字符串为‘{“platform”:“pc”,“reqid”:“fjd5md74-fqce-deac-b983-3c5a98c4f3ca”,“conferenceld”:“5ed10d0372101c6d5a4b130c”}’。
利用公共字符串可以对待校验字符串进行校验得到待校验字符串包括公共字符串,并利用相似度集合确定待校验相似度集合为{77,76,78,73}。并且,可以设定波动参数c=1,那么即可确保待校验字符串对应的待校验相似度集合属于相似度集合,亦即保证测试用例的校验结果为校验成功。
基于以上应用场景可知,本公开实施例提供的测试用例的校验方法,一方面,确定至少两个用例字符串的公共字符串和相似度集合,是一种自学习的用例校验方式,运行过程是自动化且智能化的,无需编写代码,提升了测试用例的字符串的校验效率;另一方面,利用公共字符串和相似度集合对待校验字符串进行校验,无需人工参与,提高了字符串校验的可靠性和准确度。
应当注意,尽管在附图中以特定顺序描述了本公开中方法的各个步骤,但是,这并非要求或者暗示必须按照该特定顺序来执行这些步骤,或是必须执行全部所示的步骤才能实现期望的结果。附加的或备选的,可以省略某些步骤,将多个步骤合并为一个步骤执行,以及/或者将一个步骤分解为多个步骤执行等。
以下介绍本公开的装置实施例,可以用于执行本公开上述实施例中的测试用例的校验方法。对于本公开装置实施例中未披露的细节,请参照本公开上述的测试用例的校验方法的实施例。
图24示意性地示出了在本公开一些实施例中的一种测试用例的校验装置的结构框图,如图24所示,测试用例的校验装置2400主要可以包括:公共部分模块2410、差异计算模块2420和校验执行模块2430。
公共部分模块2410,被配置为获取与测试用例对应的至少两个用例字符串,并确定至少两个用例字符串的公共字符串;差异计算模块2420,被配置为计算至少两个用例字符串两两之间的相似度得到相似度集合;校验执行模块2430,被配置为获取执行测试用例得到的待校验字符串,并且利用公共字符串与相似度集合对待校验字符串进行校验得到测试用例的校验结果。
在本公开的一些实施例中,校验执行模块包括:个数确定子模块,被配置为获取公共字符串的字符串个数,并获取待校验字符串的待校验个数;
集合确定子模块,被配置为若待校验字符串包括公共字符串,且字符串个数小于待校验个数,确定与待校验字符串对应的待校验相似度集合;
集合校验子模块,被配置为利用相似度集合对待校验相似度集合进行校验得到测试用例的校验结果。
在本公开的一些实施例中,集合校验子模块包括:校验成功单元,被配置为若相似度集合包括待校验相似度集合,确定测试用例的校验结果为校验成功;
校验失败单元,被配置为若相似度集合未包括待校验相似度集合,确定测试用例的校验结果为校验失败。
在本公开的一些实施例中,集合校验子模块,包括:参数获取单元,被配置为获取与相似度集合对应的波动参数;
随机校验单元,被配置为利用相似度集合和波动参数对待校验相似度集合进行校验得到校验结果。
在本公开的一些实施例中,测试用例的校验装置,还包括:个数确定模块,被配置为获取公共字符串的字符串个数,并获取待校验字符串的待校验个数;
相同校验模块,被配置为若待校验字符串包括公共字符串,且待校验个数等于字符串个数,确定测试用例的校验结果为校验成功。
在本公开的一些实施例中,测试用例的校验装置,还包括:验证更新模块,被配置为获取与至少两个用例字符串对应的验证字符串;
集合更新模块,被配置为利用验证字符串更新公共字符串和相似度集合。
在本公开的一些实施例中,基于以上技术方案,集合更新模块,包括:集合确定子模块,被配置为确定至少两个用例字符串和验证字符串的验证公共字符串和验证相似度集合;
集合比较子模块,被配置为比较公共字符串与验证公共字符串得到公共比较结果,并比较相似度集合与验证相似度集合得到相似度比较结果;
比较结果子模块,被配置为根据公共比较结果和相似度比较结果更新公共字符串和相似度集合。
在本公开的一些实施例中,比较结果子模块,包括:公共更新单元,被配置为若公共比较结果为公共字符串与验证公共字符串存在差异,更新公共字符串;和/或
差异更新单元,被配置为若相似度比较结果为相似度集合与验证相似度集合存在差异,更新相似度集合。
在本公开的一些实施例中,公共部分模块,包括:操作确定子模块,被配置为确定至少两个操作字符串两两之间的操作子字符串;
操作聚合子模块,被配置为对操作子字符串进行聚合处理得到操作聚合字符串;
操作去重子模块,被配置为对操作聚合字符串进行去重处理得到公共字符串。
在本公开的一些实施例中,差异计算模块,包括:操作相似子模块,被配置为利用相似度算法计算至少两个操作字符串两两之间的相似度得到操作相似度;
操作集合子模块,被配置为对操作相似度进行聚合处理得到相似度集合。
在本公开的一些实施例中,公共部分模块,包括:网络确定子模块,被配置为确定至少两个网络字符串两两之间的网络子字符串;
网络聚合子模块,被配置为对网络子字符串进行聚合处理得到网络聚合字符串;
网络去重子模块,被配置为对网络聚合字符串进行去重处理得到公共字符串。
在本公开的一些实施例中,差异计算模块,包括:网络相似子模块,被配置为利用相似度算法计算至少两个网络字符串两两之间的相似度得到网络相似度;
网络集合子模块,被配置为对网络相似度进行聚合处理得到相似度集合。
本公开各实施例中提供的测试用例的校验装置的具体细节已经在对应的方法实施例中进行了详细的描述,因此此处不再赘述。
图25示出了适于用来实现本公开实施例的电子设备的计算机系统的结构示意图。
需要说明的是,图25示出的电子设备的计算机系统2500仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
如图25所示,计算机系统2500包括中央处理单元(Central Processing Unit,CPU)2501,其可以根据存储在只读存储器(Read-Only Memory,ROM)2502中的程序或者从储存部分2508加载到随机访问存储器(Random Access Memory,RAM)2503中的程序而执行各种适当的动作和处理。在RAM 2503中,还存储有系统操作所需的各种程序和数据。CPU2501、ROM 2502以及RAM 2503通过总线2504彼此相连。输入/输出(Input/Output,I/O)接口2505也连接至总线2504。
以下部件连接至I/O接口2505:包括键盘、鼠标等的输入部分2506;包括诸如阴极射线管(Cathode Ray Tube,CRT)、液晶显示器(Liquid Crystal Display,LCD)等以及扬声器等的输出部分2507;包括硬盘等的储存部分2508;以及包括诸如LAN(Local AreaNetwork,局域网)卡、调制解调器等的网络接口卡的通信部分2509。通信部分2509经由诸如因特网的网络执行通信处理。驱动器2510也根据需要连接至I/O接口2505。可拆卸介质2511,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器2510上,以便于从其上读出的计算机程序根据需要被安装入储存部分2508。
特别地,根据本公开的实施例,各个方法流程图中所描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分2509从网络上被下载和安装,和/或从可拆卸介质2511被安装。在该计算机程序被中央处理单元(CPU)2501执行时,执行本申请的系统中限定的各种功能。
需要说明的是,本公开实施例所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(Erasable Programmable Read Only Memory,EPROM)、闪存、光纤、便携式紧凑磁盘只读存储器(Compact Disc Read-Only Memory,CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本公开中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、有线等等,或者上述的任意合适的组合。
附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
应当注意,尽管在上文详细描述中提及了用于动作执行的设备的若干模块或者单元,但是这种划分并非强制性的。实际上,根据本公开的实施方式,上文描述的两个或更多模块或者单元的特征和功能可以在一个模块或者单元中具体化。反之,上文描述的一个模块或者单元的特征和功能可以进一步划分为由多个模块或者单元来具体化。
通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本公开实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、触控终端、或者网络设备等)执行根据本公开实施方式的方法。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。
- 上一篇:石墨接头机器人自动装卡簧、装栓机
- 下一篇:模块的测试方法、计算机设备和存储介质