CN117643036A - 基于人工智能的认知测试脚本生成 - Google Patents

基于人工智能的认知测试脚本生成 Download PDF

Info

Publication number
CN117643036A
CN117643036A CN202280048958.0A CN202280048958A CN117643036A CN 117643036 A CN117643036 A CN 117643036A CN 202280048958 A CN202280048958 A CN 202280048958A CN 117643036 A CN117643036 A CN 117643036A
Authority
CN
China
Prior art keywords
test
test case
scripts
specifications
natural language
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
Application number
CN202280048958.0A
Other languages
English (en)
Inventor
S·塔赫维利
H·古斯塔夫松
M·奥莱蒂
M·阿贝丁
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Telefonaktiebolaget LM Ericsson AB
Original Assignee
Telefonaktiebolaget LM Ericsson AB
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Telefonaktiebolaget LM Ericsson AB filed Critical Telefonaktiebolaget LM Ericsson AB
Publication of CN117643036A publication Critical patent/CN117643036A/zh
Pending legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/50Testing arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3684Test management for test design, e.g. generating new test cases
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/205Parsing
    • G06F40/216Parsing using statistical methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/30Semantic analysis
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W24/00Supervisory, monitoring or testing arrangements
    • H04W24/06Testing, supervising or monitoring using simulated traffic
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/16Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks using machine learning or artificial intelligence

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Signal Processing (AREA)
  • Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Quality & Reliability (AREA)
  • Computer Hardware Design (AREA)
  • Probability & Statistics with Applications (AREA)
  • Debugging And Monitoring (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

一种测试通信系统中的网络节点的方法,包括获得描述与网络节点相关联的测试需求的自然语言需求规范,以及基于自然语言需求规范从测试用例规范库中选择一个或多个测试用例规范。该方法包括从测试用例规范中提取文本特征,生成包括从测试用例规范中提取的文本特征的特征向量,以及将特征向量映射到多个可用测试脚本。响应于特征向量的映射,选择多个可用测试脚本中的一个或多个可用测试脚本用于执行,并且对于所选择的测试脚本中的一个或多个所选择的测试脚本,生成测量测试用例规范与所选测试脚本的关联的置信度的置信度得分。还公开了相关系统。

Description

基于人工智能的认知测试脚本生成
技术领域
本公开涉及计算机化系统,例如通信系统,并且具体地,涉及用于测试计算机化系统的系统和方法。
背景技术
计算机化系统,例如通信系统、控制系统、管理系统、财务系统等,可以是具有多个可编程组件的复杂系统,这些组件彼此交互和/或与系统内部和/或外部的元素、节点、接口等交互。
例如,图1中示出了一种简化的无线通信系统20。系统5包括用户设备(UE)10,其使用包括分量载波17P、17S、18的无线电连接与一个或多个接入节点11、12通信。接入节点11、12连接到核心网络节点16。接入节点11-12是无线电接入网络15的一部分。如图1所示,UE10可以经由载波聚合被配置为通过多个分量载波17P、17S向/从单个接入节点11通信。
对于遵循3GPP演进分组系统(EPS)(也称为长期演进(LTE)或4G)标准规范的无线通信系统,接入节点11、12通常对应于演进节点B(eNB),核心网络节点16通常对应于移动性管理实体(MME)和/或服务网关(SGW)。eNB是无线电接入网络15的一部分,在这种情况下无线电接入网络15是E-UTRAN(演进通用陆地无线电接入网络),而MME和SGW都是EPC(演进分组核心网络)的一部分。
对于遵循3GPP 5G系统、5GS(也称为新空口(NR)或5G)标准规范的无线通信系统,接入节点11-12通常对应于5G节点B(gNB),并且核心网络节点16典型地对应于接入和移动性管理功能(AMF)和/或用户面功能(UPF)。gNB是无线电接入网络15的一部分,在这种情况下无线电接入网络15是NG-RAN(下一代无线电接入网络),而AMF和UPF都是5G核心网络(5GC)的一部分。
5G系统包括接入网络和核心网络。接入网络(AN)是允许UE获得与核心网络(CN)连接的网络,例如可以是5G中的gNB或ng-eNB的基站。CN包含所有网络功能(NF),确保各种不同的功能性,例如会话管理、连接管理、计费、认证等。
诸如图1中所示的无线通信系统20之类的通信系统使用计算机化网络和执行复杂软件以控制其操作的每个方面的设备来操作。其他类型的计算机化系统也同样复杂。在这方面,软件测试在计算机化系统的软件工程中起着至关重要的作用。软件测试有助于确保软件系统的可靠性和质量,这直接影响最终产品的质量,并最终影响计算机化系统的用户的体验质量。软件测试有助于确保开发的产品、解决方案和应用的质量。
软件测试既昂贵又耗时。在通信网络的上下文中,软件测试涉及设计和创建适当的测试用例,其旨在验证和证实(validate)计算机化系统或设备的操作。每个测试用例旨在调查系统或设备的特定特征或功能。由于通信设备和系统的复杂性以及操作它们所需的软件的复杂性,可能需要许多测试用例来测试单个设备或系统。测试用例生成被认为是软件测试生命周期(STLC)中最困难和最耗时的阶段之一。事实上,测试用例生成估计消耗了总SLTC工作量的40%到70%。
以前,生成测试用例的最常见方法之一是通过手动劳动。在手动方法中,一组测试人员分析并执行一组测试用例规范。测试用例规范文档描述了要手动测试的软件的功能。测试用例规范可以描述要测试的通信系统或设备的功能,以及测试条件和性能/评估标准。
通过自动化测试用例的生成,可以减少手动工作,从而减少时间和成本。
已经进行了一些尝试来自动化测试用例选择的过程。例如,CN111176996A公开了一种对目标测试用例使用词语分割处理的方法。然而,其中描述的方法不支持多种语言,并且是领域相关的。
发明内容
测试用例和测试脚本通常是使用手动过程创建的,其中测试工程师阅读需求规范并使用他们的经验和判断创建适当的测试用例或测试脚本。这个过程非常耗时,并且可能会出现判断错误、不确定性和模糊性。此外,为给定的需求规范创建适当的测试用例和测试脚本需要相关领域的丰富知识和经验。采用以前的知识来测试新产品可能很困难。由于各种挑战,用于自动化测试用例和测试脚本选择的传统方法取得的成功有限。例如,各种方法可能缺乏分析和解析不是以正式语言编写的需求规范的能力。此外,各种方法缺乏分析用不同自然(人类)语言而不是英语编写的需求规范的能力。一些方法不生成或选择适当的可执行测试脚本,而是简单地提出用于手动生成测试脚本的抽象准则。最后,一些方法高度依赖于领域,并且不能轻易应用于新的或不同的领域。
因此,本发明的目的是解决一个或多个上述问题。一些实施例提供了根据示出的一些实施例的一种测试计算机化系统中的元素的方法。所述元素可以包括例如应用、产品、节点、接口或所述计算机化系统的其他方面。所述方法包括获得描述与所述元素相关联的测试需求列表的自然语言需求规范,以及基于所述自然语言需求规范从测试用例规范库中选择要用于测试所述元素的测试用例规范。具体地,通过应用自动语言处理技术(例如自然语言处理(NLP))来分析所述需求规范的所述文本来选择所述测试用例规范。所述方法包括从所述测试用例规范中提取文本特征,生成包括从所述测试用例规范中提取的文本特征的特征向量,以及将所述特征向量映射到多个可用测试脚本。响应于所述特征向量的所述映射,选择所述多个可用测试脚本中的一个或多个可用测试脚本用于执行,并且对于所选择的测试脚本中的一个或多个所选择的测试脚本,生成测量所述测试用例规范与所选择的测试脚本的关联的置信度(confidence)的置信度得分。
在一些实施例中,选择所述测试用例规范可以包括使用自然语言处理来分析所述自然语言需求规范。对于所述测试用例规范库中的多个测试用例规范,生成表示所述自然语言需求规范与所述测试用例规范的相关性(relevance)的相关性得分,并且基于相关联的相关性得分来选择所述测试用例规范。
所述方法还可以包括经由用户接口输出所选择的测试脚本的标识和相关联的置信度得分并且执行所选择的测试脚本。
在一些实施例中,基于相关联的相关性得分选择所述测试用例规范包括响应于所述相关性得分高于预定阈值来选择所述测试用例规范。
在一些实施例中,基于所述相关联的相关性得分选择所述测试用例规范包括从所述多个测试用例规范中选择具有最高相关性得分的测试用例规范。
在一些实施例中,使用自然语言处理来分析所述自然语言需求规范包括对所述自然语言需求规范执行词性标记(part of speech tagging)以标识所述自然语言需求规范中的关键术语。
所述方法还可以包括接收与所述测试用例规范库中的训练测试用例规范相关联的用户反馈,其中与所述第一测试用例规范相关联的所述相关性得分基于所述用户反馈。
所述用户反馈可以包括所述训练测试用例规范相对于先前分析的需求规范是否是相关(relevant)、中性(neutral)还是不相关(irrelevant)的指示。
使用文本语义相似性度量(metric)来生成所述相关性自然得分,所述文本语义相似性度量使用相对于所述自然语言需求规范和所述测试用例规范库中的所述多个测试用例规范的余弦距离得分。
在一些实施例中,所述测试用例规范可以用不同的语言编写。
在一些实施例中,从所述测试用例规范中提取所述文本特征包括将所述测试用例规范分割成一组规范词、对所述一组规范词中的所述词执行词性标记、以及从所述一组规范词中移除停用词(stop word)。
生成所述特征向量可以包括从所述一组规范词中选择所有动词,以及从所述一组规范词中选择满足选择标准的所有名词和形容词,所述选择标准可以包括在所述一组规范词内出现的频率。
所述方法还可以包括从所述特征向量生成多个增强特征向量,其中生成所述多个增强特征向量作为所述特征向量的子集,以及使用所述多个增强特征向量训练用于将所述特征向量映射到所述多个可用测试脚本的分类器。
将所述特征向量映射到多个可用测试脚本可以包括为所述多个可用测试脚本中的每一个可用测试脚本生成标签向量并使用文本分类器对所述标签向量进行分类。为所述多个可用测试脚本中的每一个可用测试脚本生成所述标签向量可以包括为所述多个可用测试脚本中的每个测试脚本生成所述测试脚本中的术语的向量。
在一些实施例中,可以使用一对所有分类策略对所述标签向量进行分类。
所述方法还可以包括生成与所述多个可用测试脚本中的每一个可用测试脚本相关联的预测得分,其中响应于所述特征向量的映射来选择所述多个可用测试脚本中的一个或多个可用测试脚本用于执行是基于所述预测得分执行的。
在一些实施例中,响应于所述特征向量的所述映射来选择所述多个可用测试脚本中的所述一个或多个可用测试脚本用于执行可以基于相关联的预测得分是否大于阈值来执行。
可以基于与所选择的测试脚本中的每一个所选择的测试脚本相关联的所述预测得分来生成所选择的测试脚本中的每一个所选择的测试脚本的所述置信度得分。
所述方法还可以包括响应于输出所选择的测试脚本的所述标识而接收用户输入,以及响应于所述用户输入而执行所选择的测试脚本。
一些实施例提供了一种用于测试计算机化系统中的元素的系统。所述系统包括处理器电路和耦合到所述处理器电路的存储器。所述存储器包括计算机程序指令,所述计算机程序指令当由所述处理器电路执行时使得所述系统执行操作,包括获得描述与所述元素相关联的测试需求的自然语言需求规范,以及基于所述自然语言需求规范从测试用例规范库中选择测试用例规范。所述系统从所述测试用例规范中提取文本特征,生成包括从所述测试用例规范中提取的文本特征的特征向量,将所述特征向量映射到多个可用测试脚本,响应于所述特征向量的所述映射选择所述多个可用测试脚本中的一个或多个可用测试脚本用于执行,并且针对所选择的测试脚本中的一个或多个所选择的测试脚本,生成置信度得分,所述置信度得分测量所述测试用例规范与所选择的测试脚本的关联的置信度。
本文描述的一些实施例有利地利用基于AI的框架,所述框架可以基于一组测试需求从头开始自动化所述测试过程。根据一些实施例的一种系统/方法可以导出对每个需求的对应测试规范。所述系统/方法可以为每个测试用例生成对应的不同格式(例如C#和JAVA)的可执行测试脚本。
如本文所描述的一种系统/方法可以提供某些技术优势,例如通过自动化推荐测试用例规范来减少与软件测试相关联的手动工作,所述测试用例规范具有关于所推荐脚本的相关性的高准确度(accuracy)。一些实施例可以通过不需要正式的需求规范或在规范中使用特定的人类语言(例如,英语)选择测试脚本来增加软件测试过程的适应性和/或灵活性,。一些实施例可以容易地部署到新产品/系统的新测试环境,并且可以不限于特定领域。
附图说明
图1示出了简化的无线通信系统。
图2是示出了根据一些实施例的基于AI的认知测试生成器的元素的框图。
图3、图4A和图4B是根据一些实施例的用于自动选择测试用例来测试通信系统/设备的系统/方法的操作的流程图。
图4C和4D示出了根据一些实施例的用于生成用于训练分类器的特征向量的数据增强。
图4E是示出了根据一些实施例的特征向量的分类的流程图。
图5示出了根据一些实施例的基于AI的认知测试生成器的部署环境。
图6是示出了根据一些实施例的用于基于AI的认知测试生成器的多语言特征提取的流程图。
图7、8A和8B是示出了根据一些实施例的系统/方法的操作的流程图。
图9是可以通过根据一些实施例的系统/方法来测试的通信设备的框图。
图10是可以通过根据一些实施例的系统/方法来测试的通信设备的框图。
图11是根据一些实施例的用于选择用于执行的测试脚本的计算系统的框图。
具体实施方式
现在将在下文中参考附图更全面地描述本发明构思,在附图中示出了本发明构思的某些实施例。然而,本发明构思可以以许多不同的形式来体现,并且不应被解释为限于本文阐述的实施例;而是,这些实施例通过示例的方式提供,使得本公开将是彻底和完整的,并且将本发明构思的范围充分传达给本领域技术人员。还应当注意,这些实施例不是互相排斥的。来自一个实施例的组件可以被默认地假定为存在于/用于另一实施例中。
以下描述提出了所公开主题的各种实施例。这些实施例被呈现为教学示例,并且不应被解释为限制所公开的主题的范围。例如,在不脱离所描述主题的范围的情况下,可以修改、省略或扩展所描述实施例的某些细节。
本文描述的实施例提供了用于选择测试脚本的系统/方法,该测试脚本使用自动语言处理技术(例如自然语言处理(NLP))基于以自然语言编写的测试规范而不是形式化测试规范来测试通信系统/设备。具体地,一些实施例应用人工智能(AI)来自动选择/生成以高级计算机编程语言(例如C#或JAVA)编写的测试脚本,仅给出以非正式自然语言(例如英语)编写的测试用例规范。本文描述的一些实施例可以用Python编程语言实现为读取由测试人员提供的以自然语言编写的测试用例规范作为输入并提供用于实现测试规范的对应代码的系统。
如上所述,软件测试是一个耗费成本和时间的过程,其主要挑战之一是测试自动化。软件测试涉及设计、创建和执行适当的测试用例,其旨在实现被测系统的验证和证实。通常为了测试软件产品,会创建大量测试用例。每个测试用例都需要经过测试并成功通过。使用自动化测试可以加快软件测试的过程并还增加测试覆盖。然而,需要解决某些挑战才能有效利用测试自动化。也就是说,测试自动化需要熟练的资源和高昂的前期投资成本。测试自动化还需要选择合适的测试工具和测试方法。此外,为了使测试自动化取得成功,测试团队之间必须进行有效的沟通和协作。
在手动测试过程中,测试人员和测试工程师可能需要提前手动创建、分析和执行大量需求和/或测试用例规范。通常,测试人员使用适用的标准、他/她自己的知识以及可能的一些预定义模板来手动设计需求规范。有时在测试过程期间,可能需要设计一个新的测试用例并用另一个测试用例替换。阅读和分析需求和测试规范文件以设计新的测试用例需要有关测试过程的不同级别(设计、实现和测试)的丰富知识。因此,手动测试是一个耗费时间和资源的过程,还可能会受到人为缺陷和/或判断错误的影响。
通常,为了生成用于测试通信系统/设备的测试脚本,测试工程师读取测试规范或需求规范并手动生成根据测试规范执行测试的程序代码,例如C#或JAVA代码。这个过程非常耗时,并且可能会受到人为判断、不确定性和模糊性的影响。此外,采用现有知识来测试新产品可能很困难。就这一点而言,测试自动化可以被认为是减少手工工作、提高测试准确度的一个很好的解决方案。
虽然测试自动化可能是一个耗时的过程,但使用机器学习(ML)和/或人工智能(AI)技术进行测试自动化可能会显著减少所需的人力工作。如果设计和实施得当,此类技术可以提高测试质量和/或降低测试成本。
已经提出了一些使用AI/ML进行测试自动化的方法。然而,现有方法可能存在某些缺点。例如,此类技术可能不考虑以多种语言的非正式自然文本编写的需求规范,或所需的外部开源工具。此外,将需求规范手动翻译为正式的自然语言是一个耗时且费力的过程。某些AI/ML方法可能不提供可执行代码作为输出。
本文描述的一些实施例提供了人工智能认知测试生成器(AICTG),其是读取可以用多种语言编写的需求规范文件作为输入并提供对应的可执行测试脚本(以C#或JAVA)作为输出的测试自动化工具。在一些实施例中,所生成的测试用例和测试脚本不是以正式的自然语言编写的。
根据一些实施例的系统/方法可以不使用预定义的一组词,而是可以分析需求规范的整个文本内容并从需求规范生成一个或多个测试用例规范。一些实施例使用自动语言处理技术,例如自然语言处理(NLP),以及对预处理的需求规范的句法分析来提取共同解释/描述所讨论的测试用例的关键字(特征)的无序列表。
为了实现这些目标,AICTG内部采用了多种基于AI/ML的算法。AICTG的性能已根据600个需求规范和1100个测试用例进行了评估。实证评估表明,在电信领域使用AICTG取得了有前途的结果。此外,由于AICTG的性能已经在4G和5G产品上进行了评估,因此未来可以轻松应用于6G产品。
通常,在测试通信系统/设备时,存在用于测试系统/设备的先前版本的现有测试脚本库。也就是说,测试规范可以描述可以映射到来自先前或类似产品的现有测试脚本的测试步骤或测试活动。然而,即使这样的库可用,基于测试规范选择适当的测试脚本也需要对被测试的系统/设备以及测试脚本库有丰富的了解。此外,可能很难采用这些知识来测试新产品。
在通信系统的上下文中,测试产品所需的测试用例数量非常大。自动选择/生成测试脚本(以C#或JAVA代码的形式)可以节省时间和资源。
自动生成测试脚本的方法通常需要使用正式的测试规范。在这种方法中,以自然语言编写的需求规范必须被转换为可用于测试用例生成的正式模型。相反,本文描述的一些实施例基于以自然语言(例如英语)编写的测试用例规范来自动选择测试用例。此外,所选择的测试脚本可以能够直接执行,而无需手动编写代码。因此,本文描述的一些实施例可能不需要使用代码生成工具,例如QTP和SELENIUM。
本文描述的一些实施例利用基于AI的框架,该框架可以基于一组测试需求从头开始自动化测试过程。根据一些实施例的系统/方法可以导出每个需求的对应测试规范。该系统/方法可以为每个测试用例生成对应的不同格式(例如C#和JAVA)的可执行测试脚本。
本文描述的一些实施例可以应用推荐的测试规范的先前动态反馈调整匹配得分来改进所生成的测试脚本的推荐和/或置信度得分。
本文描述的一些实施例可以采用监督学习模型或技术,其提供关于所生成的测试脚本的准确度的精确信息、允许用户从先前的经验收集数据或产生数据输出、和/或帮助用户利用经验优化性能标准。
根据一些实施例的系统/方法可以在4G和5G产品上进行评估,并且可以适用于新产品,例如6G。对原型系统/方法的实证评估显示出有前途的结果,通过将生成测试脚本所需的时间和人力从几小时减少到几秒钟。
本文描述的一些实施例可以提供分析和解析不是以正式语言编写的需求规范的能力。此外,一些实施例可以提供分析以多种语言编写的需求规范的能力。
AICTG系统/方法有两个主要阶段,即测试用例规范和测试脚本生成。
测试用例规范的输入是可以用不同语言(例如西班牙语、葡萄牙语、英语等)编写的需求规范。根据一些实施例的可以使用编程语言(例如Python)来实现的AICTG系统/方法按照包括以下步骤的方法,读取用于测试网络节点的需求规范文件作为输入,并提供对应的测试脚本作为最终输出。
首先,该方法获得网络节点的需求规范。需求规范包括以自然语言描述的需求,而不使用正式结构,并且可以来自一组不同的语言,例如英语、西班牙语、葡萄牙语和瑞典语。
该方法基于以前为类似需求开发的测试用例,为每个需求推荐对应的测试用例规范。
然后,该方法为每个测试用例规范生成不同编程语言(例如C#和JAVA)的对应可执行测试脚本。
最后,该方法基于需求匹配需求、测试用例和误报/否定(false positive/negative)的反馈的先前数据的概率,导出生成的测试脚本的置信度得分。
一些实施例可以使得能够从以多种语言编写的非正式需求规范文件自动驱动网络节点的相关测试用例规范和测试脚本。
该方法特征在于使用新需求和先前需求之间的语义和句法相似性得分匹配,并通过对先前此类匹配的监督输入(反馈)给出调整匹配得分。需求规范和测试用例描述是通过一组语言中的任意一个的非正式自然语言描述来提供和导出的。可执行测试脚本由分类器导出,该分类器将测试用例描述映射到不同二进制格式(例如C#、JAVA)的可执行测试脚本。
本文描述的一些实施例可以在给定非正式需求信息的情况下生成详细的测试用例规范。实施例可以自动推荐测试用例规范,从而消除与软件测试相关联的一些不相关信息和手动工作。在一些实施例中,可能不需要正式的需求规范。此外,一些实施例能够与以多种不同语言(例如西班牙语、葡萄牙语、瑞典语、中文和英语)编写的需求信息一起工作。
对于每个测试用例,本文描述的一些实施例可以提供对应的可执行测试脚本,其可以以不同的编程语言(例如C#和JAVA)提供。
本文描述的一些实施例可以实现软件测试过程的自动化,这可以减少生成测试用例规范和测试脚本所需的手动工作。
图2示出了通用AICTG系统100的各方面。如其中所示,需求规范20被输入到系统100。需求规范20可以用非正式语言编写,并且可以以自然语言描述要在例如通信系统的系统上执行的测试。系统100的输出是基于输入需求规范20生成/选择的一组测试脚本30。
AICTG系统100包括接收并分析需求规范20的语言分析器112。然后使用相关性计算114来处理所分析的规范,相关性计算114使用词袋模型(bag-of-words model)来确定规范中术语的相关性。相关性计算114可以从数据库160中的测试用例规范库164中选择与需求规范20最密切相关的正式测试规范。然后使用由模型训练块140生成的AI模型对正式测试规范执行测试用例特征生成116。然后,这些特征被用来在测试脚本代码生成模块118中选择一个或多个测试脚本,测试脚本代码生成模块118生成经由用户接口120输出的结果作为生成的测试脚本30。提供用户反馈40到反馈管理器130,反馈管理器130将反馈162连同测试规范库164和测试模板库166一起存储在数据库160中。测试模板可以用诸如C#或JAVA之类的高级编程语言来编写。模型训练块140包括生成训练模型148的预处理功能142、模型训练功能144和模型证实功能146。
图3更详细地示出了由AICTG系统100执行的方法。该过程包括两个主要阶段,在图3中图示为阶段1和阶段2。在阶段1中,AICTG系统100接收需求规范20作为输入。AI测试用例规范推荐模块200分析需求规范20并且选择/生成与需求规范20相对应的测试用例规范25。测试用例规范25可以是要执行的测试的更正式的定义。尽管用自然语言编写,测试用例规范可以遵循特定的格式需求并具有特定的预定部分。例如,用例规范可能包含描述要执行的测试的特定方面的部分,例如目的、配置、过程和通过标准。
在阶段2中,AICTG系统100处理阶段1输出的测试用例规范25,并且选择/生成根据测试用例规范25的规范执行测试的一个或多个测试脚本30,其满足需求规范20中的需求。在阶段2中,AICTG系统100对测试用例规范25执行预处理。AICTG系统100然后对预处理的测试用例规范执行特征工程210,随后对结果进行正则化220。最后,执行文本分类以选择/生成测试脚本30。下面更详细地描述这些操作。
仍然参考图3,在阶段1中,用户将需求规范20输入到AICTG系统100中。为了执行测试规范推荐,输入文本被分割成句子,被解析、规范化、令牌化,并使用自动语言处理技术进行处理,例如自然语言处理(NLP),以及诸如词性(POS)标记、词向量测量、上下文敏感张量、词形还原(lemmatization)和词法(morphology)后的相似性、实体解析、和同义词处理的技术。该处理可以使用例如Elasticsearch来执行,Elasticsearch是用于各种类型数据(包括文本、数字、地理空间、结构化和非结构化)的搜索和分析引擎。
系统100计算输入文本相对于数据库中存储的测试用例规范的相关性得分。例如,可以使用词袋(BOW)模型和使用Elasticsearch系统内的余弦距离的文本语义相似性度量来计算相关性得分。相关性得分还可以考虑类似搜索的先前反馈202并且因此可以提高(boost)或降低(weight down)相关性得分。具有最高相关性得分(例如,超过预定阈值的相关性得分)的测试规范被确定为给定需求的对应测试用例。这些测试用例规范由测试用例规范推荐模块200输出作为测试用例规范25。
上述先前的反馈方法基于这样的预期:对于给定的需求规范可能仅存在一些相关查询,例如小于30。当进行查询并且系统100输出一个或多个测试规范25时,用户可以向系统100提供粗略反馈,指示每个所选择的测试规范是否是相关、中性或不相关。这种粗略反馈可以与查询一起存储,并且该存储的信息可以被系统100用作反馈数据。相关性得分以与上面类似的方式基于之前的反馈数据来计算。然后,针对相关或不相关的反馈,分别对每个测试规范的最终相关性得分进行正向或负向调整。然后可以聚合得分的反馈。
阶段1的输出(其是对应的测试规范)被用作阶段2的输入,以用于生成对应的测试脚本。用于选择用于阶段2的测试规范的相关性得分阈值可以是用户可配置的并且可以基于例如主题专家(SME)输入。例如,在一种实施方式中,默认阈值可以设置为0.3(得分>=0.3)。阶段1的动态反馈可用于帮助微调测试用例规范的生成/选择,这反过来又可以辅助生成相关的自动化测试脚本。
在阶段2中,执行测试脚本生成。首先,在阶段1输出的测试用例规范25由预处理模块205预处理以获得清理的测试用例规范。简要参考图4A,其是接收测试用例规范25并生成预处理的测试用例规范作为输出的系统/方法的流程图。自然语言工具包(NLTK)Python编程库可用于执行预处理步骤。如上所述,每个测试用例规范可能包含描述测试的各方面的部分,例如目的、配置、过程和通过标准。这些部分包含可以充当描述测试用例规范的特征的重要词。
参考图4A,该过程开始于框402,通过移除所有标点符号并将所有词转换为小写来清理每个测试用例规范文档的文本,因为Python NLTK是区分大小写的。在框404,然后通过使用NLTK令牌化以空格分割来将测试用例规范的文本划分为词令牌。在框406,词令牌被作为输入馈送到POS标记器,例如斯坦福POS标记器,其将词性指派给每个令牌。最后,在框408处,移除停用词,即具有低语义内容的高频词,例如“该(the)”或“是(is)”,以减少/最小化数据中的噪声。操作的输出是预处理的测试用例规范。
在预处理之后,阶段2包括图3中所示的三个主要操作,即特征工程210、正则化220和文本分类230。下面更详细地描述这些操作中的每一个。
再次参考图3,由预处理模块205输出的预处理的测试用例规范然后由特征工程模块210处理。具体地,由阶段1输出的预处理的测试用例规范被解析和分析以提取可用于对测试用例规范进行分类的特征(以特征向量的形式)。
简要参考图4B,其示出了特征选择412过程,其接收预处理的测试用例规范并生成特征向量150作为输出。在框412,输入预处理的测试用例规范。使用特征选择来分析预处理的测试用例规范以生成与预处理的测试用例规范相对应的特征向量。为了从测试用例规范导出特征向量,在一些实施例中可以使用包括词袋模型的基于规则的启发法(heuristic)。然而,应当理解,可以采用其他特征选择算法。
在一些实施例中,测试用例规范中的所有动词可以被收集为特征,因为动词可以提供关于测试用例规范中描述的测试用例的重要语义线索。由于每个规范中的动词数量可能较低,因此仅选择包括在特征向量中的动词可能会导致无法充分描述测试用例规范的短特征向量。然而,测试用例规范中不常出现的名词和形容词可能是不相关的或具有误导性的。
因此,在一些实施例中,只有那些满足选择标准的名词和形容词可以被包括在特征向量中。名词和形容词的选择标准可以基于测试用例规范中此类词令牌的出现频率。具体地,可以使用词袋模型来计算每个词令牌的频率,并且对于要添加到特征向量的名词或形容词,该令牌必须在规范中至少出现阈值次数。一些情况下,阈值次数可以是二。因此,只有那些在测试用例规范中至少出现两次的名词和动词才可以被包括在特征向量中。
特征选择步骤412的输出是与测试用例规范110相关联的特征向量150。特征向量150包括被选为特征的词令牌的列表,例如,[‘时间’、‘计算’、‘电压’,……,“功率”,“衰减”]。
再次参考图3,在框220处,使用数据增强来执行正则化操作。正则化过程可以帮助降低过度拟合(overfit)训练集的风险。此外,正则化可以通过添加已经现有得数据的稍微修改的副本或从现有数据新创建的合成数据来增加训练数据集的大小和种类。AICTG中嵌入的数据增强是通过从特征向量的幂集(power set)(即特征向量的所有子集的集合)中选择元素来完成的。并非所有子集都可以被选择并添加到训练数据中。例如,可以排除仅包含一个词的子集。
正则化过程在简要参考的图4C和4D中更详细地示出。参考图4C,可以通过从特征向量150的幂集(即,特征向量的所有子集的集合)选择元素来执行数据增强420。并非所有子集都可以被选择并添加到训练数据集中。例如,在一些实施例中,可以排除仅包含一个词的子集。新生成的特征向量152A-152N被标记有与它们从其生成的向量相同的标签(即,特征向量152被映射到与特征向量150相同的标签)。
图4D示出了数据增强的示例,其中从测试用例规范导出的特征向量150([‘时间’,‘计算’,‘电压’])被扩展为一组特征向量152([‘时间’,‘计算’,‘电压’],[‘时间’,‘计算’]等)。这样,从现有的特征向量生成多个新的特征向量。
再次参考图3,执行文本分类230步骤以基于所生成的特征向量来生成/选择一个或多个测试脚本。具体地,在对训练集执行正则化之后,可以使用独热(one-hot)编码对数据进行编码,以在数字上有意义的方式跟踪标签。数据集中的每个特征和标签都可以转换为1或0,具体取决于它们是否属于测试用例规范。每个特征向量随后被映射到包含与由该特征向量表示的测试用例规范相对应的C#或JAVA代码脚本的标签向量。
可以以两种方式之一来执行映射。在第一种方法中,特征向量被映射到整个测试脚本代码,而在第二种方法中,特征向量可以被映射到测试脚本中用于测试特定特征的特定代码行。
作为第二种方法的示例,假定特征“温度”是从测试用例规范生成的。特征“温度”可被映射到所有现有的对应代码以对其进行测试。为此,系统可以访问SME生成的标记数据,其指示制作用于温度(“temp”)的测试脚本的所有可能方法。然而,基于从正则化操作220获得的结果,可以确定是否应当单独测试“temp”特征或者系统是否还需要测试另一特征,例如“电压”。
为了进行分类,构造了两个数组(array),即Features[]数组和Labels[]数组,其中Features[i]包含属于第i个测试用例规范的特征向量,Labels[i]包含属于第i个测试用例规范的标签向量。Features[]数组用作文本分类器的输入,Labels[]数组是输出。在文本分类步骤中,上一步获得的特征向量和标签向量分别作为输入和输出反馈到文本分类器进行训练。新生成的特征向量被标记有与它们从其生成的向量相同的标签。
由于每个测试用例规范可以映射到多个测试脚本,即标签,因此需要应用能够处理多标签分类的分类模型来解决问题。为此,我们使用了一对所有(OVA)策略,其中将多标签分类问题分解为多个单标签分类问题。通过使用OVA策略,为数据中的每个标签(测试脚本)构建了几个独立的分类器。随后将每个分类器拟合到数据集中的每个输入,以确定它属于哪个标签。对向量应用了两个分类器:LinearSVC和K最近邻居(KNN)。对于LinearSVC,正则化参数C被设置为0.6。对于KNN,使用两个不同的K值:1和3,并使用-Dice距离函数。
简要参考图4E,其中更详细地说明了分类过程。分类由分类器450执行,分类器450可以实现分类算法,例如KNN、LinearSVC或任何其他合适的分类算法。
如图4E所示,特征向量150被输入到分类器450,分类器450使用一对所有(OVA)策略相对于标签向量452的元素执行特征向量150的多标签分类,其中标签向量452的每个元素对应于测试脚本库30中的可用测试脚本。
在一些实施例中,标签向量452包括与所讨论的测试用例规范相关的每个测试脚本的名称,因为这些名称是唯一的并且可以容易地用作标识测试脚本的标识符。然而,在一些实施例中,可以使用其他标识符来标识测试脚本。例如,标签向量元素可以包括来自测试脚本的关键字、来自测试脚本的摘要、预先指派给每个脚本的编号、或甚至整个测试脚本。
因此,在分类操作中,特征向量150在多标签分类操作中被映射到标签向量452的N个元素。为了执行多标签分类,使用一对所有(OVA)分类策略,其中多标签分类问题被分解为多个单标签分类问题。通过使用OVA策略,为标签向量452的每个元素(即,每个测试脚本)构建几个独立的分类器。每个分类器都与数据集中的每个输入拟合以确定它属于哪些标签。分类器450的输出是N个标签的向量452和N个指示相关联的测试脚本与由特征向量150表示的测试用例规范的相关程度的预测得分值的向量454。一般来说,预测得分的值高于零表示高度相关。因此,在一些实施例中,可以选择与具有大于零的预测得分的标签向量相对应的测试脚本来执行。分类器450可以将没有、一个或多于一个的测试脚本标识为与由特征向量150表示的测试用例规范相关。
在一些实施例中,大于零的预测得分的阈值可以用于确定选择什么测试用例。也就是说,通过为预测得分选择大于零的阈值,可以有更高的置信度,即模型仅选择与特征向量150表示的测试用例规范高度相关的测试脚本,从而潜在地增加了预测的置信度。为了选择阈值,可以分析预测得分并实现具有阈值的不同值的网格搜索。在一些实施方式中,0.1的阈值可以产生最佳结果。预测得分的阈值为0.1意味着分类器仅选择预测得分超过0.1的测试脚本。
对于每个选择的测试脚本,一些实施例提供以百分比表示的置信度得分,其指示系统对选择的测试脚本与给定测试用例规范相关的置信度如何。可以基于上述预测得分和阈值来计算置信度得分百分比。在一些实施例中,预测得分等于或大于阈值0.1的所有测试脚本被认为具有100%置信度得分。对于预测得分低于阈值0.1的测试脚本,可以基于脚本的预测得分在正态分布的方式中与阈值的接近程度来计算置信度得分。
为了计算给定预测得分的置信度得分,执行以下步骤。首先,计算数据集中所有测试脚本的预测得分的标准差σ。接下来,将平均值μ设置为阈值0.1。然后使用平均值和标准差作为参数生成正态分布的随机变量。然后计算置信度得分,如等式[1]所示:
其中CS是置信度得分,PS是预测得分,cdf是正态分布随机变量的累积分布函数。
一旦已经生成了预测得分并且已经选择了满足或超过预测得分阈值的测试脚本,一些系统/方法可以经由用户接口向用户输出所选择的测试脚本的标识以及它们的相关联的置信度得分。在一些实施例中,所选择的测试脚本可以由系统自动执行以根据测试用例规范来进行测试。
总之,根据一些实施例的AICTG系统/方法100能够针对给定的测试需求推荐对应的测试用例规范和测试脚本。该系统/方法可以生成/选择用于不在训练集中的新设计需求规范的测试脚本。因此,对于新创建的需求和测试规范,系统已经评估的那些测试需求和测试用例的置信度得分可能更高。然而,在这两种情况下,所需的人工工作可能会显著减少。
AICTG系统100可以用Python或任何其他合适的编程环境来实现。需求规范文档可以用多种语言编写。AICTG系统100的输出包括与所讨论的需求规范相关的推荐测试脚本。脚本可以被编写为例如C#或JAVA测试脚本。这些测试脚本包含应运行以执行所选需求规范中描述的测试用例的代码。
图5示出了用于部署AICTG系统100的环境500的示例。该部署包括由应用用户564访问的前端510。前端510包括允许用户564与AICTG系统100交互的用户接口,并且通常用响应式网页设计构建或作为渐进式网页应用构建。
环境500包括网络服务器(webserver)后端514,其提供搜索/上传/反馈和应用的任何其他关注点所需的应用编程接口(API)。网络服务器后端514通常用异步非阻塞(non-blocking)I/O来实现。
环境500还包括工作流有向无循环图(DAG)518,用于实现向工作流运行时实例520提供工作流部署的模型所需的训练和推理工作流。数据存储540向运行时520提供对必要数据库的访问。工作流运行时520是用于运行训练和推理工作流的执行环境。
工作流任务包括用于训练/调整/证实模型以获得最佳性能的模型训练(522)、超参数(hyperprameter)调整(524)和模型证实(526)。
提供一组推理API服务器516用于托管使用经训练的模型的推理API。
最后,为系统的管理者(administrator)562提供一个或多个模型报告服务器512以定期审查模型性能和捕获度量。
如上所述,根据一些实施例的AICTG系统100可以通过采用多语言Elasticsearch能力和斯坦福对数线性词性标记器而独立于任何语言。Elasticsearch中嵌入的经过训练的语言标识模型可以帮助用户确定文本的语言。构建特征集时,语言标识会考虑统一码(Unicode)边界。如果文本具有变音(diacritical)标注(mark),则模型将使用该信息来标识文本的语言。在某些情况下,即使模型不是用源语言传统使用的脚本编写的,模型也可以检测到该语言。这些语言在支持的语言表中使用Latn子标记进行标注。语言标识支持Unicode输入。图6示出了西班牙语特征生成的示例,其中从需求规范生成的特征向量包括西班牙语术语。
对于性能测量,可以计算精度、回调(recall)和F1得分并用于测量系统的性能。这些指度量更加重视真正的正预测,这可能被认为是最重要的。精度得分的计算方法如下面的等式[2]所示,标示正确生成的测试脚本的数量除以AICTG系统100生成的测试脚本的总数。这表明所选项目中有多少是相关的。回调得分的计算方法如下面的等式[3]所示,是正确生成的测试脚本的数量除以现有测试脚本的总数。这表明有多少相关项目被选择。F1得分的计算如等式[4]所示,是精度和回调之间的调和(harmonic)平均值,其测量模型在数据集上的准确度。
采用这些等式可以帮助评估AICTG系统100的性能。在示例实施例中,系统100被训练有600个需求和1100个测试用例的语料库。对此,对不同的阈值边界进行分析,当阈值设置为0.1时,得到F1得分=83.80%的最高值,其中分别是,精度得分为:84.62%,回调得分为:85.26%。此外,在这种情况下,以每个类别的比例改正的平均值测量的平衡准确度等于92%。
图7、8A和8B示出了根据一些实施例的AICTG系统/方法100的操作。
参考图2、图3和图7,示出了一种根据一些实施例的测试计算机化系统中的元素的方法。该方法包括获得(框702)描述与网络节点相关联的测试需求的自然语言需求规范20,以及基于自然语言需求规范从测试用例规范库164中选择(框704)测试用例规范25。该方法包括从测试用例规范25提取(框706)文本特征,生成(框708)包括从测试用例规范25提取的文本特征的特征向量150(图4C),以及将特征向量150映射(框710)到多个可用测试脚本30。响应于特征向量150的映射,选择(框712)多个可用测试脚本30中的一个或多个可用测试脚本用于执行,并且对于所选择的测试脚本中的一个或多个所选择的测试脚本,生成(框714)置信度得分,其测量测试用例规范与所选测试脚本的关联的置信度。
参考图8A,选择测试用例规范可以包括使用自然语言处理来分析(框802)自然语言需求规范。对于测试用例规范库164中的多个测试用例规范,生成(框804)表示自然语言需求规范与测试用例规范25的相关性的相关性得分,并且基于相关联的相关性得分选择(框806)测试用例规范25。
参考图8B,该方法还可以包括经由用户接口输出(框822)所选择的测试脚本30的标识和相关联的置信度得分,并且执行(框824)所选择的测试脚本。
在一些实施例中,基于相关联的相关性得分选择测试用例规范25包括响应于相关性得分高于预定阈值而基于相关联的相关性得分选择测试用例规范25。
在一些实施例中,基于相关联的相关性得分选择测试用例规范25包括从多个测试用例规范中选择具有最高相关性得分的测试用例规范25。
在一些实施例中,使用自然语言处理来分析自然语言需求规范20包括对自然语言需求规范20执行词性标记以标识自然语言需求规范中的关键术语。
该方法还可以包括接收与测试用例规范库164中的训练测试用例规范相关联的用户反馈,其中与训练测试用例规范相关联的相关性得分基于用户反馈。
用户反馈可以包括训练测试用例规范相对于先前分析的需求规范是否是相关、中性或不相关的指示。
可以使用文本语义相似性度量来生成相关性得分,该文本语义相似性度量使用相对于自然语言需求规范和测试用例规范库164中的多个测试用例规范25的余弦距离得分。
在一些实施例中,测试用例规范25可以用不同的语言来编写。
在一些实施例中,从测试用例规范25中提取文本特征包括将测试用例规范分割成一组规范词、对该一组规范词中的词执行词性标记、以及从该一组规范词中移除停用词。
生成特征向量150可以包括从该一组规范词中选择所有动词,以及从该一组规范词中选择满足选择标准的所有名词和形容词,该选择标准可以包括在该一组规范词内出现的频率。
该方法还可以包括从特征向量150生成多个增强特征向量152(图4D),其中生成多个增强特征向量152作为特征向量的子集,以及训练分类器450(图4E),其用于使用多个增强特征向量将特征向量150映射到多个可用测试脚本25。
将特征向量150映射到多个可用测试脚本可以包括为多个可用测试脚本中的每一个可用测试脚本生成标签向量452(图4E),以及使用文本分类器对标签向量进行分类。为多个可用测试脚本中的每一个可用测试脚本生成标签向量452可以包括为多个可用测试脚本中的每个测试脚本生成测试脚本中的术语的向量。
在一些实施例中,可以使用一对所有分类策略对标签向量452进行分类。
该方法还可以包括生成与多个可用测试脚本25中的每一个可用测试脚本相关联的预测得分,其中响应于特征向量的映射来选择多个可用测试脚本中的一个或多个可用测试脚本用于执行是基于预测得分执行的。
在一些实施例中,响应于特征向量150的映射来选择多个可用测试脚本30中的一个或多个可用测试脚本来执行可以基于相关联的预测得分是否大于阈值来执行。
选择的测试脚本中的每一个所选择的测试脚本的置信度得分可以基于与选择的测试脚本中的每一个所选择的测试脚本相关联的预测得分来生成。
该方法还可以包括响应于输出所选择的测试脚本的标识来接收用户输入,以及响应于用户输入来执行所选择的测试脚本。
图9描绘了根据本发明构思的实施例的可以被测试的无线通信网络的通信设备900的示例。如图所示,通信设备900可以包括收发器电路912(也称为收发器),该收发器电路912包括被配置为提供与无线设备的上行链路和下行链路无线电通信的发射机和接收机。通信设备900还可以包括耦合到收发器电路912的处理器电路916(也称为处理器)以及耦合到处理器电路916的存储器电路918(也称为存储器)。存储器电路918可以包括计算机可读程序代码,该计算机可读程序代码当由处理器电路916执行时使得该处理器电路执行各种操作。根据其他实施例,处理器电路916可以被定义为包括存储器,使得不需要单独的存储器电路。
图10描绘了根据本发明构思的实施例可以测试的无线通信网络的无线电接入网络节点1000的示例。网络节点1000可以包括网络接口电路1004(也称为网络接口),其被配置为提供与无线通信网络的其他节点(例如,与其他基站和/或核心网络节点)的通信。网络节点1000还可以包括用于执行与通信设备900的无线通信的无线收发器1002。存储器电路1008可以包括计算机可读程序代码,该计算机可读程序代码当由处理器电路1006执行时使得该处理器电路执行各种操作。根据其他实施例,处理器电路1006可以被定义为包括存储器,使得不需要单独的存储器电路。
图11描绘了根据本发明构思的实施例的可以选择用于执行的测试脚本的测试系统1100的示例。如图所示,测试平台1100可以包括收发器电路1112(也称为收发器),该收发器电路1112包括被配置为提供与通信设备的上行链路和下行链路通信的发射机和接收机。测试平台1100还可以包括耦合到收发器电路1112的处理器电路1116(也称为处理器)以及耦合到处理器电路1116的存储器电路1118(也称为存储器)。存储器电路1118可以包括计算机可读程序代码,该计算机可读程序代码当由处理器电路1116执行时使得该处理器电路执行根据本文公开的实施例的操作。根据其他实施例,处理器电路1116可以被定义为包括存储器,使得不需要单独的存储器电路。
如本文所讨论的,测试平台1100的操作可以由处理器1116执行。此外,模块可以存储在存储器1118中,并且这些模块可以提供指令,使得当模块的指令由处理器1116执行时,处理器1116执行相应的操作(例如,上面关于示例实施例讨论的操作)。
因此,根据一些实施例的测试平台1100包括处理器电路1116、耦合到处理器电路的收发器1112、以及耦合到处理器电路的存储器1118,该存储器包括机器可读程序指令,该机器可读程序指令当由处理器电路执行时可以使用测试平台1100来执行上述操作。
参考图7和图11,一种用于测试通信系统中的网络节点的系统(1100),包括处理器电路(1116)和耦合到处理器电路的存储器(1118)。存储器包括计算机程序指令,计算机程序指令当由处理器电路执行时使得系统执行包括以下的操作:获得(702)描述与网络节点相关联的测试需求的自然语言需求规范,基于自然语言需求规范从测试用例规范库中选择(704)测试用例规范,从测试用例规范提取(706)文本特征,生成(708)包括从测试用例规范提取的文本特征的特征向量,将特征向量映射(710)到多个可用测试脚本,响应于特征向量的映射,选择(712)多个可用测试脚本中的一个或多个可用测试脚本用于执行,以及对于所选择的测试脚本中的一个或多个所选择的测试脚本,生成(714)测量测试用例规范与所选测试脚本的关联的置信度的置信度得分。
缩略语的解释
AI人工智能
BOW词袋
GUI图形用户接口
KNN K-最近邻居
LinearSVC线性支持向量分类器
ML机器学习
NLP自然语言处理
NLTK自然语言工具包
OVA一对所有
POS词性
SME主题专家
STLC软件测试生命周期
以下讨论进一步的定义和实施例。
在本发明构思的各种实施例的以上描述中,应理解,本文使用的术语仅出于描述特定实施例的目的,并不旨在限制本发明构思。除非另外定义,否则本文使用的所有术语(包括技术和科学术语)具有与本发明构思所属领域的普通技术人员通常理解的含义相同的含义。将进一步理解,诸如在常用词典中定义的那些的术语应被解释为具有与其在本说明书和相关领域的上下文中的含义一致的含义,并且将不被理解为理想化地或过度形式感地解释,除非本文明确定义。
如本文所使用的,“通信设备”可以是旨在经由接入网络访问服务并且被配置为通过接入网络进行通信的任何设备。例如,通信设备可以是但不限于:用户设备(UE)、移动电话、智能电话、传感器设备、仪表、车辆、家用电器、医疗器械、媒体播放器、相机或任何类型的消费电子产品,例如但不限于电视、收音机、照明布置、平板电脑、笔记本电脑或PC。通信设备可以是能够经由无线或有线连接传送语音和/或数据的便携式、可口袋存放、手持、计算机包含的或车载移动设备。
当一个元素被称为“连接”、“耦合”、“响应”或其变型到另一个元素时,它可以直接连接、耦合或响应于另一个元素,或者可以存在中间元素。相反,当元素被称为“直接连接”、“直接耦合”、“直接响应”或其变型到另一元素时,不存在中间元素。类似的数字始终指代类似的元素。此外,本文使用的“耦合”、“连接”、“响应”或其变型可以包括无线耦合、连接或响应。如本文所使用的,单数形式的“一”、“一个”和“该”旨在也包括复数形式,除非上下文另有明确说明。为简洁和/或清楚起见,可能未详细描述众所周知的功能或构造。术语“和/或”包括一个或多个相关联所列项目的任何和所有组合。
应当理解,尽管本文可以使用术语第一、第二、第三等来描述各种元素/操作,但是这些元素/操作不应受这些术语的限制。这些术语仅用于将一个元素/操作与另一个元素/操作区分开。因此,在不脱离本发明构思的教导的情况下,在一些实施例中的第一元素/操作可以被称为其他实施例中的第二元素/操作。在整个说明书中,相同的附图标记或相同的附图指示符表示相同或相似的元素。
如本文所用,术语“包括”、“包含”、“具有”("comprise","comprising","comprises","include","including","includes","have","has","having")或其变型是开放的,包括一个或多个所述特征、整数、元素、步骤、组件或功能,但不排除一个或多个其他特征、整数、元素、步骤、组件、功能或其组的存在或添加。此外,如本文所使用的,源自拉丁语短语“举例来说(exempli gratia)”的通用缩写“例如(e.g.)”可用于引入或指定先前提及的项目的一般示例或多个示例,并且不旨在限制这样的项目。源自拉丁短语“也就是(id est)”的通用缩写“即(i.e.)”可用于从更一般的叙述中指定特定项目。
本文参考计算机实现的方法、装置(系统和/或设备)和/或计算机程序产品的框图和/或流程图说明来描述示例实施例。应当理解,框图和/或流程图图示的一个框以及框图和/或流程图图示中的框的组合可以由一个或多个计算机电路执行的计算机程序指令来实现。这些计算机程序指令可以提供给通用计算机电路、专用计算机电路和/或其他可编程数据处理电路的处理器电路以产生机器,使得通过计算机和/或其他可编程数据处理装置的处理器执行的指令变换和控制晶体管、存储在存储器位置中的值、以及这种电路内的其他硬件组件,以实现在框图和/或流程图框或多个框中指定的功能/动作,从而创建用于实现框图和/或流程图框中指定的功能/动作的装置(功能)和/或结构。
这些计算机程序指令还可以存储在有形计算机可读介质中,该有形计算机可读介质可以指示计算机或其他可编程数据处理装置以特定方式起作用,使得存储在计算机可读介质中的指令产生包括实现框图和/或流程图框中指定的功能/动作的指令的制品。因此,本发明构思的实施例可以体现在硬件和/或在诸如数字信号处理器的处理器上运行的软件(包括固件、常驻软件、微代码等)中,其可以统称为“电路”、“模块”或其变型。
还应注意,在一些替代实现中,框中提到的功能/动作可以不按照流程图中提到的顺序发生。例如,连续示出的两个框实际上可以基本上同时执行,或者这些框有时可以以相反的顺序执行,这取决于所涉及的功能/动作。此外,流程图和/或框图的给定框的功能可以分成多个框,和/或流程图和/或框图的两个或更多个框的功能可以至少部分地集成。最后,可以在所图示的框之间添加/插入其他框,和/或可以省略框/操作而不脱离本发明构思的范围。此外,尽管一些图包括通信路径上的箭头以示出通信的主要方向,但是应该理解,通信可以在与所示箭头相反的方向上发生。
可以在不是基本上脱离本发明构思的原理的情况下对实施例进行许多变化和修改。所有这些变化和修改都旨在被包括在本发明构思的范围内。因此,以上公开的主题应被认为是说明性的而不是限制性的,并且实施例的示例旨在覆盖落入本发明构思的精神和范围内的所有此类修改、增强和其他实施例。因此,在法律允许的最大范围内,本发明构思的范围将由包括实施例的示例及其等同物的本公开的最宽泛的允许解释来确定,并且不应由前述详细描述来约束或限制。

Claims (26)

1.一种测试通信系统中的网络节点的方法,包括:
获得(702)描述与所述网络节点相关联的测试需求的自然语言需求规范;
基于所述自然语言需求规范,从测试用例规范库中选择(704)一个或多个测试用例规范;
从所述一个或多个测试用例规范中提取(706)文本特征;
生成(708)特征向量,所述特征向量包括从所述一个或多个测试用例规范中提取的所述文本特征;
将所述特征向量映射(710)到多个可用测试脚本;
响应于所述特征向量的映射,选择(712)所述多个可用测试脚本中的一个或多个可用测试脚本用于执行;以及
对于所选择的测试脚本中的一个或多个所选择的测试脚本,生成(714)置信度得分,所述置信度得分测量所述测试用例规范与所选择的测试脚本的关联的置信度。
2.根据权利要求1所述的方法,其中,选择所述一个或多个测试用例规范包括:
使用自动语言处理技术分析(802)所述自然语言需求规范;以及
对于所述测试用例规范库中的多个测试用例规范,生成(804)表示所述自然语言需求规范与所述测试用例规范的相关性的相关性得分;以及
基于相关联的相关性得分来选择(806)所述测试用例规范。
3.根据权利要求2所述的方法,其中,基于所述相关联的相关性得分选择所述一个或多个测试用例规范包括:响应于所述相关性得分高于预定阈值,基于所述相关联的相关性得分选择所述一个或多个测试用例规范。
4.根据权利要求2或3所述的方法,其中,基于所述相关联的相关性得分选择所述一个或多个测试用例规范包括:从所述多个测试用例规范中选择具有最高相关性得分的测试用例规范。
5.根据权利要求2至4中任一项所述的方法,其中,使用自动语言处理来分析所述自然语言需求规范包括:标识所述自然语言需求规范中的关键术语。
6.根据权利要求2至5中任一项所述的方法,还包括:
获得与所述测试用例规范库中的训练测试用例规范相关联的用户反馈;
其中,与所述训练测试用例规范相关联的所述相关性得分基于所述用户反馈。
7.根据权利要求6所述的方法,其中,所述用户反馈包括所述训练测试用例规范是否是相关、中性或不相关的指示。
8.根据权利要求2至7中任一项所述的方法,其中,使用相对于所述自然语言需求规范和所述测试用例规范库中的所述多个测试用例规范的文本语义相似性度量来生成所述相关性得分。
9.根据任一前述权利要求所述的方法,其中,所述测试用例规范和/或所述需求规范以不同的人类语言编写。
10.根据任一前述权利要求所述的方法,其中,从所述测试用例规范中提取所述文本特征包括:
将所述测试用例规范分割为一组规范词;
对所述一组规范词中的词进行词性标记;以及
从所述一组规范词中移除停用词。
11.根据权利要求10所述的方法,其中,生成所述特征向量包括:
从所述一组规范词中选择所有动词;以及
从所述一组规范词中选择满足选择标准的所有名词和形容词。
12.根据权利要求11所述的方法,其中,所述选择标准包括在所述一组规范词内出现的频率。
13.根据权利要求11或12所述的方法,还包括:
从所述特征向量生成多个增强特征向量,其中,所述多个增强特征向量被生成为所述特征向量的子集;以及
训练分类器,所述分类器用于使用所述多个增强特征向量将所述特征向量映射到所述多个可用测试脚本。
14.根据任一前述权利要求所述的方法,其中,将所述特征向量映射到多个可用测试脚本包括:
为所述多个可用测试脚本中的每一个可用测试脚本生成标签向量;以及
使用文本分类器对所述标签向量进行分类。
15.根据权利要求14所述的方法,其中,为所述多个可用测试脚本中的每一个可用测试脚本生成所述标签向量包括:为所述多个可用测试脚本中的每个测试脚本生成所述测试脚本中的术语的向量。
16.根据权利要求13至15中任一项所述的方法,其中,使用一对所有分类策略来对所述标签向量进行分类。
17.根据任一前述权利要求所述的方法,还包括:
生成与所述多个可用测试脚本中的每一个可用测试脚本相关联的预测得分,其中,响应于所述特征向量的映射来选择所述多个可用测试脚本中的一个或多个可用测试脚本用于执行是基于所述预测得分来执行的。
18.根据权利要求17所述的方法,其中,响应于所述特征向量的映射来选择所述多个可用测试脚本中的一个或多个可用测试脚本用于执行是基于相关联的预测得分是否大于阈值来执行的。
19.根据权利要求17或18所述的方法,其中,基于与所选择的测试脚本中的每一个所选择的测试脚本相关联的所述预测得分来生成所选择的测试脚本中的每一个所选择的测试脚本的所述置信度得分。
20.根据任一前述权利要求所述的方法,还包括:
经由用户接口输出(822)所选择的测试脚本的标识和相关联的置信度得分;以及
执行(824)所选择的测试脚本。
21.根据权利要求20所述的方法,还包括:
响应于输出所选择的测试脚本的所述标识,接收用户输入;以及
响应于所述用户输入执行所选择的测试脚本。
22.一种用于测试通信系统中的网络节点的系统(1100),包括:
处理器电路(1116);以及
耦合到所述处理器电路的存储器(1118),其中所述存储器包括计算机程序指令,所述计算机程序指令当由所述处理器电路执行时使得所述系统执行包括以下操作的操作:
获得(702)描述与所述网络节点相关联的测试需求的自然语言需求规范;
基于所述自然语言需求规范,从测试用例规范库中选择(704)一个或多个测试用例规范;
从所述一个或多个测试用例规范中提取(706)文本特征;
生成(708)特征向量,所述特征向量包括从所述一个或多个测试用例规范中提取的所述文本特征;
将所述特征向量映射(710)到多个可用测试脚本;
响应于所述特征向量的映射,选择(712)所述多个可用测试脚本中的一个或多个可用测试脚本用于执行;以及
对于所选择的测试脚本中的一个或多个所选择的测试脚本,生成(714)置信度得分,所述置信度得分测量所述测试用例规范与所选择的测试脚本的关联的置信度。
23.根据权利要求22所述的系统,其中所述系统还被配置为执行根据权利要求2至21中任一项所述的操作。
24.一种用于测试通信系统中的网络节点的系统(1100),其中所述系统被配置为:
获得(702)描述与所述网络节点相关联的测试需求的自然语言需求规范;
基于所述自然语言需求规范,从测试用例规范库中选择(704)一个或多个测试用例规范;
从所述一个或多个测试用例规范中提取(706)文本特征;
生成(708)特征向量,所述特征向量包括从所述一个或多个测试用例规范中提取的文本特征;
将所述特征向量映射(710)到多个可用测试脚本;
响应于所述特征向量的映射,选择(712)所述多个可用测试脚本中的一个或多个可用测试脚本用于执行;以及
对于所选择的测试脚本中的一个或多个所选择的测试脚本,生成(714)置信度得分,所述置信度得分测量所述测试用例规范与所选择的测试脚本的关联的置信度。
25.一种计算机程序,包括要由计算设备(1100)的处理电路(1116)执行的程序代码,由此所述程序代码的执行使得所述计算设备(1100)执行根据权利要求1至21中任一项所述的操作。
26.一种计算机程序产品,包括非暂时性存储介质,所述非暂时性存储介质包括要由计算设备(1100)的处理电路(1116)执行的程序代码,由此所述程序代码的执行使得所述计算设备(1100)执行根据权利要求1至21中任一项所述的操作。
CN202280048958.0A 2021-05-15 2022-02-10 基于人工智能的认知测试脚本生成 Pending CN117643036A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
IN202111021945 2021-05-15
IN202111021945 2021-05-15
PCT/EP2022/053260 WO2022242923A1 (en) 2021-05-15 2022-02-10 Artificial intelligence based cognitive test script generation

Publications (1)

Publication Number Publication Date
CN117643036A true CN117643036A (zh) 2024-03-01

Family

ID=80683972

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202280048958.0A Pending CN117643036A (zh) 2021-05-15 2022-02-10 基于人工智能的认知测试脚本生成

Country Status (4)

Country Link
EP (1) EP4338395A1 (zh)
CN (1) CN117643036A (zh)
BR (1) BR112023023728A2 (zh)
WO (1) WO2022242923A1 (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US12014140B2 (en) * 2021-05-03 2024-06-18 Accenture Global Solutions Limited Utilizing machine learning and natural language processing to determine mappings between work items of various tools

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110716852B (zh) * 2018-07-12 2023-06-23 伊姆西Ip控股有限责任公司 用于生成自动化测试脚本的系统、方法和介质
CN111176996A (zh) 2019-12-25 2020-05-19 平安普惠企业管理有限公司 测试用例生成方法、装置、计算机设备及存储介质

Also Published As

Publication number Publication date
WO2022242923A1 (en) 2022-11-24
EP4338395A1 (en) 2024-03-20
BR112023023728A2 (pt) 2024-01-30

Similar Documents

Publication Publication Date Title
CN110781276B (zh) 文本抽取方法、装置、设备及存储介质
US20230308381A1 (en) Test script generation from test specifications using natural language processing
CN116010713A (zh) 基于云计算的创新创业平台服务数据处理方法及系统
CN112711660B (zh) 文本分类样本的构建方法和文本分类模型的训练方法
CN105378731A (zh) 从被回答问题关联语料库/语料值
CN112183994B (zh) 一种设备状态的评估方法、装置、计算机设备和存储介质
CN110334186B (zh) 数据查询方法、装置、计算机设备及计算机可读存储介质
CN111124487B (zh) 代码克隆检测方法、装置以及电子设备
CN109284374B (zh) 用于确定实体类别的方法、装置、设备以及计算机可读存储介质
CN112036168B (zh) 事件主体识别模型优化方法、装置、设备及可读存储介质
US20220414463A1 (en) Automated troubleshooter
US11669740B2 (en) Graph-based labeling rule augmentation for weakly supervised training of machine-learning-based named entity recognition
US11720481B2 (en) Method, apparatus and computer program product for predictive configuration management of a software testing system
CN110717040A (zh) 词典扩充方法及装置、电子设备、存储介质
CN113627530A (zh) 相似问题文本生成方法、装置、设备及介质
CN112183102A (zh) 基于注意力机制与图注意力网络的命名实体识别方法
US20200027034A1 (en) System and method for relationship identification
CN110674442A (zh) 页面监控方法、装置、设备及计算机可读存储介质
CN113934848B (zh) 一种数据分类方法、装置和电子设备
CN117643036A (zh) 基于人工智能的认知测试脚本生成
CN108229564B (zh) 一种数据的处理方法、装置及设备
CN113705207A (zh) 语法错误识别方法及装置
US20240241817A1 (en) Artificial intelligence based cognitive test script generation
CN116151236A (zh) 文本处理模型的训练方法、文本处理方法及相关设备
CN115587163A (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