测试数据特征提取方法、测试方法及相关装置
文献发布时间:2023-06-19 11:35:49
技术领域
本申请涉及软件测试技术领域,特别是涉及一种测试数据特征提取方法、测试方法及相关装置。
背景技术
由于中文自然语言对于相同事物的描述存在多种说法,特别是不同人所写的文本差异性更大,因此,不同的人使用中文自然语言编写结构化测试用例时会出现差异性,导致测试数据冗余构造,形成过多的重复劳动和低复用的结果。
现有实现方案可以使用句向量方式,使用大量的中文文本集作为训练素材,通过无监督学习得到数据模型,然后利用模型对结构化测试用例中的短句进行聚类,将相似的短句进行关联再与唯一的测试数据ID映射。但该方案存在两个较明显的问题:一是依赖较大量的中文文本集作为训练素材,但对于新产品通常难以提供大量的结构化测试用例文本;二是通过聚类方式做关联准确性偏低,一般都低于50%。有鉴于此,如何提供准确率较高且无需大量训练素材的测试数据特征提取方法成为极具研究价值的课题。
发明内容
本申请主要解决的技术问题是提供一种测试数据特征提取方法、测试方法及相关装置,能够避免测试数据的冗余构造。
为了解决上述问题,本申请第一方面提供了一种测试数据特征提取方法,所述提取方法包括:获取测试用例中的原始语料短句;提取所述原始语料短句的关键词,形成关键词集;采用预训练的词嵌入模型对所述关键词集进行调整,得到所述原始语料短句对应的向量化特征语句;采用预设加密算法对所述向量化特征语句进行加密,得到所述原始语料短句对应的测试数据特征。
为了解决上述问题,本申请第二方面提供了一种测试方法,所述测试方法包括:利用测试数据特征提取方法对测试用例中的所有原始语料短句进行测试数据特征的提取,得到每个原始语料短句对应的测试数据特征;根据每个原始语料短句对应的测试数据特征建立索引值,以将所述测试用例中的所有原始语料短句按照不同的测试数据特征进行分类;将所述测试用例中的所有原始语料短句按照分类结果进行测试;其中,所述测试数据特征提取方法为上述第一方面的测试数据特征提取方法。
为了解决上述问题,本申请第三方面提供了一种测试数据特征的提取装置,包括:语料获取模块,所述语料获取模块用于获取测试用例中的原始语料短句;关键词提取模块,所述关键词提取模块用于提取所述原始语料短句的关键词,形成关键词集;向量化模块,所述向量化模块用于采用预训练的词嵌入模型对所述关键词集进行调整,得到所述原始语料短句对应的向量化特征语句;加密模块,所述加密模块用于采用预设加密算法对所述向量化特征语句进行加密,得到所述原始语料短句对应的测试数据特征。
为了解决上述问题,本申请第四方面提供了一种测试装置,包括:特征提取模块,所述特征提取模块用于利用测试数据特征提取方法对测试用例中的所有原始语料短句进行测试数据特征的提取,得到每个原始语料短句对应的测试数据特征;分类模块,所述分类模块用于根据每个原始语料短句对应的测试数据特征建立索引值,以将所述测试用例中的所有原始语料短句按照不同的测试数据特征进行分类;测试模块,所述测试模块用于将所述测试用例中的所有原始语料短句按照分类结果进行测试;其中,所述测试数据特征提取方法为上述第一方面的测试数据特征提取方法。
为了解决上述问题,本申请第五方面提供了一种电子设备,包括相互耦接的存储器和处理器,所述处理器用于执行所述存储器中存储的程序指令,以实现上述第一方面的测试数据特征提取方法,或上述第二方面的测试方法。
为了解决上述问题,本申请第六方面提供了一种计算机可读存储介质,其上存储有程序指令,所述程序指令被处理器执行时实现上述第一方面的测试数据特征提取方法,或上述第二方面的测试方法。
本发明的有益效果是:区别于现有技术的情况,本申请的测试数据特征提取方法中,通过提取原始语料短句的关键词而形成关键词集,并采用预训练的词嵌入模型对关键词集进行调整,得到原始语料短句对应的向量化特征语句,然后采用预设加密算法对向量化特征语句进行加密,从而得到原始语料短句对应的测试数据特征,于是,根据所有的原始语料短句对应的测试数据特征,可以将测试用例中的原始语料短句进行分类,使原本不同的多个原始语料短句关联到同一测试数据特征,实现了磨平不同的测试用例的差异性,使得多个不同表达方式但实际语义相同的原始语料短句能与测试数据特征建立唯一的映射关系,避免测试数据的冗余构造。另外,本申请的测试方法,利用上述测试数据特征提取方法所得到的测试数据进行软件测试,可以实现低重复劳动高复用。
附图说明
图1是本申请测试数据特征提取方法一实施例的流程示意图;
图2是图1中步骤S12一实施例的流程示意图;
图3是图1中步骤S13一实施例的流程示意图;
图4是本申请测试方法一实施例的流程示意图;
图5是本申请测试数据特征的提取装置一实施例的框架示意图;
图6是本申请测试装置一实施例的框架示意图;
图7是本申请电子设备一实施例的框架示意图;
图8是本申请计算机可读存储介质一实施例的框架示意图。
具体实施方式
下面结合说明书附图,对本申请实施例的方案进行详细说明。
以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、接口、技术之类的具体细节,以便透彻理解本申请。
本文中术语“系统”和“网络”在本文中常被可互换使用。本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。此外,本文中的“多”表示两个或者多于两个。
请参阅图1,图1是本申请测试数据特征提取方法一实施例的流程示意图。具体而言,本实施例中的测试数据特征提取方法可以包括如下步骤:
步骤S11:获取测试用例中的原始语料短句。
软件测试通常是根据软件开发各阶段的规格说明和程序的内部结构精心选取一批测试数据来组成测试用例,并用这些测试用例去驱动被测程序,观察程序的执行结果,验证所得结果与预期结果是否一致,然后做相应的调整。在一实施例中,测试用例可以为结构化测试用例,结构化测试用例是按照UML(统一建模语言或标准建模语言)以及BNF(巴科斯范式)约束编写的半形式化的、用中文自然语言编写的测试用例文档。为了保证软件测试的覆盖率,测试用例一般包含经科学取样和加工的大规模的语料数据,这些语料数据可在已进行过的程序测试过程中收集,由于中文自然语言对于相同事物的描述存在多种说法,特别是不同人所写的文本差异性更大,因此这些语料数据很多都是重复性的描述,故需要获取初始的测试用例中的原始语料短句,以实现对初始的测试用例进行特征提取,避免测试数据的冗余构造。
步骤S12:提取所述原始语料短句的关键词,形成关键词集。
在自然语言处理过程中,之所以对于相同事物的描述存在多种说法,很大程度上是由于在语料中具有很多修饰性词语,这些修饰性词语对于事物的描述来说,大多数情况下意义较小,而对事物的描述起主要作用的词语,即为原始语料短句的关键词。通过提取原始语料短句的关键词,可以形成关键词集,所形成的关键词集,即可以反映原始语料短句所要描述的事物。
请结合图2,图2是图1中步骤S12一实施例的流程示意图。在一实施例中,上述步骤S12具体可以包括:
步骤S121:将所述原始语料短句进行分词处理,得到原始单词集。
具体地,原始语料短句中包括对目标程序进行测试的要求,对该测试目标信息进行分词处理,得到该测试目标信息中包含的多个词汇,即可得到由分词处理后所得到的多个词汇形成的原始单词集。当对原始语料短句进行分词处理时,可以采用jieba(结巴分词)算法、SnowNLP(情感分析)算法、THULAC(中文词法分析)算法等,或者还可以采用其他具有分词功能的算法,以将原始语料短句切分成一个一个单独的词。
步骤S122:采用预设处理规则对所述原始单词集进行过滤,得到所述关键词集。
可以理解的是,在对原始语料短句进行分词处理得到原始单词集后,原始单词集中可能包括用于表示语气、修饰等不具有具体含义的词汇,采用预设处理规则对原始单词集中不具有具体含义的词汇过滤掉,剩下的词汇可以反映原始语料短句所要描述的事物,即得到对应的关键词集。
具体地,所述预设处理规则包括去停用词规则、去标点规则、去数字规则中的至少一种。在完成分词处理后,对得到原始单词集进行过滤处理,去停用词规则是指建立停用词库对原始单词集进行过滤,以将停用词库中存在于原始单词集中的分词滤除,去标点规则是指对原始单词集中的标点符号和后缀符号等进行滤除,去数字规则是指对原始单词集中的数字进行滤除。通过滤除原始单词集中的不具有实际含义的无用词,可以提高测试数据特征提取的准确率。
步骤S13:采用预训练的词嵌入模型对所述关键词集进行调整,得到所述原始语料短句对应的向量化特征语句。
词嵌入模型通过训练,可以将所有的词向量化,这样就可以定量的去度量词与词之间的关系,挖掘词之间的联系,因此,词嵌入模型输出的词向量可以被用来做很多自然语言处理相关的工作,比如聚类、找同义词、词性分析等等。在本申请中,采用预训练的词嵌入模型对关键词集进行调整,可以得到原始语料短句对应的向量化特征语句;具体地,采用预训练的词嵌入模型对关键词进行向量化处理,可以得到多维度的向量数据,即关键词的词向量;而根据关键词在原始语料短句中的词语特征,对关键词集中的各关键词进行向量化处理,得到词向量集合,根据词向量集合,可以将原始语料短句转换为向量化特征语句。
请结合图3,图3是图1中步骤S13一实施例的流程示意图。在一实施例中,上述步骤S13具体可以包括:
步骤S131:将所述关键词集输入所述预训练的词嵌入模型,得到词向量。
步骤S132:使用嵌入空间中与本体词最近的相邻词将所述本体词替换,得到所述原始语料短句对应的向量化特征语句。
通过对每一个关键词进行向量化处理,得到每一个关键词的词向量,从而得到每一个原始语料短句对应的词向量构成的词向量集合。通过词嵌入模型输出词向量,嵌入空间中最接近的词之间的相似性最高,因此,通过使用嵌入空间中与本体词最近的相邻词将本体词替换,所得到原始语料短句对应的向量化特征语句,可以磨平不同的人使用中文自然语言编写的结构化文本测试用例的差异性。
步骤S14:采用预设加密算法对所述向量化特征语句进行加密,得到所述原始语料短句对应的测试数据特征。
可以理解的是,采用预设加密算法对向量化特征语句进行加密,可以得到该向量化特征语句对应的唯一的特征值,即为原始语料短句对应的测试数据特征。可以理解的是,由于向量化特征语句对应有唯一的特征值,使得可以根据特征值对各原始语料短句对应的向量化特征语句进行比较分类,使原本不同的多个原始语料短句关联到同一测试数据特征,实现了磨平不同的测试用例的差异性,使得多个不同表达方式但实际语义相同的原始语料短句能与测试数据特征建立唯一的映射关系,避免测试数据的冗余构造。
在一实施例中,所述预设加密算法为消息摘要算法。消息摘要算法是把任意长度的输入揉和而产生长度固定的伪随机输入的算法。一般地,只要输入的消息不同,对其进行摘要以后产生的摘要消息也必不相同;但相同的输入必会产生相同的输出。这正是好的消息摘要算法所具有的性质:即输入改变了,输出也就改变了。因此,通过消息摘要算法对向量化特征语句进行加密,得到原始语料短句对应的测试数据特征,使得两条相似的向量化特征语句的摘要却不相近,甚至会大相径庭,从而可以根据得到的原始语料短句对应的测试数据特征,准确判断原本不同的多个原始语料短句是否描述同一事物。
具体地,消息摘要算法可以为信息摘要算法5(Message-Digest Algorithm 5,MD5),此时原始语料短句对应的测试数据特征为MD5值。对于任意长度的数据,算出的MD5值的长度都是固定的,并且从原数据计算出MD5值很容易,而对原数据进行任何改动,哪怕只修改1个字节,所得到的MD5值都有很大区别。因此,可以根据得到的原始语料短句对应的MD5值,将测试用例中的原始语料短句进行分类,使原本不同的多个原始语料短句关联到同一MD5值,实现了磨平不同的测试用例的差异性,使得多个不同表达方式但实际语义相同的原始语料短句能与MD5值建立唯一的映射关系,避免测试数据的冗余构造。
请参阅图4,图4是本申请测试方法一实施例的流程示意图。本实施例中的测试方法可以包括如下步骤:
步骤S41:利用测试数据特征提取方法对测试用例中的所有原始语料短句进行测试数据特征的提取,得到每个原始语料短句对应的测试数据特征。其中,所述测试数据特征提取方法为上述任意一种测试数据特征提取方法。
本申请的测试方法应用于测试装置中,该测试装置可以为终端或者服务器。其中,该终端可以为智能手机、平板电脑、计算机等。该服务器可以为一台服务器,或者由若干服务器组成的服务器集群。用户可以将待测试的软件程序安装于测试终端或上传于服务器,测试终端或服务器采用本申请提供的测试方法,对该待测试的软件程序进行测试。
步骤S42:根据每个原始语料短句对应的测试数据特征建立索引值,以将所述测试用例中的所有原始语料短句按照不同的测试数据特征进行分类。
步骤S43:将所述测试用例中的所有原始语料短句按照分类结果进行测试。
具体地,在对待测试的软件程序进行测试之前,可以建立相应的测试用例,然而,由于中文自然语言对于相同事物的描述存在多种说法,特别是不同人所写的文本差异性更大,故测试用例中往往存在多个不同的原始语料短句描述相同事物,若采用这种测试用例对待测试的软件程序进行测试,则会出现高重复劳动低复用的结果。因此,需要利用测试数据特征提取方法对测试用例中的所有原始语料短句进行测试数据特征的提取,得到每个原始语料短句对应的测试数据特征,然后根据每个原始语料短句对应的测试数据特征建立索引值,以将所述测试用例中的所有原始语料短句按照不同的测试数据特征进行分类,从而可以将所述测试用例中的所有原始语料短句按照分类结果进行测试,实现低重复劳动高复用。
本申请的测试数据特征提取方法中,通过提取原始语料短句的关键词而形成关键词集,并采用预训练的词嵌入模型对关键词集进行调整,得到原始语料短句对应的向量化特征语句,然后采用预设加密算法对向量化特征语句进行加密,从而得到原始语料短句对应的测试数据特征,于是,根据所有的原始语料短句对应的测试数据特征,可以将测试用例中的原始语料短句进行分类,使原本不同的多个原始语料短句关联到同一测试数据特征,实现了磨平不同的测试用例的差异性,使得多个不同表达方式但实际语义相同的原始语料短句能与测试数据特征建立唯一的映射关系,避免测试数据的冗余构造。另外,本申请的测试方法,利用上述测试数据特征提取方法所得到的测试数据进行软件测试,可以实现低重复劳动高复用。
在一应用场景中,获取到多个原始语料短句,其中,原始语料短句1为“用户是否已注册为大神用户”,原始语料短句2为“小鹿陪玩用户是否注册成大神用户”,原始语料短句3为“用户是否已经注册成为大神用户”。先对各原始语料短句进行分词处理,得到相应的原始单词集,其中,对原始语料短句1进行分词处理的结果为“用户|是否|已|注册|为|大神用户”,对原始语料短句2进行分词处理的结果为“小鹿陪玩用户|是否|注册|成|大神用户”,对原始语料短句3进行分词处理的结果为“用户|是否|已经|注册|成为|大神用户”。然后对原始单词集进行过滤,去掉无用词,得到关键词集,其中,对原始语料短句1对应的原始单词集去掉无用词的结果为“用户|注册|大神用户”,对原始语料短句2对应的原始单词集去掉无用词的结果为“小鹿陪玩用户|注册|大神用户”,对原始语料短句3对应的原始单词集去掉无用词的结果为“用户|注册|大神用户”。由于在嵌入空间中,“小鹿陪玩用户”与“用户”接近,因此,在将各原始语料短句对应的关键词集进行本体词替换,得到的向量化特征语句的结果均为“小鹿陪玩用户|注册|大神用户”。由于各原始语料短句对应的向量化特征语句相同,通过消息摘要算法5对向量化特征语句进行加密,所得到的各原始语料短句对应的测试数据特征必然相同。上述三个原始语料短句经过处理后最终得到了相同的测试数据特征,测试数据特征的md5值为“小鹿陪玩用户|注册|大神用户”,以该测试数据特征的md5值建立索引值,使得原本不同说法的三个原始语料短句可关联到同一个测试数据特征,然后对这些归类后的测试数据特征进行具体的测试自动化脚本实现。于是可以磨平不同的人使用中文自然语言编写的结构化文本测试用例的差异性,使得多个不同表达方式但实际语义相同的中文短句能与测试数据特征建立唯一的映射关系,避免测试数据的冗余构造,实现低重复劳动高复用。
请参阅图5,图5是本申请测试数据特征的提取装置一实施例的框架示意图。测试数据特征的提取装置50包括:语料获取模块500,所述语料获取模块500用于获取测试用例中的原始语料短句;关键词提取模块502,所述关键词提取模块502用于提取所述原始语料短句的关键词,形成关键词集;向量化模块504,所述向量化模块504用于采用预训练的词嵌入模型对所述关键词集进行调整,得到所述原始语料短句对应的向量化特征语句;加密模块506,所述加密模块506用于采用预设加密算法对所述向量化特征语句进行加密,得到所述原始语料短句对应的测试数据特征。
在一些实施例中,关键词提取模块502执行提取所述原始语料短句的关键词,形成关键词集的步骤,包括:将所述原始语料短句进行分词处理,得到原始单词集;采用预设处理规则对所述原始单词集进行过滤,得到所述关键词集。
在一些实施例中,向量化模块504执行采用预训练的词嵌入模型对所述关键词集进行调整,得到所述原始语料短句对应的向量化特征语句,包括:将所述关键词集输入所述预训练的词嵌入模型,得到词向量;使用嵌入空间中与本体词最近的相邻词将所述本体词替换,得到所述原始语料短句对应的向量化特征语句。
请参阅图6,图6是本申请测试装置一实施例的框架示意图。测试装置60包括:特征提取模块600,所述特征提取模块600用于利用测试数据特征提取方法对测试用例中的所有原始语料短句进行测试数据特征的提取,得到每个原始语料短句对应的测试数据特征;其中,所述测试数据特征提取方法为上述任意一种测试数据特征提取方法;分类模块602,所述分类模块602用于根据每个原始语料短句对应的测试数据特征建立索引值,以将所述测试用例中的所有原始语料短句按照不同的测试数据特征进行分类;测试模块604,所述测试模块604用于将所述测试用例中的所有原始语料短句按照分类结果进行测试。
请参阅图7,图7是本申请电子设备一实施例的框架示意图。电子设备70包括相互耦接的存储器71和处理器72,处理器72用于执行存储器71中存储的程序指令,以实现上述任意一种测试数据特征提取方法实施例的步骤,或上述任意一种测试方法实施例的步骤。在一个具体的实施场景中,电子设备70可以包括但不限于:微型计算机、服务器。
具体而言,处理器72用于控制其自身以及存储器71以实现上述任意一种测试数据特征提取方法实施例的步骤,或上述任意一种测试方法实施例的步骤。处理器72还可以称为CPU(Central Processing Unit,中央处理单元)。处理器72可能是一种集成电路芯片,具有信号的处理能力。处理器72还可以是通用处理器、数字信号处理器(Digital SignalProcessor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。另外,处理器72可以由集成电路芯片共同实现。
请参阅图8,图8是本申请计算机可读存储介质一实施例的框架示意图。计算机可读存储介质80存储有能够被处理器运行的程序指令800,程序指令800用于实现上述任意一种测试数据特征提取方法实施例的步骤,或上述任意一种测试方法实施例的步骤。
在本申请所提供的几个实施例中,应该理解到,所揭露的方法、装置,可以通过其它的方式实现。例如,以上所描述的装置实施方式仅仅是示意性的,例如,模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性、机械或其它的形式。
作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施方式方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本申请各个实施方式方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
- 测试数据特征提取方法、测试方法及相关装置
- 漏洞发现方法、测试方法、安全测试方法及相关装置、平台