基于改进的GPT2的RobotFramework框架测试用例自动生成方法及系统技术方案

技术编号:39032993 阅读:23 留言:0更新日期:2023-10-10 11:46
本发明专利技术涉及一种基于改进的GPT2的RobotFramework框架测试用例自动生成方法及系统,对基于RobotFramework框架的Web应用测试用例脚本进行预处理,提取预处理后的测试用例脚本的数据构建训练数据集;构建改进的GPT2模型,使用已有大规模数据集对所述改进的GPT2模型进行预训练;基于训练数据集对得到的预训练的改进的GPT2模型进行微调;设计损失函数并计算损失并更新,得到训练好的改进的GPT2模型;将目标语句输入到部署好的改进的GPT2模型中通过自回归机制自动生成测试用例。本发明专利技术对GPT2模型进行改进,使用数据集训练改进的GPT2模型以在学习和理解脚本内在的测试逻辑的基础上自动生成新的测试用例脚本。础上自动生成新的测试用例脚本。础上自动生成新的测试用例脚本。

【技术实现步骤摘要】
基于改进的GPT2的Robot Framework框架测试用例自动生成方法及系统


[0001]本专利技术涉及一种基于改进的GPT2的Robot Framework框架测试用例自动生成方法及系统,属于软件测试领域。

技术介绍

[0002]软件测试是一种评估计算机程序是否满足特定需求、规格和标准的过程,在软件发布前进行测试能有效的识别程序中的潜在的问题,确保软件的质量,提高用户满意度。自动化测试通过编写和运行测试脚本来模拟人工测试的过程,通过执行测试用例可以减少手动测试的工作量、降低人工成本、提高测试效率和降低错误率,对于持续交付和持续测试至关重要。
[0003]当前主要使用一种名为Robot Framework的通用自动化测试框架进行应用测试,虽然对于重复任务和手动难以完成的测试非常有效,但进行测试仍严重依赖人工,以传统方式进行测试用例编写会占用开发人员大量的时间,尤其在TDD(测试驱动开发)中,难以有效地进行单元测试,因此几乎所有的测试都需要依赖系统级黑盒测试。自动化测试最大的的挑战是需求的变化,当需求发生变化时,程序实现需要相应调整,这也会影响到程序级测试用例。与自动化测试面临的问题相似,单元测试本身的可维护性问题会导致持续的投入而非一次性的工作。这可能会降低企业对单元测试在实际应用中的积极性。例如对于与之前流程类似的测试任务仍需人工重新编写脚本进行测试。随着应用程序的不断迭代,会积累大量的测试用例,且其中许多测试用例会因功能变更而无法继续使用,若无人工对其进行更新则只能被淘汰。

技术实现思路
/>[0004]本专利技术技术解决问题:克服现有技术存在的测试用例脚本严格依赖人工、容易过时等不足,提供一种基于改进的GPT2的Robot Framework框架测试用例自动生成方法及系统,充分利用先前的人工测试用例脚本,通过对现有的大量(百万级以上)Robot Framework脚本进行预处理,从中提炼出有效的测试部分构建数据集,并对GPT2模型进行改进,使用数据集训练改进的GPT2模型以在学习和理解脚本内在的测试逻辑的基础上自动生成新的测试用例脚本,生成的测试用例脚本更加符合人类的测试习惯,能够克服测试用例生成的局限性,有效提高测试效率。
[0005]本专利技术技术解决方案:
[0006]第一方面,本专利技术提供一种基于改进的GPT2的Robot FrameWork框架测试用例自动生成方法,包括以下步骤:
[0007]步骤1:对基于Robot Framework框架的Web应用测试用例脚本进行预处理,提取预处理后的测试用例脚本作为训练数据集中的数据构建训练数据集;
[0008]步骤2:构建改进的GPT2模型,使用已有大规模数据集对所述改进的GPT2模型进行
预训练;
[0009]所述改进的GPT2模型通过替换GPT2模型中的Tokenizer和注意力机制模块实现;
[0010]所述改进的GPT2模型包括:使用BERT的Tokenizer的词向量编码层(使用BERT的Tokenizer替换原GPT2的Tokenizer)、基于Long Transformer改进的注意力机制模块的Transformer Decoder(使用Long Transformer中改进的注意力机制模块替换原Transformer Decoder中的注意力机制模块);
[0011]带有BERT的Tokenizer的词向量编码层,能够更有效的将输入的测试用例脚本转化成词向量序列,使词向量序列包含更多的语义信息;
[0012]基于Long Transformer改进的注意力机制模块的Transformer Decoder,能够提取更长的词向量序列的特征,具有更强的关联上下文能力;
[0013]步骤3:基于步骤1得到的训练数据集对步骤2得到的预训练的改进的GPT2模型进行微调;设计损失函数并计算损失并更新,得到训练好的改进的GPT2模型;
[0014]步骤4:将目标语句输入到部署好的改进的GPT2模型中通过自回归机制自动生成测试用例。
[0015]进一步地,所述步骤1实现过程如下:
[0016](1)从测试用例脚本中读入数据,去除数据中的Settings注释部分内容,提取数据中的函数部分语句,将每个函数视为一个数据单元;
[0017](2)构建用于存储有效语句的暂存区并对每个数据单元进行逐行处理,若数据单元中当前行为有效执行语句,则去除当前行中包含的空格后将该当前行放入暂存区中作为暂存行暂存;若当前行为空行则不进行任何处理;若当前行为函数注释或断言部分,则使用正则匹配方法提取有效部分以替换临近函数语句的xpath信息;
[0018](3)对暂存区中每个暂存行依次进行检测,若暂存行不包含xpath信息则直接保存在结果列表中;若暂存行包含xpath信息且含有行内注释,则使用行内注释对xpath信息进行替换后保存在结果列表中;若不包含行内注释则直接去除xpath信息后保存在结果列表中;
[0019](4)将结果列表中属于相同数据单元的暂存行合并为预处理后的脚本,预处理后的脚本的句间使用分隔符分割,不同段之间使用双引号分隔,将预处理后的脚本保存在一个列表中并保存,即为训练数据集。
[0020]进一步地,所述步骤2中,
[0021]基于Long Transformer改进的注意力机制模块的Transformer Decoder由6个相同结构Decoder Block构成,每个6个相同结构Decoder Block由带掩码的12头改进自注意力机制层、残差连接层和归一化层、12头改进自注意力机制层、残差连接层和归一化层、前馈神经网络、残差连接层和归一化层依此构成;
[0022]12头改进自注意力机制层,用于对词向量编码层输出的词向量序列进行特征提取,通过计算词向量序列中每个词向量与其他词向量的相似度计算词向量的权重,使用权重乘以词向量序列得到提取特征的词向量序列;其中带掩码的12头改进自注意力机制层使用掩码屏蔽后续输入的词向量序列的影响,使在训练和预测时获取的信息一致;
[0023]残差连接用于防止网络退化,残差连接通过加法操作实现,y=H(x,WH)+x其中x为输入的词向量序列,r为残差张量,y为残差连接的输出,H(x,WH)表示通过一个神经网络层
对输入x进行变换,WH表示该层的权重和偏置参数;层归一化通过计算输入的词向量序列的均值和方差对输入的词向量序列进行归一化操作;
[0024]前馈神经网络,用于对输入的词向量序列进行非线性变换和映射,包含一个全连接层和一个ReLU激活函数,以增强模型的表达能力。
[0025]进一步地,所述12头改进自注意力机制层中,通过计算词向量序列中每个词向量与其他词向量的相似度计算词向量的权重,使用权重乘以词向量序列得到提取特征的词向量序列具体实现如下:
[0026]计算每个词向量与其他词向量的相似度计算词向量的权重具体如下:输入的词向量维数为[seq_len,batch_s本文档来自技高网...

【技术保护点】

【技术特征摘要】
1.一种基于改进的GPT2的Robot FrameWork框架测试用例自动生成方法,其特征在于,包括以下步骤:步骤1:对基于Robot Framework框架的Web应用测试用例脚本进行预处理,提取预处理后的测试用例脚本作为训练数据集中的数据构建训练数据集;步骤2:构建改进的GPT2模型,使用已有大规模数据集对所述改进的GPT2模型进行预训练;所述改进的GPT2模型包括:使用BERT的Tokenizer的词向量编码层和基于Long Transformer改进的注意力机制模块的Transformer Decoder;带有BERT的Tokenizer的词向量编码层,能够更有效的将输入的测试用例脚本转化成词向量序列,使词向量序列包含更多的语义信息;基于Long Transformer改进的注意力机制模块的Transformer Decoder,能够提取更长的词向量序列的特征,具有更强的关联上下文能力;步骤3:基于步骤1得到的训练数据集对步骤2得到的预训练的改进的GPT2模型进行微调;设计损失函数并计算损失并更新,得到训练好的改进的GPT2模型;步骤4:将目标语句输入到部署好的改进的GPT2模型中通过自回归机制自动生成测试用例。2.根据权利要求1所述的基于改进的GPT2的Robot FrameWork框架测试用例自动生成方法,其特征在于:所述步骤1实现过程如下:(1)从测试用例脚本中读入数据,去除数据中的Settings注释部分内容,提取数据中的函数部分语句,将每个函数视为一个数据单元;(2)构建用于存储有效语句的暂存区并对每个数据单元进行逐行处理,若数据单元中当前行为有效执行语句,则去除当前行中包含的空格后将该当前行放入暂存区中作为暂存行暂存;若当前行为空行则不进行任何处理;若当前行为函数注释或断言部分,则使用正则匹配方法提取有效部分以替换临近函数语句的xpath信息;(3)对暂存区中每个暂存行依次进行检测,若暂存行不包含xpath信息则直接保存在结果列表中;若暂存行包含xpath信息且含有行内注释,则使用行内注释对xpath信息进行替换后保存在结果列表中;若不包含行内注释则直接去除xpath信息后保存在结果列表中;(4)将结果列表中属于相同数据单元的暂存行合并为预处理后的脚本,预处理后的脚本的句间使用分隔符分割,不同段之间使用双引号分隔,将预处理后的脚本保存在一个列表中并保存,即为训练数据集。3.根据权利要求1所述的基于改进的GPT2的Robot FrameWork框架测试用例自动生成方法,其特征在于:所述步骤2中,基于Long Transformer改进的注意力机制模块的Transformer Decoder由6个相同结构Decoder Block构成,每个6个相同结构Decoder Block由带掩码的12头改进自注意力机制层、残差连接层和归一化层、12头改进自注意力机制层、残差连接层和归一化层、前馈神经网络、残差连接层和归一化层依此构成;12头改进自注意力机制层,用于对词向量编码层输出的词向量序列进行特征提取,通过计算词向量序列中每个词向量与其他词向量的相似度计算词向量的权重,使用权重乘以词向量序列得到提取特征的词向量序列;其中带掩码的12头改进自注意力机制层使用掩码
屏蔽后续输入的词向量序列的影响,使在训练和预测时获取的信息一致;残差连接用于防止网络退化,残差连接通过加法操作实现,y=H(x,WH)+x其中x为输入的词向量序列,r为残差张量,y为残差连接的输出,H(x,WH)表示通过一个神经网络层对输入x进行变换,WH表示该层的权重和偏置参数;层归一化通过计算输入的词向量序列的均值和方差对输入的词向量序列进行归一化操作;前馈神经网络,用于对输入的词向量序列进行非线性变换和映射,包含一个全连接层和一个ReLU激活函数,以增强模型的表达能力。4.根据权利要求3所述的基于改进的GPT2的Robot FrameWork框架测试用例自动生成方法,其特征在于:所述12头改进自注意力机制层中,通过计算词向量序列中每个词向量与其他词向量的相似度计算词向量的权重,使用权重乘以词向量序列得到提取特征的词向量序列具体实现如下:计算每个词向量与其他词向量的相似度计算词向量的权重具体如下:输入的词向量维数为[seq_len,batch_size,embed_dim],其中,seq_len表示序列长度、batch_size表示批次大小,embed_dim表示词向量维数,将词向量维数转置为[batch_size,seq_len,embed_dim],使用一层线性层将词向量投影为查询向量q、键向量k和值向量v,并将查询向量q除以头维度的平方根以进行缩放,以提高相似度计算的准确性;通过对每个查询向量与周围32个键向量进行点积计算局部注意力权重,通过对每个[CLS]表示的词向量与全部的键向量进行点积计算全局注意力权重,将局部注意力权重和全局注意力权重加权计算得到加权的注意力权重,使用加权的注意力权重乘以值向量提取特征的词向量序列。5.根据权利要求1所述的基于改进的GPT2的Robot FrameWork框架测试用例自动生成方法,其特征在于:所述步骤2中,使用已有大规模数据集对模型进行预训...

【专利技术属性】
技术研发人员:梁哲恒曾纪钧崔磊张金波沈佳泉钱正浩裴求根张小陆龙震岳沈伍强周纯温柏坚周昉昉姚潮生李凯顾植誉吴国全
申请(专利权)人:广东电网有限责任公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1