一种用于软件测试的用例数据推荐方法、系统和介质转让专利

申请号 : CN202110828715.6

文献号 : CN113282519B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 孟崎贯春宇闫卫杰

申请人 : 北京关键科技股份有限公司

摘要 :

本发明提供一种用于软件测试的用例数据推荐方法、系统和介质。所述方法包括:步骤S1、获取用户输入的测试需求;步骤S2、提取所述测试需求中的知识论元子图,所述知识论元子图表示所述测试需求中包含的基于自然语言的短语和单词的知识论元关系;步骤S3、在知识库中查询与所述知识论元子图对应的知识库子图;以及步骤S4、基于查询到的所述知识库子图,确定向所述用户推荐的所述用例数据。所述方法能够实现快速构建出大量满足需求的测试用例数据,同时能够减少测试人员的在测试用例设计阶段所做的工作,从而在测试设计过程节省大量的时间。

权利要求 :

1.一种用于软件测试的用例数据推荐方法,其特征在于,所述方法包括:步骤S1、获取用户输入的测试需求;

步骤S2、提取所述测试需求中的知识论元子图,所述知识论元子图表示所述测试需求中包含的基于自然语言的短语和单词的知识论元关系;

步骤S3、在知识库中查询与所述知识论元子图对应的知识库子图;以及步骤S4、基于查询到的所述知识库子图,确定向所述用户推荐的所述用例数据;

其中,所述知识库中的各个所述知识库子图通过以下方式来构建:基于深度神经网络来提取所述用例数据中的知识论元;

根据语法结构,利用依存分析或语义解析来确定多个所述知识论元之间的关系,以及基于所述关系来确定所述知识论元对应的事件角色,从而构建所述用例数据的所述知识库子图;

其中,所述步骤S4进一步包括:从所述知识库子图中获取多个候选答案;

通过TRANSE算法确定所述知识库子图中的多条路径;

从所述多条路径中提取出表征所述候选答案特征的特征向量;以及将所述特征向量作为分类器的输入,来获取向所述用户推荐的所述用例数据。

2.根据权利要求1所述的用于软件测试的用例数据推荐方法,其特征在于,在所述步骤S3,通过确定所述知识论元子图中包含的各个论元在所述知识库中的位置来查询所述知识库中与所述知识论元子图对应的知识库子图。

3.一种用于软件测试的用例数据推荐系统,其特征在于,所述系统包括:获取单元,被配置为,获取用户输入的测试需求;

提取单元,被配置为,提取所述测试需求中的知识论元子图,所述知识论元子图表示所述测试需求中包含的基于自然语言的短语和单词的知识论元关系;

查询单元,被配置为,在知识库中查询与所述知识论元子图对应的知识库子图;以及确定单元,被配置为,基于查询到的所述知识库子图,确定向所述用户推荐的所述用例数据;

其中,所述知识库包含在所述用例数据推荐系统中,或通过外部连接将其连接至所述用例数据推荐系统,所述知识库中的各个所述知识库子图通过以下方式来构建:基于深度神经网络来提取所述用例数据中的知识论元;

根据语法结构,利用依存分析或语义解析来确定多个所述知识论元之间的关系,以及基于所述关系来确定所述知识论元对应的事件角色,从而构建所述用例数据的所述知识库子图;

所述确定单元进一步被配置为:

从所述知识库子图中获取多个候选答案;

通过TRANSE算法确定所述知识库子图中的多条路径;

从所述多条路径中提取出表征所述候选答案特征的特征向量;以及将所述特征向量作为分类器的输入,来获取向所述用户推荐的所述用例数据。

4.根据权利要求3所述的用于软件测试的用例数据推荐系统,其特征在于,所述查询单元进一步被配置为,通过确定所述知识论元子图中包含的各个论元在所述知识库中的位置来查询所述知识库中与所述知识论元子图对应的知识库子图。

5.一种存储有指令的非暂时性计算机可读介质,当所述指令由处理器执行时,执行根据权利要求1‑2中任一项所述的用于软件测试的用例数据推荐方法中的步骤。

说明书 :

一种用于软件测试的用例数据推荐方法、系统和介质

技术领域

[0001] 本发明涉及数据分析和处理领域,尤其是涉及一种用于软件测试的用例数据推荐方法、系统和介质。

背景技术

[0002] 软件测试(Software Testing),描述一种用来促进鉴定软件的正确性、完整性、安全性和质量的过程。换言之,软件测试是一种实际输出与预期输出之间的审核或者比较过
程。软件测试的经典定义是:在规定的条件下对程序进行操作,以发现程序错误,衡量软件
质量,并对其是否能满足设计要求进行评估的过程。
[0003] 软件测试是伴随着软件的产生而产生的。早期的软件开发过程中软件规模都很小、复杂程度低,软件开发的过程混乱无序、相当随意,测试的含义比较狭窄,开发人员将测
试等同于调试,目的是纠正软件中已经知道的故障,常常由开发人员自己完成这部分的工
作。随着软件和IT行业进入大发展阶段,软件趋向大型化、高复杂度,软件的质量越来越重
要。一些软件测试的基础理论和实用技术开始形成,并且人们开始为软件开发设计了各种
流程和管理方法,软件开发的方式也逐渐由混乱无序的开发过程过渡到结构化的开发过
程,以结构化分析与设计、结构化评审、结构化程序设计以及结构化测试为特征。随着将质
量的概念融入其中,软件测试定义发生了改变,测试不单纯是一个发现错误的过程,而且将
测试作为软件质量保证的主要职能,包含软件质量评价的内容。在《软件测试完全指南》中,
测试是以评价一个程序或者系统属性为目标的任何一种活动;测试是对软件质量的度量。
该定义至今仍被引用。软件开发人员和测试人员开始坐在一起探讨软件工程和测试问题。
[0004] 软件测试主要分为测试需求分析、测试计划、测试设计、测试执行、测试评估等阶段。在传统测试中,测试工作是极其繁复的,在每个测试阶段都需要投入大量的测试人员和
软、硬件资源,去开展测试工作。整个测试过程中需要耗费大量资源和时间。

发明内容

[0005] 本发明的目的在于提供一种用于软件测试的用例数据推荐方案,以解决现有技术中存在的上述技术问题。该方案基于自然语言处理的测试用例智能推荐技术,能够简化测
试设计的工作,减少资源投入,并缩短测试周期。
[0006] 基于自然语言处理的测试用例智能推荐技术,主要特点是基于已采集的典型测试用例数据,对典型测试用例数据的自然语言处理,智能分词、知识抽取等生成测试用例推荐
模型。在测试人员设计测试用例时,根据测试需求和测试功能,为测试人员智能推荐出尽可
能适配测试需求、功能的测试用例数据,以便测试人员快速构建出大量满足需求的测试用
例数据,减少测试人员的在测试用例设计阶段的工作,在测试设计过程节省大量的时间。
[0007] 本发明第一方面提供了一种用于软件测试的用例数据推荐方法,所述方法包括:步骤S1、获取用户输入的测试需求;步骤S2、提取所述测试需求中的知识论元子图,所述知
识论元子图表示所述测试需求中包含的基于自然语言的短语和单词的知识论元关系;步骤
S3、在知识库中查询与所述知识论元子图对应的知识库子图;以及步骤S4、基于查询到的所
述知识库子图,确定向所述用户推荐的所述用例数据。
[0008] 根据本发明第一方面提供的方法,所述知识库中的各个所述知识库子图通过以下方式来构建:基于深度神经网络来提取所述用例数据中的知识论元;根据语法结构,利用依
存分析或语义解析来确定多个所述知识论元之间的关系,以及基于所述关系来确定所述知
识论元对应的事件角色,从而构建所述用例数据的所述知识库子图。
[0009] 根据本发明第一方面提供的方法,在所述步骤S3,通过确定所述知识论元子图中包括含的各个论元在所述知识库中的位置来查询所述知识库中与所述知识论元子图对应
的知识库子图。
[0010] 根据本发明第一方面提供的方法,所述步骤S4进一步包括:从所述知识库子图中获取多个候选答案;通过TRANSE算法确定所述知识库子图中的多条路径;从所述多条路径
中提取出表征所述候选答案特征的特征向量;以及将所述特征向量作为分类器的输入,来
获取向所述用户推荐的所述用例数据。
[0011] 本发明第二方面提供了一种用于软件测试的用例数据推荐系统,所述系统包括:获取单元,被配置为,获取用户输入的测试需求;提取单元,被配置为,提取所述测试需求中
的知识论元子图,所述知识论元子图表示所述测试需求中包含的基于自然语言的短语和单
词的知识论元关系;查询单元,被配置为,在知识库中查询与所述知识论元子图对应的知识
库子图;以及确定单元,被配置为,基于查询到的所述知识库子图,确定向所述用户推荐的
所述用例数据。
[0012] 根据本发明第二方面提供的系统,所述知识库包含在所述用例数据推荐系统中,或通过外部连接将其连接至所述用例数据推荐系统;所述知识库中的各个所述知识库子图
通过以下方式来构建:基于深度神经网络来提取所述用例数据中的知识论元;根据语法结
构,利用依存分析或语义解析来确定多个所述知识论元之间的关系,以及基于所述关系来
确定所述知识论元对应的事件角色,从而构建所述用例数据的所述知识库子图。
[0013] 根据本发明第二方面提供的系统,所述查询单元进一步被配置为,通过确定所述知识论元子图中包含的各个论元在所述知识库中的位置来查询所述知识库中与所述知识
论元子图对应的知识库子图。
[0014] 根据本发明第二方面提供的系统,所述确定单元进一步被配置为:从所述知识库子图中获取多个候选答案;通过TRANSE算法确定所述知识库子图中的多条路径;从所述多
条路径中提取出表征所述候选答案特征的特征向量;以及将所述特征向量作为分类器的输
入,来获取向所述用户推荐的所述用例数据。
[0015] 本发明第三方面提供了一种存储有指令的非暂时性计算机可读介质,当所述指令由处理器执行时,执行根据本发明第一方面的一种用于软件测试的用例数据推荐方法中的
步骤。
[0016] 采用上述技术方案,本发明具有如下有益效果:能够实现快速构建出大量满足需求的测试用例数据,同时能够减少测试人员的在测试用例设计阶段所做的工作,从而在测
试设计过程节省大量的时间。

附图说明

[0017] 为了更清楚地说明本发明具体实施方式或现有技术中的技术方案下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的
附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前
提下,还可以根据这些附图获得其他的附图。
[0018] 图1为根据本发明实施例的用于软件测试的用例数据推荐方法的流程的示意图;
[0019] 图2为根据本发明实施例的用于软件测试的用例数据推荐系统的结构图。

具体实施方式

[0020] 下面将结合附图对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术
人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0021] 本发明第一方面提供了一种用于软件测试的用例数据推荐方法,其能够实现快速构建出大量满足需求的测试用例数据,同时能够减少测试人员的在测试用例设计阶段所做
的工作,从而在测试设计过程节省大量的时间。
[0022] 图1为根据本发明实施例的用于软件测试的用例数据推荐方法的流程的示意图。如图1所示,流程100始于步骤S1,获取用户输入的测试需求。在一些实施例中,在所述步骤
S1,可以基于用户输入的方式来获取所述测试需求,也可以通过其他方式,包括但不限于:
通过测试平台的配置,或者通过外部数据导入等。
[0023] 接下来,在步骤S2,提取所述测试需求中的知识论元子图,所述知识论元子图表示所述测试需求中包含的基于自然语言的短语和单词的知识论元关系。
[0024] 在一些实施例中,在测试人员进行测试用例设计时,通过深度学习的方法对当前测试需求的信息描述进行分布式表达的学习,将需求描述中包含的基于自然语言的短语和
单词映射到知识库论元或论元关系,进而将需求描述转化为知识库可以进行理解的需求知
识论元子图。
[0025] 随后,在步骤S3,在知识库中查询与所述知识论元子图对应的知识库子图。
[0026] 在一些实施例中,知识库中的测试用例采集,是指在系统中对应用软件全生命周期测试过程中产生的测试用例数据进行的统一的采集管理。根据不同的测试需求、功能、测
试项目信息等进行归类、汇总、入库、存储,实现测试用例数据积累。
[0027] 在一些实施例中,所述知识库中的各个所述知识库子图通过以下方式来构建:基于深度神经网络来提取所述用例数据中的知识论元;根据语法结构,利用依存分析或语义
解析来确定多个所述知识论元之间的关系,以及基于所述关系来确定所述知识论元对应的
事件角色,从而构建所述用例数据的所述知识库子图。对于即将入库存存储的测试用例,通
过构建深度神经网络,提取测试用例数据中的知识论元,基于句法结构利用依存分析或者
语义解析确定不同论元之间的关系,同时根据事件的触发词获取事件相应描述的句子,识
别事件描述句子中论元对应事件的角色,构建完整的知识图谱,即该测试用例的知识库子
图。
[0028] 在一些实施例中,通过确定所述知识论元子图中包含的各个论元在所述知识库中的位置来查询所述知识库中与所述知识论元子图对应的知识库子图。也就是说,通过在知
识库中查询知识论元子图中的知识论元的位置,以得到所述位置上的论元为中心的知识库
子图。
[0029] 最后,在步骤S4,基于查询到的所述知识库子图,确定向所述用户推荐的所述用例数据。具体地,从所述知识库子图中获取多个候选答案;通过TRANSE算法确定所述知识库子
图中的多条路径;从所述多条路径中提取出表征所述候选答案特征的特征向量;以及将所
述特征向量作为分类器的输入,来获取向所述用户推荐的所述用例数据。
[0030] 在一些实施例中,通过TRANSE算法,补全知识库子图中不同路径缺失的关系,然后求解知识库子图中的不同路径,依据规则或模板进行信息抽取,得到表征问题和候选答案
特征的特征向量,建立分类器,通过输入特征向量对候选答案进行筛选,从而筛选出可能适
用于当前测试需求的测试用例信息,推荐给测试人员完成测试用例设计。
[0031] 综上,本发明第一方面的一种用于软件测试的用例数据推荐方法,通过采集和存储测试人员在测试过程中针对测试需求设计的典型测试用例数据,为自然语言处理、学习
积累大量的测试用例数据。并依据采集的典型测试用例数据,进行深度处理,生成智能用例
推荐模型。在开展测试时,针对测试需求和功能,通过智能推荐模型为测试人员推荐使用的
测试用例数据。同时通过对大量测试用例数据的学习,提高测试用例智能推荐的准确性和
针对性。
[0032] 本发明第二方面提供了一种用于软件测试的用例数据推荐系统,图2为根据本发明实施例的用于软件测试的用例数据推荐系统的结构图。如图2所示,所述系统包括:获取
单元,被配置为,获取用户输入的测试需求;提取单元,被配置为,提取所述测试需求中的知
识论元子图,所述知识论元子图表示所述测试需求中包含的基于自然语言的短语和单词的
知识论元关系;查询单元,被配置为,在知识库中查询与所述知识论元子图对应的知识库子
图;以及确定单元,被配置为,基于查询到的所述知识库子图,确定向所述用户推荐的所述
用例数据。
[0033] 在一些实施例中,所述知识库包含在所述用例数据推荐系统中,或通过外部连接将其连接至所述用例数据推荐系统;所述知识库中的各个所述知识库子图通过以下方式来
构建:基于深度神经网络来提取所述用例数据中的知识论元;根据语法结构,利用依存分析
或语义解析来确定多个所述知识论元之间的关系,以及基于所述关系来确定所述知识论元
对应的事件角色,从而构建所述用例数据的所述知识库子图。
[0034] 在一些实施例中,所述查询单元进一步被配置为,通过确定所述知识论元子图中包含的各个论元在所述知识库中的位置来查询所述知识库中与所述知识论元子图对应的
知识库子图。在一些实施例中,所述确定单元进一步被配置为:从所述知识库子图中获取多
个候选答案;通过TRANSE算法确定所述知识库子图中的多条路径;从所述多条路径中提取
出表征所述候选答案特征的特征向量;以及将所述特征向量作为分类器的输入,来获取向
所述用户推荐的所述用例数据。
[0035] 本发明第三方面提供了一种存储有指令的非暂时性计算机可读介质,当所述指令由处理器执行时,执行根据本发明第一方面的一种用于软件测试的用例数据推荐方法中的
步骤。
[0036] 最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依
然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进
行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术
方案的范围。