CN116955210B - 一种测试用例的生成方法、装置、电子设备及存储介质 - Google Patents
一种测试用例的生成方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN116955210B CN116955210B CN202311204562.3A CN202311204562A CN116955210B CN 116955210 B CN116955210 B CN 116955210B CN 202311204562 A CN202311204562 A CN 202311204562A CN 116955210 B CN116955210 B CN 116955210B
- Authority
- CN
- China
- Prior art keywords
- test
- training
- requirement information
- sample data
- test case
- 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.)
- Active
Links
- 238000012360 testing method Methods 0.000 title claims abstract description 664
- 238000000034 method Methods 0.000 title claims abstract description 127
- 238000003860 storage Methods 0.000 title claims abstract description 9
- 238000012549 training Methods 0.000 claims abstract description 187
- 238000004519 manufacturing process Methods 0.000 claims abstract description 176
- 239000013598 vector Substances 0.000 claims description 200
- 230000011218 segmentation Effects 0.000 claims description 88
- 239000011159 matrix material Substances 0.000 claims description 46
- 230000007246 mechanism Effects 0.000 claims description 27
- 238000012545 processing Methods 0.000 claims description 14
- 238000004590 computer program Methods 0.000 claims description 13
- 238000007781 pre-processing Methods 0.000 claims description 8
- 238000012937 correction Methods 0.000 claims description 7
- 230000008569 process Effects 0.000 description 34
- 102100033814 Alanine aminotransferase 2 Human genes 0.000 description 13
- 101000779415 Homo sapiens Alanine aminotransferase 2 Proteins 0.000 description 11
- 230000006870 function Effects 0.000 description 9
- 230000010354 integration Effects 0.000 description 6
- 238000010998 test method Methods 0.000 description 6
- 238000009826 distribution Methods 0.000 description 5
- 238000010586 diagram Methods 0.000 description 4
- 238000005259 measurement Methods 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 238000009776 industrial production Methods 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000006467 substitution reaction Methods 0.000 description 3
- 101710096000 Alanine aminotransferase 2 Proteins 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 230000018109 developmental process Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000002708 enhancing effect Effects 0.000 description 2
- 238000011156 evaluation Methods 0.000 description 2
- 238000013112 stability test Methods 0.000 description 2
- 238000012430 stability testing Methods 0.000 description 2
- 238000012795 verification Methods 0.000 description 2
- 101100322920 Danio rerio gpt2l gene Proteins 0.000 description 1
- 101150079757 GPT2 gene Proteins 0.000 description 1
- 206010037660 Pyrexia Diseases 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 230000001351 cycling effect Effects 0.000 description 1
- 230000007613 environmental effect Effects 0.000 description 1
- 238000013100 final test Methods 0.000 description 1
- 230000008676 import Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 238000012805 post-processing Methods 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 230000002787 reinforcement Effects 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
- 238000000060 site-specific infrared dichroism spectroscopy Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000012956 testing procedure Methods 0.000 description 1
- 238000009966 trimming Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3684—Test management for test design, e.g. generating new test cases
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3688—Test management for test execution, e.g. scheduling of test suites
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/20—Natural language analysis
- G06F40/279—Recognition of textual entities
- G06F40/289—Phrasal analysis, e.g. finite state techniques or chunking
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02P—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
- Y02P90/00—Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
- Y02P90/30—Computing systems specially adapted for manufacturing
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Computer Hardware Design (AREA)
- Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- Debugging And Monitoring (AREA)
Abstract
本申请实施例提供一种测试用例的生成方法、装置、电子设备及存储介质,该方法包括:获取目标生产测试需求信息;根据目标生产测试需求信息和预先训练好的测试用例生成模型,确定与目标生产测试需求信息的目标测试用例,其中,预先训练好的测试用例生成模型是采用样本数据对语言模型进行训练得到的,样本数据包括生产测试需求信息、测试用例和生产测试需求信息和测试用例的对应关系,这样,不需要工作人员对每个产品手工编写测试用例,只需要输入需求信息,就可以得到测试用例,提高测试用例编写效率,同时提高测试用例的测试效率。
Description
技术领域
本申请涉及测试技术领域,具体而言,涉及一种测试用例的生成方法、装置、电子设备及存储介质。
背景技术
随着生产技术的不断发展,在工厂的生产过程中需要对各个工序进行生产测试,工厂生产制造产品,一般产品很多,对应的测试用例也很多,对每一个产品进行测试,则需要人工编写测试用例,需要消耗大量的时间和精力,而且一个人也无法编写全部的测试用例,传统的生产测试方法缺乏自动化,需要手动执行测试,如何提高测试用例的编写效率,且可以提高测试效率,是目前急需解决的问题。
发明内容
本申请的一些实施例的目的在于提供一种测试用例的生成方法、装置、电子设备及存储介质,通过本申请的实施例的技术方案,通过获取目标生产测试需求信息;根据所述目标生产测试需求信息和预先训练好的测试用例生成模型,确定与所述目标生产测试需求信息的目标测试用例,其中,所述预先训练好的测试用例生成模型是采用样本数据对语言模型进行训练得到的,所述样本数据包括生产测试需求信息、测试用例和所述生产测试需求信息和所述测试用例的对应关系,在本申请实施例中,采用大量的样本数据对语言模型进行训练,且样本数据包括生产测试需求信息和所述测试用例的对应关系,得到测试用例生成模型,在具体的实施测试过程中,只需要获取目标生产测试需求信息,则可以根据目标生产测试需求信息和测试用例生成模型,生成与目标生产测试需求信息对应的目标测试用例,这样,不需要工作人员对每个产品手工编写测试用例,只需要输入需求信息,就可以得到测试用例,提高测试用例编写效率,同时提高测试用例的测试效率。
第一方面,本申请的一些实施例提供了一种测试用例的生成方法,包括:
获取目标生产测试需求信息;
根据所述目标生产测试需求信息和预先训练好的测试用例生成模型,确定与所述目标生产测试需求信息的目标测试用例,其中,所述预先训练好的测试用例生成模型是采用样本数据对语言模型进行训练得到的,所述样本数据包括生产测试需求信息、测试用例和所述生产测试需求信息和所述测试用例的对应关系。
本申请的一些实施例通过采用大量的样本数据对语言模型进行训练,且样本数据包括生产测试需求信息和所述测试用例的对应关系,得到测试用例生成模型,在具体的实施测试过程中,只需要获取目标生产测试需求信息,则可以根据目标生产测试需求信息和测试用例生成模型,生成与目标生产测试需求信息对应的目标测试用例,这样,不需要工作人员对每个产品手工编写测试用例,只需要输入需求信息,就可以得到测试用例,提高测试用例编写效率,同时提高测试用例的测试效率。
可选地,所述测试用例生成模型通过如下方式训练得到:
获取生产测试需求信息、测试用例,以及所述生产测试需求信息和所述测试用例的对应关系;
分别对所述生产测试需求信息和所述测试用例进行预处理,得到处理后的生产测试需求信息和处理后的测试用例;
根据所述处理后的生产测试需求信息和处理后的测试用例,确定词向量训练样本数据;
根据所述词向量样本数据对所述语言模型进行训练,得到所述测试用例生成模型。
本申请的一些实施例通过从大量的样本数据中学习,并且可以生成包含多种情境和场景的词向量训练样本数据,对语言模型进行训练,从而提高测试的全面性和可靠性。
可选地,所述根据所述处理后的生产测试需求信息和处理后的测试用例,确定词向量训练样本数据,包括:
分别对所述处理后的生产测试需求信息和所述处理后的测试用例进行分词处理,得到需求分词结果和测试用例分词结果;
为所述生产测试需求信息创建需求信息向量空间,且为所述测试用例创建测试用例向量空间;
根据所述需求分词结果和所述需求信息向量空间,确定需求信息词向量集合;
根据所述测试用例分词结果和所述测试用例向量空间,确定测试用例词向量集合;
根据所述需求信息词向量集合和所述测试用例词向量集合,确定所述词向量训练样本数据,其中,所述词向量训练样本数据至少包括需求分词结果、与所述需求分词结果对应的第一向量空间标识、测试用例分词结果和与所述测试用例分词结果对应的第二向量空间标识。
本申请的一些实施例,通过对生产测试需求信息和测试用例进行分词处理,然后创建对应的向量空间,并将生产测试需求信息映射到生产测试需求信息对应的向量空间,并将测试用例映射到测试用例对应的向量空间,然后将两个向量空间的向量进行合并,生成词向量训练样本数据,提高模型训练的准确性。
可选地,所述方法还包括:
采用Word2Vec模型对所述词向量训练样本数据进行重新训练,得到训练后的样本数据。
本申请的一些实施例,通过将两个向量空间的向量进行合并,在整合两个不同的知识来源,即两个词向量空间内各自捕获到的语义信息,这种整合可能有助于捕获两个语料库中的语言共性,使用预训练的词向量作为初始化通常可以加快模型的训练速度。
可选地,所述方法还包括:
对所述训练后的样本数据中的每一个分词进行判断;
若所述分词存在所述需求信息词向量集合和所述测试用例词向量集合中,则将所述分词确定为关键词;
获取所述训练后的样本数据中的多个关键词,并将所述多个关键词确定为关键词集合。
本申请的一些实施例,通过对训练后的样本数据中每一个分词进行判断,若该分词不仅存在需求信息词向量集合,还存在测试用例词向量集合中,则将该分词确定为关键词,将判断出的所有关键词确定为关键词集合,提高模型训练的准确性,且提高模型训练的效率。
可选地,所述方法还包括:
根据所述生产测试需求信息的预设测试难度级别划分规则,对所述训练后的样本数据进行级别划分,得到划分后的不同级别的训练数据。
本申请的一些实施例通过根据生产测试需求信息的预设测试难度级别划分规则对生产测试需求信息进行级别划分,这样,可以对训练参数进行调整,同时在后续的训练的过程中,可以采用分步对语言模型进行训练,提高模型训练的效率。
可选地,所述根据所述词向量样本数据对所述语言模型进行训练,得到所述测试用例生成模型,包括:
获取所述不同级别的关键词数据以及与所述关键词数据对应的初始权重矩阵;
根据预先设置的权重修正矩阵,对所述初始权重矩阵进行修正,得到修正后的权重矩阵;
根据所述修正后的权重矩阵,确定与所述修正后的权重矩阵中的关键词注意力;
根据所述修正后的权重矩阵中的关键词注意力对所述语言模型中的注意力机制进行调整,得到调整后的注意力机制;
根据所述不同级别的训练数据和所述调整后的注意力机制对所述语言模型进行训练,得到所述测试用例生成模型。
本申请的一些实施例通过使用内容偏差注意力机制修改语言模型的transformer中的多头注意力,根据关键字集合构建工业测试生产的多头注意力,语言模型会根据前面的单词来预测下一个单词的概率分布,训练过程中,语言模型会不断地调整自己的参数,以提高预测的准确性。
第二方面,本申请的一些实施例提供了一种测试用例的生成装置,包括:
获取模块,用于获取目标生产测试需求信息;
生成模块,用于根据所述目标生产测试需求信息和预先训练好的测试用例生成模型,确定与所述目标生产测试需求信息的目标测试用例,其中,所述预先训练好的测试用例生成模型是采用样本数据对语言模型进行训练得到的,所述样本数据包括生产测试需求信息、测试用例和所述生产测试需求信息和所述测试用例的对应关系。
本申请的一些实施例通过采用大量的样本数据对语言模型进行训练,且样本数据包括生产测试需求信息和所述测试用例的对应关系,得到测试用例生成模型,在具体的实施测试过程中,只需要获取目标生产测试需求信息,则可以根据目标生产测试需求信息和测试用例生成模型,生成与目标生产测试需求信息对应的目标测试用例,这样,不需要工作人员对每个产品手工编写测试用例,只需要输入需求信息,就可以得到测试用例,提高测试用例编写效率,同时提高测试用例的测试效率。
可选地,所述装置还包括模型训练模块,所述模型训练模块用于:
获取生产测试需求信息、测试用例,以及所述生产测试需求信息和所述测试用例的对应关系;
分别对所述生产测试需求信息和所述测试用例进行预处理,得到处理后的生产测试需求信息和处理后的测试用例;
根据所述处理后的生产测试需求信息和处理后的测试用例,确定词向量训练样本数据;
根据所述词向量样本数据对所述语言模型进行训练,得到所述测试用例生成模型。
本申请的一些实施例通过从大量的样本数据中学习,并且可以生成包含多种情境和场景的词向量训练样本数据,对语言模型进行训练,从而提高测试的全面性和可靠性。
可选地,所述模型训练模块用于:
分别对所述处理后的生产测试需求信息和所述处理后的测试用例进行分词处理,得到需求分词结果和测试用例分词结果;
为所述生产测试需求信息创建需求信息向量空间,且为所述测试用例创建测试用例向量空间;
根据所述需求分词结果和所述需求信息向量空间,确定需求信息词向量集合;
根据所述测试用例分词结果和所述测试用例向量空间,确定测试用例词向量集合;
根据所述需求信息词向量集合和所述测试用例词向量集合,确定所述词向量训练样本数据,其中,所述词向量训练样本数据至少包括需求分词结果、与所述需求分词结果对应的第一向量空间标识、测试用例分词结果和与所述测试用例分词结果对应的第二向量空间标识。
本申请的一些实施例,通过对生产测试需求信息和测试用例进行分词处理,然后创建对应的向量空间,并将生产测试需求信息映射到生产测试需求信息对应的向量空间,并将测试用例映射到测试用例对应的向量空间,然后将两个向量空间的向量进行合并,生成词向量训练样本数据,提高模型训练的准确性。
可选地,所述模型训练模块用于:
采用Word2Vec模型对所述词向量训练样本数据进行重新训练,得到训练后的样本数据。
本申请的一些实施例,通过将两个向量空间的向量进行合并,在整合两个不同的知识来源,即两个词向量空间内各自捕获到的语义信息,这种整合可能有助于捕获两个语料库中的语言共性,使用预训练的词向量作为初始化通常可以加快模型的训练速度。
可选地,所述模型训练模块用于:
对所述训练后的样本数据中的每一个分词进行判断;
若所述分词存在所述需求信息词向量集合和所述测试用例词向量集合中,则将所述分词确定为关键词;
获取所述训练后的样本数据中的多个关键词,并将所述多个关键词确定为关键词集合。
本申请的一些实施例,通过对训练后的样本数据中每一个分词进行判断,若该分词不仅存在需求信息词向量集合,还存在测试用例词向量集合中,则将该分词确定为关键词,将判断出的所有关键词确定为关键词集合,提高模型训练的准确性,且提高模型训练的效率。
可选地,所述模型训练模块用于:
根据所述生产测试需求信息的预设测试难度级别划分规则,对所述训练后的样本数据进行级别划分,得到划分后的不同级别的训练数据。
本申请的一些实施例通过根据生产测试需求信息的预设测试难度级别划分规则对生产测试需求信息进行级别划分,这样,可以对训练参数进行调整,同时在后续的训练的过程中,可以采用分步对语言模型进行训练,提高模型训练的效率。
可选地,所述模型训练模块用于:
获取所述不同级别的关键词数据以及与所述关键词数据对应的初始权重矩阵;
根据预先设置的权重修正矩阵,对所述初始权重矩阵进行修正,得到修正后的权重矩阵;
根据所述修正后的权重矩阵,确定与所述修正后的权重矩阵中的关键词注意力;
根据所述修正后的权重矩阵中的关键词注意力对所述语言模型中的注意力机制进行调整,得到调整后的注意力机制;
根据所述不同级别的训练数据和所述调整后的注意力机制对所述语言模型进行训练,得到所述测试用例生成模型。
本申请的一些实施例通过使用内容偏差注意力机制修改语言模型的transformer中的多头注意力,根据关键字集合构建工业测试生产的多头注意力,语言模型会根据前面的单词来预测下一个单词的概率分布,训练过程中,语言模型会不断地调整自己的参数,以提高预测的准确性。
第三方面,本申请的一些实施例提供一种电子设备,包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,其中,所述处理器执行所述程序时可实现如第一方面任一实施例所述的测试用例的生成方法。
第四方面,本申请的一些实施例提供一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时可实现如第一方面任一实施例所述的测试用例的生成方法。
第五方面,本申请的一些实施例提供一种计算机程序产品,所述的计算机程序产品包括计算机程序,其中,所述的计算机程序被处理器执行时可实现如第一方面任一实施例所述的测试用例的生成方法。
附图说明
为了更清楚地说明本申请的一些实施例的技术方案,下面将对本申请的一些实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本申请实施例提供的一种测试用例的生成方法的流程示意图;
图2为本申请实施例提供的训练数据的结果示意图;
图3为本申请实施例提供的又一种测试用例的生成方法的流程示意图;
图4为本申请实施例提供的一种测试用例的生成装置的结构示意图;
图5为本申请实施例提供的一种电子设备示意图。
具体实施方式
下面将结合本申请的一些实施例中的附图,对本申请的一些实施例中的技术方案进行描述。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。同时,在本申请的描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
随着生产技术的不断发展,在工厂的生产过程中需要对各个工序进行生产测试,工厂生产制造产品,一般产品很多,对应的测试用例也很多,对每一个产品进行测试,则需要人工编写测试用例,需要消耗大量的时间和精力,而且一个人也无法编写全部的测试用例,传统的生产测试方法缺乏自动化,需要手动执行测试,鉴于此,本申请的一些实施例提供了一种测试用例的生成方法,该方法包括获取目标生产测试需求信息;根据目标生产测试需求信息和预先训练好的测试用例生成模型,确定与目标生产测试需求信息的目标测试用例,其中,预先训练好的测试用例生成模型是采用样本数据对语言模型进行训练得到的,样本数据包括生产测试需求信息、测试用例和生产测试需求信息和测试用例的对应关系,在本申请实施例中,采用大量的样本数据对语言模型进行训练,且样本数据包括生产测试需求信息和测试用例的对应关系,得到测试用例生成模型,在具体的实施测试过程中,只需要获取目标生产测试需求信息,则可以根据目标生产测试需求信息和测试用例生成模型,生成与目标生产测试需求信息对应的目标测试用例,这样,不需要工作人员对每个产品手工编写测试用例,只需要输入需求信息,就可以得到测试用例,提高测试用例编写效率,同时提高测试用例的测试效率。
如图1所示,本申请的实施例提供了一种测试用例的生成方法,该方法包括:
S101、获取目标生产测试需求信息;
具体地,用户可以在终端设备上输入目标生产测试需求信息,该目标生产测试需求信息至少包括对网络状态测试,对固件版本测试或对DUT进行有线流量的测试,要求测试的流量在50%的带宽压力下不丢包,在本申请实施例可以根据需求进行输入,终端设备获取用户输入的目标生产测试需求信息。
S102、根据目标生产测试需求信息和预先训练好的测试用例生成模型,确定与目标生产测试需求信息的目标测试用例,其中,预先训练好的测试用例生成模型是采用样本数据对语言模型进行训练得到的,样本数据包括生产测试需求信息、测试用例和生产测试需求信息和测试用例的对应关系。
具体地,终端设备上预先获取大量样本数据,该样本数据包括生产测试需求信息、测试用例和生产测试需求信息和测试用例的对应关系,语言模型为基于GPT2的开源模型,采用样本数据对语言模型进行分级训练,得到测试用例生成模型。
在具体测试过程中,终端设备获取目标生产测试需求信息,将该目标测试需求信息输入预先训练好的测试用例生成模型中,得到与目标生产测试需求信息对应的目标测试用例。本申请实施例通过对LLM(大型语言模型)进行训练,从而可以自动生成测试用例,提高测试效率,帮助测试用例编写人员应用AI经验编写测试用例。
本申请的一些实施例通过采用大量的样本数据对语言模型进行训练,且样本数据包括生产测试需求信息和测试用例的对应关系,得到测试用例生成模型,在具体的实施测试过程中,只需要获取目标生产测试需求信息,则可以根据目标生产测试需求信息和测试用例生成模型,生成与目标生产测试需求信息对应的目标测试用例,这样,不需要工作人员对每个产品手工编写测试用例,只需要输入需求信息,就可以得到测试用例,提高测试用例编写效率,同时提高测试用例的测试效率。
本申请又一实施例对上述实施例提供的测试用例的生成方法做进一步补充说明。
可选地,测试用例生成模型通过如下方式训练得到:
获取生产测试需求信息、测试用例,以及生产测试需求信息和测试用例的对应关系;
分别对生产测试需求信息和测试用例进行预处理,得到处理后的生产测试需求信息和处理后的测试用例;
根据处理后的生产测试需求信息和处理后的测试用例,确定词向量训练样本数据;
根据词向量样本数据对语言模型进行训练,得到测试用例生成模型。
具体地,本申请实施例中在对基于生成式AI中大型语言模型(LLM)进行训练时,包括如下步骤:首先定义一个工业生产测试编程语言,该自定义语言包括生产测试的测试用例命令集合,这些命令对于生产测试逻辑上应该是闭包。后面是这个生产测试语言的基本定义,该定义包括但不限于test_process、do_test、loop_test、if_logic、assignment等测试结构逻辑结构和程序逻辑,工厂根据自己的生产业务的不同可以情况进行修改。使用这个编程语言能够完成产品测试所需要的全部逻辑功能,具体为:
1)test_process:负责一个有效的测试过程,该测试过程确保测试前的环境准备和测试后的资源回收。一个完整的测试是有很多个这种过程组成,例如一个路由器的测试包括:有线网络流量process、wifi测试process、信息核对process等。test_process后面是process的主体。每一个process必须是以begin_process开始,end_process结束。begin_process后面紧接着的是这个process的名称。
例如:
begin_process wifitest
……
end_process
2)do_test:负责完成测试的具体工作,例如wifi接入测试、wifi功率测试、wifi丢包测试等,一个wifi测试process是由这样的多个wifi测试的do_test组成,do_test后面带有一些参数,这些参数是测试的时候需要的一些值,例如:
wifi连接的测试如下:
do_testwifi_connect ssid=WIFISSID pw=12345678
3)loop_test:负责一个循环测试的逻辑,是一个loop的循环测试逻辑,可以理解成编程代码中的循环,满足某个条件后循环退出。Loop_test是以loop开始,end_loop结束。break命令表示中断循环。
例如:loop
……
If condition
break
end_if
end_loop
4)test_if:负责一个条件判断的测试的逻辑,等同于代码编程中的if语句。If 后面跟着的是条件,条件为真的时候执行后面的内容。
例如
Ifcondition
……
else
……
end_if
5)test_assignment:测试用例编程的赋值语句。
例如:设置测试状态为成功
settest_state=success
示例性地,本申请实施例提供一个完整的测试用例:
// 路由器有线网络流量测试过程
begin_process ethernet_traffic_test
// 开始有线网络带宽测试
do_test ethernet_bandwidth_test port=LAN1 speed=100Mbps
// 开始有线网络丢包测试
do_test ethernet_packetLoss_test port=LAN1 threshold=0.01%
// 检查测试结果,如果带宽小于80Mbps或丢包率高于1%,则设置测试状态为失败
if ethernet_bandwidth<80Mbps or ethernet_packetLoss>1%
set test_state=failure
else
set test_state=success
end_if
end_process
// 路由器WiFi测试过程
begin_process wifitest
// 开始WiFi连接测试
do_test wifi_connect ssid=WIFISSID pw=12345678
// 循环测试WiFi连接稳定性,测试5次
loop_test count=5
do_test wifi_stability_test ssid=WIFISSID
// 如果在任何时候连接丢失,则中断测试
if wifi_status = disconnected
break
end_if
end_loop
// WiFi功率测试
do_test wifi_power_test frequency=2.4GHz
// WiFi丢包测试
do_test wifi_packetLoss_test threshold=0.05%
// 根据丢包率设置测试状态
if wifi_packetLoss>5%
set test_state=failure
else
set test_state=success
end_if
end_process
// 路由器信息核对测试过程
begin_process info_verification
// 核对设备信息
do_test verify_device_info model=AC1900
// 检查固件版本
do_test verify_firmware_version version=1.2.3
// 如果设备信息或固件版本不匹配,设置测试状态为失败
if device_info = mismatched or firmware_version = mismatched
set test_state=failure
else
set test_state=success
end_if
end_process
本申请实施例在训练模型之前,需要构建测试需求到测试用例的训练数据集。整理工厂的全部产品的生产测试文档和文档对应的测试用例,建立需求到测试用例的对应关系,其中需求为普通的中文格式,测试用例采用上面的测试命令进行描述。同时生成一些关键的测试命令的训练数据集,即需求语句和测试用例命令的对应关系。同一家工厂,测试用例的格式应该都是一样的。对上面的信息进行标注整理,标注生产需求文档中的内容和结构化测试用例文本之间的对应关系。例如:
需求1:确保路由器的所有以太网端口均可正常连接。
测试用例1:
begin_process ethernet_ports_test
// 测试端口1的连接性
do_test port_connect port=1 type=ethernet
// 测试端口2的连接性
do_test port_connect port=2 type=ethernet
// ... (根据实际端口数量进行测试)
// 如果所有端口都连接成功,则测试成功
if port1 == success and port2 == success // ... and so on
set test_result=success
else
set test_result=failure
end_if
end_process
需求2:路由器的WiFi应该支持WPA3加密。
测试用例2:
begin_process wifi_encryption_test
// 尝试连接到使用WPA3的WiFi
do_test wifi_connect ssid="WPA3_SSID" pw="Test_Password" encryption=WPA3
// 如果成功连接,则测试成功
if connection_status == success
set test_result=success
else
set test_result=failure
end_if
end_process
需求3:确保路由器的USB端口可以读取FAT32格式的U盘。
测试用例3:
begin_process usb_fat32_test
// 插入一个FAT32格式的U盘
do_test insert_usb type=FAT32
// 尝试从U盘读取数据
do_test read_usb_data type=FAT32
// 如果成功读取数据,则测试成功
if data_read_status == success
set test_result=success
else
set test_result=failure
end_if
end_process
需求4:当路由器过热时(例如超过70°C),应该自动关机。
测试用例4:
begin_process overheat_protection_test
// 制造高温环境,模拟过热
do_test simulate_high_temperature temperature=75°C
// 检查路由器的状态
do_test check_router_status
// 如果路由器状态为关闭,则测试成功
if router_status == off
set test_result=success
else
set test_result=failure
end_if
end_process
图2是一个telnet通信协议(工具)到测试设备上进行操作的do_test的训练数据,对应的是do_test命令的训练集合。每一种训练数据需要100条。do_test是命令,后面是参数。
本申请实施例中终端设备度采集的样本数据进行预处理,即欠采样数据处理,实际的数据中,需求语料中的英文、阿拉伯数字往往是比较重要的数据,在实际生成测试用例逻辑的时候应该重点关注英文、阿拉伯数字。
示例性地,需求信息中经常描述wifi的功率应该大于-10dbm,这个需求信息中的wifi、功率、-10dbm是非常关键的信息,必须体现在测试用例中。需要对这种asc码的字符串进行加强处理。
为了在抽样语料时给目标词一个更高的采样权重,从而提升其在最终语料中的词频,可以采用以下方法:
A、数字的多样性增强,将有数字的需求复制多份,改变需求和测试用例中对应数字的值
B、手动增强: 将对应词频小的数据复制多分,并用一些同义词进行替换,保证差异性。
C、对于有一些出现频率较高的词,用同义词替换一部分,降低其出现的频率。常用可以参考的同义词如下:
测试 ->检测、检验、考核;
生产->制造、加工、组装;
工厂->厂房、车间、作坊;
设备->机器、装置、仪器;
流程->工序、程序、步骤;
测试用例->用例、样例、案例;
循环->重复、迭代、循环;
判断->评判、鉴定、确定;
分配->指派、布置、安排;
执行->实施、实现、运行;
终端设备在得到处理后数据后,可以对处理后数据进行标记,确保有一个高质量、大规模的需求测试用例语料库,并考虑为需求和测试用例添加区分标记,例如,每个需求句子前加<测试需求>,测试用例代码前加<生产测试用例>。这有助于模型理解应该输出哪种内容。
示例性地,<测试需求>确保路由器的USB端口可以读取FAT32格式的U盘。
<生产测试用例>begin_process usb_fat32_test
// 插入一个FAT32格式的U盘
do_test insert_usb type=FAT32
// 尝试从U盘读取数据
do_test read_usb_data type=FAT32
// 如果成功读取数据,则测试成功
if data_read_status == success
set test_result=success
else
set test_result=failure
end_if
end_process
本申请的一些实施例通过从大量的样本数据中学习,并且可以生成包含多种情境和场景的词向量训练样本数据,对语言模型进行训练,从而提高测试的全面性和可靠性。
可选地,根据处理后的生产测试需求信息和处理后的测试用例,确定词向量训练样本数据,包括:
步骤A1、分别对处理后的生产测试需求信息和处理后的测试用例进行分词处理,得到需求分词结果和测试用例分词结果;
具体地,终端设备对处理后的生产测试需求信息和处理后的测试用例进行分词处理,尤其是对专业名词的分词处理。
收集该行业的专业词汇,确保这些词汇作为一个整体进行分割,而不是被错误切分。
示例性地,对“路由器的WiFi功能需要进行连接测试、速率测试和丢包测试。如果测速结果超过100Mbps,还需要执行高级的WiFi稳定性测试。并记录最终WiFi连接状态。”进行分词处理,得到的处理结果如下所示:
路由器/的/WiFi/功能/需要/进行/连接测试/、/速率测试/和/丢包测试/。/如果/测速/结果/超过/100Mbps/、/还/需要/执行/高级的/WiFi稳定性/测试/。/并/记录/最终/WiFi/连接/状态/。
分词过程为:
将专业词汇如“WiFi”、“Mbps”等作为一个整体进行分割。
对关键词如“连接测试”、“速率测试”、“丢包测试”等进行保留,不作切分。
将应该组合在一起的词组如“高级的”、“WiFi稳定性”等分割在一起。
保留专有名词缩写“WiFi”。
尽量不对句子结构关键词如“需要”、“如果”、“并”等功能词进行拆分。
这样可以尽可能保留专业领域文本的关键词汇信息,为后续的大模型训练提供合适的输入表示。分词质量直接影响模型的训练效果。
示例性地,本申请实施例中提供一实施例具体介绍如何进行分词:
步骤1:数据预处理与分词
需求:“路由器的WiFi功能需要进行连接测试、速率测试和丢包测试。如果测速结果超过100Mbps,还需要执行高级的WiFi稳定性测试。并记录最终WiFi连接状态。”
测试用例:
begin_process
loop_test
do_test wifi_connect ssid=myssid pw=mypassword
do_test wifi_speedtest
do_test wifi_packetLoss
end_loop
if
check_result wifi_speed>100Mbps
do_test wifi_advanced_testcase
end_if
test_assignment wifi_status = get_wifi_status()
end_process
需求分词:[路由器, WiFi, 功能, 进行, 连接测试, 速率测试, 丢包测试, 测速, 结果, 超过, 100Mbps, 高级, WiFi, 稳定性测试, 记录, 最终, WiFi, 连接状态]
测试用例分词:[begin_process, loop_test, do_test, wifi_connect, ssid,myssid, pw, mypassword, do_test, wifi_speedtest, do_test, wifi_packetLoss,end_loop, if, check_result, wifi_speed, 100Mbps, do_test, wifi_advanced_testcase, end_if, test_assignment, wifi_status, get_wifi_status, end_process];
步骤A2、为生产测试需求信息创建需求信息向量空间,且为测试用例创建测试用例向量空间;
步骤A3、根据需求分词结果和需求信息向量空间,确定需求信息词向量集合;
步骤A4、根据测试用例分词结果和测试用例向量空间,确定测试用例词向量集合;
具体地,终端设备在得到需求分词结果和测试用例分词结果后,生成测试的词向量的训练,首先要自己训练词向量,词向量可以采用Word2Vec或FastText进行训练,其中,Word2Vec用于对文本进行训练,转换成向量,FastText用于将字母进行训练,转换成向量。
将生产测试需求信息和测试用例采用各自的分词,然后进行合并。例如分别创建分词并建立向量空间后,需求空间的向量是100维度,测试用例空间的向量维度是150维,合并后就是250维的向量空间。合并的向量空间中对于测试用例中的分词向量,其测试用例向量空间的需求空间向量的100个维度值是0。反之测试用例向量空间中的分词向量,其测试用例空间向量的150个维度值是0,只有测试用例向量空间和需求信息向量空间2边共有的分词对应的250维度都有值。
具体的,使用Word2Vec训练需求嵌入:
例如,"速率测试" → `[0.2, 0.5]` (实际应用中向量维度会更高)其中,0.2和0.5表示每一个分词在向量空间中的位置标识;
使用FastText训练测试用例嵌入:
例如,"wifi_speedtest" → `[0.7, 0.9]`
步骤A5、根据需求信息词向量集合和测试用例词向量集合,确定词向量训练样本数据,其中,词向量训练样本数据至少包括需求分词结果、与需求分词结果对应的第一向量空间标识、测试用例分词结果和与测试用例分词结果对应的第二向量空间标识。
示例性地,假设Word2Vec嵌入是2维,FastText嵌入也是2维,那么可以通过串联两者来合并嵌入。
"速率测试"(只在需求中出现): `[0.2, 0.5, 0, 0]`
"wifi_speedtest"(只在测试用例中出现): `[0, 0, 0.7, 0.9]`
在实际应用中,根据具体任务和数据集,可能需要调整和优化这个流程。因此在合并后的向量空间中每一个维度都有值的词是需求信息词向量集合和测试用例词向量集合两边都有的分词,这种分词定义为关键分词,需求信息向量空间中的分词在合并后得向量空间中z维的值都是0,反之测试用例向量空间中的分词的r维都是0。
本申请的一些实施例,通过对生产测试需求信息和测试用例进行分词处理,然后创建对应的向量空间,并将生产测试需求信息映射到生产测试需求信息对应的向量空间,并将测试用例映射到测试用例对应的向量空间,然后将两个向量空间的向量进行合并,生成词向量训练样本数据,提高模型训练的准确性。
可选地,该方法还包括:
采用Word2Vec模型对词向量训练样本数据进行重新训练,得到训练后的样本数据。
具体地,本申请实施例中对合并后的分词向量空间中的数据即词向量训练样本数据进行重新训练,将需求信息词向量集合和测试用例词向量集合的语料进行合并,然后以上面这个合并后的分词向量空间为初始值,再计算一次Word2Vec,得到新的统一的分词向量空间,经过新的训练迭代,得到空间更统一、语义关系更连贯的词向量集合。
本申请实施例中通过对合并后的词向量训练样本数据进行二次Word2Vec转换,通过先前的知识(即两个单独的词向量空间)来提高新任务的学习效率;当从两个预训练的词向量模型合并得到一个统一的词向量空间,这实际上为模型提供了一个冷启动。即使在新的、合并后的语料库中,有些词的使用上下文发生了变化,这个初始化仍然为这些词提供了一个合理的初始向量表示;使用预训练的词向量作为初始化通常可以加快模型的训练速度,因为模型不需要从头开始学习词的表示,而是在合理的初始表示基础上进行微调,提高训练效率;尤其是当数据较少时,使用预训练的词向量空间可以提高模型的性能,因为这些向量已经在大量数据上进行了训练;实际上是在整合两个不同的知识来源——两个词向量模型各自捕获到的语义信息。这种整合可能有助于捕获两个语料库中的语言共性。
本申请的一些实施例,通过将两个向量空间的向量进行合并,在整合两个不同的知识来源,即两个词向量空间内各自捕获到的语义信息,这种整合可能有助于捕获两个语料库中的语言共性,使用预训练的词向量作为初始化通常可以加快模型的训练速度。
可选地,该方法还包括:
对训练后的样本数据中的每一个分词进行判断;
若分词存在需求信息词向量集合和测试用例词向量集合中,则将分词确定为关键词;
获取训练后的样本数据中的多个关键词,并将多个关键词确定为关键词集合。
具体地,终端设备根据训练后的样本数据和预设判断规则,可以得知哪些词是关键词,预设判断规则至少包括数字或英文字符串等,需要把这些关键词组成关键词集合,这些词的特点是在需求信息词向量集合和测试用例词向量集合同时出现,在构建关键词集合后,该关键词集合可以与模型训练过程中的微调,并反馈给Loss计算。。
本申请的一些实施例,通过对训练后的样本数据中每一个分词进行判断,若该分词不仅存在需求信息词向量集合,还存在测试用例词向量集合中,则将该分词确定为关键词,将判断出的所有关键词确定为关键词集合,提高模型训练的准确性,且提高模型训练的效率。
可选地,该方法还包括:
根据生产测试需求信息的预设测试难度级别划分规则,对训练后的样本数据进行级别划分,得到划分后的不同级别的训练数据。
具体地,终端设备根据生产测试需求信息的预设测试难度级别划分规则,对训练后的样本数据进行级别划分,得到划分后的不同级别的训练数据,示例性地,难度级别一般分为3级:
第一级:测试用例中的关键命令的数据例如do_test的训练数据。
第二级:测试用例中的测试过程的数据例如“对DUT进行有线流量的测试,要求测试的流量在50%的带宽压力下不丢包”。
第三级:最终的完成测试需求和完整的测试用例数据。数据分级的目的是在后面训练的时候采用分步训练提高效率,并且在不同的级别上的训练参数也可以调整。
本申请的一些实施例通过根据生产测试需求信息的预设测试难度级别划分规则对生产测试需求信息进行级别划分,这样,可以对训练参数进行调整,同时在后续的训练的过程中,可以采用分步对语言模型进行训练,提高模型训练的效率。
可选地,根据词向量样本数据对语言模型进行训练,得到测试用例生成模型,包括:
获取不同级别的关键词数据以及与关键词数据对应的初始权重矩阵;
根据预先设置的权重修正矩阵,对初始权重矩阵进行修正,得到修正后的权重矩阵;
根据修正后的权重矩阵,确定与修正后的权重矩阵中的关键词注意力;
具体地,终端设备使用内容偏差注意力机制修改transformer中的多头注意力,根据关键字集合构建工业测试生产的多头注意力:
为关键词集合创建一个权重矩阵。例如,‘power’、“wifi”、‘功率’等这词分别分配权重为5。
假设它们在向量空间中的索引分别是 idx1 、idx2和indx3。
weights = torch.ones(vocab_size)
weights[idx1] = 5
weights[idx2] = 5
weights[idx3] = 5
在计算注意力分数之前,使用上面的权重矩阵来增强对关键词的注意;
def custom_attention(Q, K, V, weights):
# 原始的注意力分数计算
scores = torch.matmul(Q, K.transpose(-2, -1))
# 使用权重矩阵增强关键词的注意
scores += weights
# 归一化注意力分数
attention_weights = F.softmax(scores, dim=-1)
# 计算输出
output = torch.matmul(attention_weights, V)
return output, attention_weights
from transformers.models.gpt2.modeling_gpt2 import GPT2Attention
修改GPT2中的注意力机制,代码如下:
class GPT2CustomAttention(GPT2Attention):
def forward(
self,
hidden_states,
# ... 其他参数
):
# ... 其他的预处理代码
# 使用自定义的注意力机制
attn_output, attention_weights = uniform_attention(Q, K, V)
# ... 其他后处理代码
return attn_output, attention_weights
上述代码只是一种可能的实现方式,具体实现细节和使用的技巧可能会根据任务和需求有所不同。
根据修正后的权重矩阵中的关键词注意力对语言模型中的注意力机制进行调整,得到调整后的注意力机制;
根据不同级别的训练数据和调整后的注意力机制对语言模型进行训练,得到测试用例生成模型。
具体地,终端设备在进行模型训练的过程中,选择关键词集合中的90%的数据对基于Transformer的开源GPT2进行分级训练。GPT-2 的训练方法是基于无监督学习的方式,在训练过程中,GPT2模型会根据输入的文本序列来预测下一个单词。具体来说,GPT2模型会根据前面的单词来预测下一个单词的概率分布。训练过程中,GPT2模型会不断地调整自己的参数,以提高预测的准确性。GPT2模型需要输入分词向量空间中的向量,对GPT2的训练采用3级训练方法,分别基于不同的数据集进行训练。
第一级:在数据集难度为1的数据基础上训练模型;
第二级:以1级训练的结果在数据集难度为2的数据基础上训练模型;
第三级:以2级训练的结果在数据集难度为3的数据基础上训练模型;
终端设备在模型训练完成后,采用关键词集合中的10%的数据对训练好的模型进行微调,微调的目的是让模型更好地适应特定的任务。具体来说,微调包括在特定的任务上进行有监督学习,以调整模型的参数。
微调的时候对GPT-2中现有的Loss函数进行处理,根据前面的构建关键词集合,对Loss函数进行修改。
Loss的矫正方法如下,下面是GPT2微调中的Loss相关的一部分代码,其中delta的引入来优化Loss:
inputs = tokenizer(batch['text'], return_tensors='pt', padding=1,truncation=1)
outputs = model(inputs)
Loss = outputs.Loss delta// delta为自定义修改值,当关键词集合中的分词在input和output中没有同时成对出现,那么delta=1.3,将Loss扩大,如果同时出现,那么delta = 1;
Loss.backward()
optimizer.step()
optimizer.zero_grad()
对上面训练好的模型进行评估测试,根据测试结果,评估测试用例的质量,并根据需要对模型微调的参数和数据集进行优化。
图3为本申请实施例提供的又一种测试用例的生成方法的流程示意图,该测试用例的生成方法包括:
S201、定义工业生产测试编程语言;
S202、构建测试需求到测试用例的样本数据;
S203、对样本数据进行欠采样数据处理,得到处理后的生产测试需求信息和处理后的测试用例,其中,欠采样数据至少包括:数字的多样性增强、手动增强或高频词同义词替换。
S204、对处理后的生产测试需求信息和处理后的测试用例进行数据标记,具体为,在处理后的生产测试需求信息和处理后的测试用例的前面增加预设前缀标记;
S205、分别对所述处理后的生产测试需求信息和所述处理后的测试用例进行分词处理,得到需求分词结果和测试用例分词结果;
S206、将需求分词结果和测试用例分词结果分别映射到对应的向量空间,并进行合并,得到词向量训练样本数据;
S207、重新训练合并后的词向量训练样本数据即词向量空间,得到训练后的样本数据;
S208、根据训练后的样本数据构建关键词集合;
S209、根据需求信息的难度级别,对关键词几何进行排序和划分,得到划分后的不同级别的关键词数据;
具体为,根据所述生产测试需求信息的预设测试难度级别划分规则,对所述训练后的样本数据进行级别划分,得到划分后的不同级别的训练数据。
S210、修改Transformer多头注意力,得到修正后的权重矩阵中的关键词注意力;
S211、根据所述不同级别的训练数据和所述调整后的注意力机制对所述语言模型进行训练,得到测试用例生成模型。
具体地,语言模型为基于GPT2的开源模型,在对该语言模型进行训练时,根据不同级别的关键词数据对语言模型进行分级训练,包括第一级训练、第二级训练和第三级训练。
S212、通过修改Loss函数,对生成的测试用例生成模型进行微调;
S213、对生成的测试用例模型进行评估测试;
S214、搭建软件系统,进行工厂实际测试。
具体为终端设备获取目标生产测试需求信息;根据目标生产测试需求信息和预先训练好的测试用例生成模型,确定与目标生产测试需求信息的目标测试用例,其中,预先训练好的测试用例生成模型是采用样本数据对语言模型进行训练得到的,样本数据包括生产测试需求信息、测试用例和生产测试需求信息和测试用例的对应关系。
本申请实施例中基于LLM的产线生产测试用例自动生成方法的优点包括:构建了适合工业生产测试的测试用例语言,通过统一的结构描述了生产测试流程;LLM可以从大量的文本数据中学习,并且可以生成包含多种情境和场景的测试集,生成测试集更加全面,从而提高测试的全面性和可靠性;LLM可以生成更加真实的测试数据,这样可以更好地模拟实际使用场景,进而提高测试的准确性和可信度;通过构建关键词集合,方便优化模型的训练,引入关键词集合对GPT2的训练进行优化,优化了注意力机制;采用分级数据对LLM模型进行训练,优化了微调模型的Loss值,使得最终的模型生成的测试用例更准确,LLM模型可以根据需要自动添加新的测试数据,并且可以根据用户需求进行自动更新,可扩展性更好,因此可以更好地满足不同的测试需求,在模型训练完后,基于LLM的自动测试方法可以自动生成测试数据,从而节省测试工作量,基于LLM的自动测试方法无需测试专家的协助,可以自动完成测试数据生成,提高测试效率和准确性。
本申请的一些实施例通过使用内容偏差注意力机制修改语言模型的transformer中的多头注意力,根据关键字集合构建工业测试生产的多头注意力,语言模型会根据前面的单词来预测下一个单词的概率分布,训练过程中,语言模型会不断地调整自己的参数,以提高预测的准确性。
需要说明的是,本实施例中各可实施的方式可以单独实施,也可以在不冲突的情况下以任意组合方式结合实施本申请不做限定。
本申请另一实施例提供一种测试用例的生成装置,用于执行上述实施例提供的测试用例的生成方法。
如图4所示,为本申请实施例提供的测试用例的生成装置的结构示意图。该测试用例的生成装置包括获取模块301和生成模块302,其中:
获取模块301用于获取目标生产测试需求信息;
生成模块302用于根据目标生产测试需求信息和预先训练好的测试用例生成模型,确定与目标生产测试需求信息的目标测试用例,其中,预先训练好的测试用例生成模型是采用样本数据对语言模型进行训练得到的,样本数据包括生产测试需求信息、测试用例和生产测试需求信息和测试用例的对应关系。
关于本实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
本申请的一些实施例通过采用大量的样本数据对语言模型进行训练,且样本数据包括生产测试需求信息和测试用例的对应关系,得到测试用例生成模型,在具体的实施测试过程中,只需要获取目标生产测试需求信息,则可以根据目标生产测试需求信息和测试用例生成模型,生成与目标生产测试需求信息对应的目标测试用例,这样,不需要工作人员对每个产品手工编写测试用例,只需要输入需求信息,就可以得到测试用例,提高测试用例编写效率,同时提高测试用例的测试效率。
本申请又一实施例对上述实施例提供的测试用例的生成装置做进一步补充说明。
可选地,该装置还包括模型训练模块,模型训练模块用于:
获取生产测试需求信息、测试用例,以及生产测试需求信息和测试用例的对应关系;
分别对生产测试需求信息和测试用例进行预处理,得到处理后的生产测试需求信息和处理后的测试用例;
根据处理后的生产测试需求信息和处理后的测试用例,确定词向量训练样本数据;
根据词向量样本数据对语言模型进行训练,得到测试用例生成模型。
本申请的一些实施例通过从大量的样本数据中学习,并且可以生成包含多种情境和场景的词向量训练样本数据,对语言模型进行训练,从而提高测试的全面性和可靠性。
可选地,模型训练模块用于:
分别对处理后的生产测试需求信息和处理后的测试用例进行分词处理,得到需求分词结果和测试用例分词结果;
为生产测试需求信息创建需求信息向量空间,且为测试用例创建测试用例向量空间;
根据需求分词结果和需求信息向量空间,确定需求信息词向量集合;
根据测试用例分词结果和测试用例向量空间,确定测试用例词向量集合;
根据需求信息词向量集合和测试用例词向量集合,确定词向量训练样本数据,其中,词向量训练样本数据至少包括需求分词结果、与需求分词结果对应的第一向量空间标识、测试用例分词结果和与测试用例分词结果对应的第二向量空间标识。
本申请的一些实施例,通过对生产测试需求信息和测试用例进行分词处理,然后创建对应的向量空间,并将生产测试需求信息映射到生产测试需求信息对应的向量空间,并将测试用例映射到测试用例对应的向量空间,然后将两个向量空间的向量进行合并,生成词向量训练样本数据,提高模型训练的准确性。
可选地,模型训练模块用于:
采用Word2Vec模型对词向量训练样本数据进行重新训练,得到训练后的样本数据。
本申请的一些实施例,通过将两个向量空间的向量进行合并,在整合两个不同的知识来源,即两个词向量空间内各自捕获到的语义信息,这种整合可能有助于捕获两个语料库中的语言共性,使用预训练的词向量作为初始化通常可以加快模型的训练速度。
可选地,模型训练模块用于:
对训练后的样本数据中的每一个分词进行判断;
若分词存在需求信息词向量集合和测试用例词向量集合中,则将分词确定为关键词;
获取训练后的样本数据中的多个关键词,并将多个关键词确定为关键词集合。
本申请的一些实施例,通过对训练后的样本数据中每一个分词进行判断,若该分词不仅存在需求信息词向量集合,还存在测试用例词向量集合中,则将该分词确定为关键词,将判断出的所有关键词确定为关键词集合,提高模型训练的准确性,且提高模型训练的效率。
可选地,模型训练模块用于:
根据生产测试需求信息的预设测试难度级别划分规则,对训练后的样本数据进行级别划分,得到划分后的不同级别的训练数据。
本申请的一些实施例通过根据生产测试需求信息的预设测试难度级别划分规则对生产测试需求信息进行级别划分,这样,可以对训练参数进行调整,同时在后续的训练的过程中,可以采用分步对语言模型进行训练,提高模型训练的效率。
可选地,模型训练模块用于:
获取不同级别的关键词数据以及与关键词数据对应的初始权重矩阵;
根据预先设置的权重修正矩阵,对初始权重矩阵进行修正,得到修正后的权重矩阵;
根据修正后的权重矩阵,确定与修正后的权重矩阵中的关键词注意力;
根据修正后的权重矩阵中的关键词注意力对语言模型中的注意力机制进行调整,得到调整后的注意力机制;
根据不同级别的训练数据和调整后的注意力机制对语言模型进行训练,得到测试用例生成模型。
本申请的一些实施例通过使用内容偏差注意力机制修改语言模型的transformer中的多头注意力,根据关键字集合构建工业测试生产的多头注意力,语言模型会根据前面的单词来预测下一个单词的概率分布,训练过程中,语言模型会不断地调整自己的参数,以提高预测的准确性。
关于本实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
需要说明的是,本实施例中各可实施的方式可以单独实施,也可以在不冲突的情况下以任意组合方式结合实施本申请不做限定。
本申请实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,程序被处理器执行时可实现如上述实施例提供的测试用例的生成方法中的任意实施例所对应方法的操作。
本申请实施例还提供了一种计算机程序产品,的计算机程序产品包括计算机程序,其中,的计算机程序被处理器执行时可实现如上述实施例提供的测试用例的生成方法中的任意实施例所对应方法的操作。
如图5所示,本申请的一些实施例提供一种电子设备400,该电子设备400包括:存储器410、处理器420以及存储在存储器410上并可在处理器420上运行的计算机程序,其中,处理器420通过总线430从存储器410读取程序并执行程序时可实现如上述测试用例的生成方法包括的任意实施例的方法。
处理器420可以处理数字信号,可以包括各种计算结构。例如复杂指令集计算机结构、结构精简指令集计算机结构或者一种实行多种指令集组合的结构。在一些示例中,处理器420可以是微处理器。
存储器410可以用于存储由处理器420执行的指令或指令执行过程中相关的数据。这些指令和/或数据可以包括代码,用于实现本申请实施例描述的一个或多个模块的一些功能或者全部功能。本公开实施例的处理器420可以用于执行存储器410中的指令以实现上述所示的方法。存储器410包括动态随机存取存储器、静态随机存取存储器、闪存、光存储器或其它本领域技术人员所熟知的存储器。
以上仅为本申请的实施例而已,并不用于限制本申请的保护范围,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
以上,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
Claims (7)
1.一种测试用例的生成方法,其特征在于,所述方法包括:
获取目标生产测试需求信息;
根据所述目标生产测试需求信息和预先训练好的测试用例生成模型,确定与所述目标生产测试需求信息对应的目标测试用例,其中,所述预先训练好的测试用例生成模型是采用样本数据对语言模型进行训练得到的,所述样本数据包括生产测试需求信息、测试用例以及所述生产测试需求信息和所述测试用例的对应关系;所述样本数据为不同级别的训练数据,所述不同级别的训练数据是根据所述生产测试需求信息的预设测试难度级别划分规则,对所述训练后的样本数据进行级别划分得到的;
其中:所述测试用例生成模型通过如下方式训练得到:
获取生产测试需求信息、测试用例,以及所述生产测试需求信息和所述测试用例的对应关系;
分别对所述生产测试需求信息和所述测试用例进行预处理,得到处理后的生产测试需求信息和处理后的测试用例;
根据所述处理后的生产测试需求信息和处理后的测试用例,确定词向量训练样本数据,并对所述词向量训练样本数据进行训练,获取训练后的词向量训练样本数据中的不同级别的关键词数据;
根据所述词向量训练样本数据对所述语言模型进行训练,得到所述测试用例生成模型;
所述根据所述词向量训练样本数据对所述语言模型进行训练,得到所述测试用例生成模型,包括:
获取不同级别的关键词数据以及与关键词数据对应的初始权重矩阵;
根据预先设置的权重修正矩阵,对所述初始权重矩阵进行修正,得到修正后的权重矩阵;
根据所述修正后的权重矩阵,确定与所述修正后的权重矩阵中的关键词注意力;
根据所述修正后的权重矩阵中的关键词注意力对所述语言模型中的注意力机制进行调整,得到调整后的注意力机制;
根据所述不同级别的训练数据和所述调整后的注意力机制对所述语言模型进行训练,得到所述测试用例生成模型。
2.根据权利要求1所述的测试用例的生成方法,其特征在于,所述根据所述处理后的生产测试需求信息和处理后的测试用例,确定词向量训练样本数据,包括:
分别对所述处理后的生产测试需求信息和所述处理后的测试用例进行分词处理,得到需求分词结果和测试用例分词结果;
为所述生产测试需求信息创建需求信息向量空间,且为所述测试用例创建测试用例向量空间;
根据所述需求分词结果和所述需求信息向量空间,确定需求信息词向量集合;
根据所述测试用例分词结果和所述测试用例向量空间,确定测试用例词向量集合;
根据所述需求信息词向量集合和所述测试用例词向量集合,确定所述词向量训练样本数据,其中,所述词向量训练样本数据至少包括需求分词结果、与所述需求分词结果对应的第一向量空间标识、测试用例分词结果和与所述测试用例分词结果对应的第二向量空间标识。
3.根据权利要求2所述的测试用例的生成方法,其特征在于,所述方法还包括:
采用Word2Vec模型对所述词向量训练样本数据进行重新训练,得到训练后的样本数据。
4.根据权利要求3所述的测试用例的生成方法,其特征在于,所述方法还包括:
对所述训练后的样本数据中的每一个分词进行判断;
若所述分词存在所述需求信息词向量集合和所述测试用例词向量集合中,则将所述分词确定为关键词;
获取所述训练后的样本数据中的多个关键词,并将所述多个关键词确定为关键词集合。
5.一种测试用例的生成装置,其特征在于,所述装置包括:
获取模块,用于获取目标生产测试需求信息;
生成模块,用于根据所述目标生产测试需求信息和预先训练好的测试用例生成模型,确定与所述目标生产测试需求信息对应的目标测试用例,其中,所述预先训练好的测试用例生成模型是采用样本数据对语言模型进行训练得到的,所述样本数据包括生产测试需求信息、测试用例和所述生产测试需求信息和所述测试用例的对应关系;所述样本数据为不同级别的训练数据,所述不同级别的训练数据是根据所述生产测试需求信息的预设测试难度级别划分规则,对所述训练后的样本数据进行级别划分得到的;
其中:所述测试用例生成模型通过如下方式训练得到:
获取生产测试需求信息、测试用例,以及所述生产测试需求信息和所述测试用例的对应关系;
分别对所述生产测试需求信息和所述测试用例进行预处理,得到处理后的生产测试需求信息和处理后的测试用例;
根据所述处理后的生产测试需求信息和处理后的测试用例,确定词向量训练样本数据,并对所述词向量训练样本数据进行训练,获取训练后的词向量训练样本数据中的不同级别的关键词数据;
根据所述词向量训练样本数据对所述语言模型进行训练,得到所述测试用例生成模型;
所述根据所述词向量训练样本数据对所述语言模型进行训练,得到所述测试用例生成模型,包括:
获取不同级别的关键词数据以及与关键词数据对应的初始权重矩阵;
根据预先设置的权重修正矩阵,对所述初始权重矩阵进行修正,得到修正后的权重矩阵;
根据所述修正后的权重矩阵,确定与所述修正后的权重矩阵中的关键词注意力;
根据所述修正后的权重矩阵中的关键词注意力对所述语言模型中的注意力机制进行调整,得到调整后的注意力机制;
根据所述不同级别的训练数据和所述调整后的注意力机制对所述语言模型进行训练,得到所述测试用例生成模型。
6.一种电子设备,其特征在于,包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,其中,所述处理器执行所述程序时可实现权利要求1-4中任意一项权利要求所述的测试用例的生成方法。
7.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,其特征在于,所述程序被处理器执行时可实现权利要求1-4中任意一项权利要求所述的测试用例的生成方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311204562.3A CN116955210B (zh) | 2023-09-19 | 2023-09-19 | 一种测试用例的生成方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311204562.3A CN116955210B (zh) | 2023-09-19 | 2023-09-19 | 一种测试用例的生成方法、装置、电子设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116955210A CN116955210A (zh) | 2023-10-27 |
CN116955210B true CN116955210B (zh) | 2024-01-19 |
Family
ID=88449500
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311204562.3A Active CN116955210B (zh) | 2023-09-19 | 2023-09-19 | 一种测试用例的生成方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116955210B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117806980B (zh) * | 2024-03-01 | 2024-05-28 | 西安中朗智控科技有限公司 | 一种基于大语言模型的测试用例自动生成装置 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105893256A (zh) * | 2016-03-30 | 2016-08-24 | 西北工业大学 | 基于机器学习算法的软件故障定位方法 |
CN110162468A (zh) * | 2019-04-26 | 2019-08-23 | 腾讯科技(深圳)有限公司 | 一种测试方法、装置以及计算机可读存储介质 |
CN113361617A (zh) * | 2021-06-15 | 2021-09-07 | 西南交通大学 | 基于多元注意力修正的方面级情感分析建模方法 |
CN114579430A (zh) * | 2022-01-26 | 2022-06-03 | 中国人民解放军陆军工程大学 | 一种基于预训练语言模型的测试用例推荐系统及方法 |
WO2022237253A1 (zh) * | 2021-05-11 | 2022-11-17 | 华为云计算技术有限公司 | 一种测试用例生成方法、装置及设备 |
CN115617666A (zh) * | 2022-10-21 | 2023-01-17 | 道普信息技术有限公司 | 基于gpt2模型中文测试用例补全方法 |
CN115757124A (zh) * | 2022-11-16 | 2023-03-07 | 天翼云科技有限公司 | 一种基于神经网络的测试用例生成方法 |
CN116737581A (zh) * | 2023-06-21 | 2023-09-12 | 中国工商银行股份有限公司 | 测试文本的生成方法、装置、存储介质及电子设备 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11893363B2 (en) * | 2020-08-27 | 2024-02-06 | Microsoft Technology Licensing, Llc. | Unit test case generation with transformers |
US11544177B2 (en) * | 2020-11-19 | 2023-01-03 | Ebay Inc. | Mapping of test cases to test data for computer software testing |
-
2023
- 2023-09-19 CN CN202311204562.3A patent/CN116955210B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105893256A (zh) * | 2016-03-30 | 2016-08-24 | 西北工业大学 | 基于机器学习算法的软件故障定位方法 |
CN110162468A (zh) * | 2019-04-26 | 2019-08-23 | 腾讯科技(深圳)有限公司 | 一种测试方法、装置以及计算机可读存储介质 |
WO2022237253A1 (zh) * | 2021-05-11 | 2022-11-17 | 华为云计算技术有限公司 | 一种测试用例生成方法、装置及设备 |
CN113361617A (zh) * | 2021-06-15 | 2021-09-07 | 西南交通大学 | 基于多元注意力修正的方面级情感分析建模方法 |
CN114579430A (zh) * | 2022-01-26 | 2022-06-03 | 中国人民解放军陆军工程大学 | 一种基于预训练语言模型的测试用例推荐系统及方法 |
CN115617666A (zh) * | 2022-10-21 | 2023-01-17 | 道普信息技术有限公司 | 基于gpt2模型中文测试用例补全方法 |
CN115757124A (zh) * | 2022-11-16 | 2023-03-07 | 天翼云科技有限公司 | 一种基于神经网络的测试用例生成方法 |
CN116737581A (zh) * | 2023-06-21 | 2023-09-12 | 中国工商银行股份有限公司 | 测试文本的生成方法、装置、存储介质及电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN116955210A (zh) | 2023-10-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110489760B (zh) | 基于深度神经网络文本自动校对方法及装置 | |
CN108363790B (zh) | 用于对评论进行评估的方法、装置、设备和存储介质 | |
CN111611810B (zh) | 一种多音字读音消歧装置及方法 | |
CN112070138B (zh) | 多标签混合分类模型的构建方法、新闻分类方法及系统 | |
CN110276069B (zh) | 一种中国盲文错误自动检测方法、系统及存储介质 | |
CN116955210B (zh) | 一种测试用例的生成方法、装置、电子设备及存储介质 | |
US20230259707A1 (en) | Systems and methods for natural language processing (nlp) model robustness determination | |
CN115328756A (zh) | 一种测试用例生成方法、装置及设备 | |
CN110888798A (zh) | 一种基于图卷积神经网络对软件缺陷预测方法 | |
WO2023045725A1 (zh) | 用于数据集创建的方法、电子设备和计算机程序产品 | |
CN115098634A (zh) | 一种基于语义依存关系融合特征的舆情文本情感分析方法 | |
CN110991193A (zh) | 一种基于OpenKiWi的翻译矩阵模型选择系统 | |
CN112446205A (zh) | 语句判别方法、装置、设备及存储介质 | |
CN116681061A (zh) | 一种基于多任务学习和注意力机制的英文语法纠正技术 | |
CN115906818A (zh) | 语法知识预测方法、装置、电子设备和存储介质 | |
CN111538810B (zh) | 数据生成方法、装置、电子设备及存储介质 | |
CN114528459A (zh) | 一种基于语义的网页信息抽取方法及系统 | |
CN104641367B (zh) | 用于格式化电子字符序列的格式化模块、系统和方法 | |
CN110955433B (zh) | 一种自动化部署脚本的生成方法及装置 | |
CN113378543B (zh) | 数据分析方法、训练数据分析模型的方法及电子设备 | |
CN115879446B (zh) | 文本处理方法、深度学习模型训练方法、装置以及设备 | |
TWI745878B (zh) | 聊天機器人系統及聊天機器人模型訓練方法 | |
Duo et al. | Transition based neural network dependency parsing of Tibetan | |
Chen | Identification of Grammatical Errors of English Language Based on Intelligent Translational Model | |
Chakravarthi et al. | VLSI Design Flow Using Vinyas Design Bot |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |