CN115129581A - 单元测试质量的评估方法、装置及电子设备 - Google Patents
单元测试质量的评估方法、装置及电子设备 Download PDFInfo
- Publication number
- CN115129581A CN115129581A CN202210397332.2A CN202210397332A CN115129581A CN 115129581 A CN115129581 A CN 115129581A CN 202210397332 A CN202210397332 A CN 202210397332A CN 115129581 A CN115129581 A CN 115129581A
- Authority
- CN
- China
- Prior art keywords
- unit test
- training
- model
- data set
- language generation
- 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
Links
Images
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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明公开了一种单元测试质量的评估方法、装置及电子设备。其中,该方法包括:获取预先构建的初始自回归模型;基于语料数据集对上述初始自回归模型进行预训练,得到语言生成模型;基于单元测试数据集对上述语言生成模型进行优化训练,得到优化后的语言生成模型;根据上述优化后的语言生成模型,确定得到单元测试质量的评估结果。本发明解决了由于现有技术中的单元测试质量的评估方法不能全面评估单元测试质量,造成的评估效率低且测试效果差的技术问题。
Description
技术领域
本发明涉及金融科技领域,尤其涉及单元测试技术领域,具体涉及一种单元测试质量的评估方法、装置及电子设备。
背景技术
单元测试驱动开发指在开发功能代码之前,先编写单元测试用例代码,通过测试代码确定需要编写的产品代码。可以看出,单元测试的质量决定了产品代码的质量。当前的单元测试案例的质量评估普遍采用通过率和覆盖率等评估指标,然而这些指标并不能全面的评估单元测试的质量,如永真断言、错误断言以及代码编写规范等常见的单元测试问题,并不能反馈到通过率和覆盖率指标上。
不仅如此,单元测试审查时的错误信息仍然需要审查人员手工编写,对于复杂且编写错误的单元测试案例,无疑会极大地增加审查人员的工作量,不利于产品的快速投产,降低工作效率。
针对上述的问题,目前尚未提出有效的解决方案。
发明内容
本发明实施例提供了一种单元测试质量的评估方法、装置及电子设备,以至少解决由于现有技术中的单元测试质量的评估方法不能全面评估单元测试质量,造成的评估效率低且测试效果差的技术问题。
根据本发明实施例的一个方面,提供了一种单元测试质量的评估方法,包括:获取预先构建的初始自回归模型;基于语料数据集对上述初始自回归模型进行预训练,得到语言生成模型;基于单元测试数据集对上述语言生成模型进行优化训练,得到优化后的语言生成模型;根据上述优化后的语言生成模型,确定得到单元测试质量的评估结果。
可选的,基于语料数据集对上述初始自回归模型进行预训练,得到语言生成模型,包括:基于上述语料数据集中的训练集数据,采用无监督训练方式对上述初始自回归模型进行预训练,得到第一自回归模型;采用上述语料数据集中的测试集数据对上述第一自回归模型进行测试,得到第二自回归模型;根据上述语料数据集中的测试集数据,计算得到上述第二自回归模型对应的第一验证指标;判断上述第一验证指标是否达到第一预设阈值;若上述第一验证指标达到上述第一预设阈值,则确定上述第二自回归模型为上述语言生成模型。
可选的,基于单元测试数据集对上述语言生成模型进行优化训练,得到优化后的语言生成模型,包括:基于上述单元测试数据集中的训练集数据,以预设评分和预设审核意见作为训练标签,采用有监督训练方式对上述语言生成模型进行优化训练,得到第三自回归模型;采用上述单元测试数据集中的测试集数据对上述第三自回归模型进行测试,得到第四自回归模型;根据上述单元测试数据集中的测试集数据,计算得到上述第四自回归模型对应的第二验证指标;判断上述第二验证指标是否达到第二预设阈值;若上述第二验证指标达到上述第二预设阈值,则确定上述第四自回归模型为上述优化后的语言生成模型。
可选的,基于单元测试数据集对上述语言生成模型进行优化训练,得到优化后的语言生成模型,包括:执行上述单元测试数据集对应的单元测试用例,采用预先构建的代码运行沙箱对上述单元测试用例进行转换处理,得到运行时字节码;基于上述运行时字节码,对上述语言生成模型进行优化训练,得到上述优化后的语言生成模型。
可选的,获取预先构建的初始自回归模型,包括:基于动态稀疏注意力机制,确定上述初始自回归模型的网络结构;确定上述初始自回归模型的网络层数,并对多个网络层进行特征增强处理,得到多个处理后的网络层,其中,采用聚合连接方式对排在前列的第一数量的上述网络层进行上述特征增强处理,采用半密集连接方式对排在后列的第二数量的上述网络层进行上述特征增强处理,上述第一数量和上述第二数量之和等于上述网络层数;根据上述网络结构和上述多个处理后的网络层,确定得到上述初始自回归模型。
可选的,获取预先构建的初始自回归模型,还包括:预先配置上述初始自回归模型对应的模型训练参数,其中,上述模型训练参数至少包括:预热策略、优化器参数、权重衰减系数、学习率、梯度阶段以及目标函数。
可选的,在基于语料数据集对上述初始自回归模型进行预训练,得到语言生成模型之前,上述方法还包括:对上述语料数据集进行降重处理和关键字一致性处理;以及对上述单元测试数据集中重复的单元测试用例进行剔除处理。
根据本发明实施例的另一方面,还提供了一种单元测试质量的评估装置,包括:获取模块,用于获取预先构建的初始自回归模型;第一训练模块,用于基于语料数据集对上述初始自回归模型进行预训练,得到语言生成模型;第二训练模块,用于基于单元测试数据集对上述语言生成模型进行优化训练,得到优化后的语言生成模型;确定模块,用于根据上述优化后的语言生成模型,确定得到单元测试质量的评估结果。
根据本发明实施例的另一方面,还提供了一种非易失性存储介质,上述非易失性存储介质存储有多条指令,上述指令适于由处理器加载并执行任意一项上述的单元测试质量的评估方法。
根据本发明实施例的另一方面,还提供了一种电子设备,包括存储器和处理器,上述存储器中存储有计算机程序,上述处理器被设置为运行上述计算机程序以执行任意一项上述的单元测试质量的评估方法。
在本发明实施例中,采用单元测试质量的评估方式,通过获取预先构建的初始自回归模型;基于语料数据集对上述初始自回归模型进行预训练,得到语言生成模型;基于单元测试数据集对上述语言生成模型进行优化训练,得到优化后的语言生成模型;根据上述优化后的语言生成模型,确定得到单元测试质量的评估结果,达到了通过自回归模型方式的确定单元测试质量的评估结果目的,从而实现了单元测试质量的评估效率和评估测试效果的技术效果,进而解决了由于现有技术中的单元测试质量的评估方法不能全面评估单元测试质量,造成的评估效率低且测试效果差的技术问题。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是根据本发明实施例的一种单元测试质量的评估方法的流程图;
图2是根据本发明实施例的一种可选的初始回归模型的示意图;
图3是根据本发明实施例的一种单元测试质量的评估装置的结构示意图;
图4是用于实施本发明实施例的一种可选的单元测试质量的评估方法的电子设备示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
实施例1
根据本发明实施例,提供了一种单元测试质量的评估的方法实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
图1是根据本发明实施例的一种单元测试质量的评估方法的流程图,如图1所示,该方法包括如下步骤:
步骤S102,获取预先构建的初始自回归模型;
步骤S104,基于语料数据集对上述初始自回归模型进行预训练,得到语言生成模型;
步骤S106,基于单元测试数据集对上述语言生成模型进行优化训练,得到优化后的语言生成模型;
步骤S108,根据上述优化后的语言生成模型,确定得到单元测试质量的评估结果。
在本发明实施例中,采用单元测试质量的评估方式,通过获取预先构建的初始自回归模型;基于语料数据集对上述初始自回归模型进行预训练,得到语言生成模型;基于单元测试数据集对上述语言生成模型进行优化训练,得到优化后的语言生成模型;根据上述优化后的语言生成模型,确定得到单元测试质量的评估结果,达到了通过自回归模型方式的确定单元测试质量的评估结果目的,从而实现了单元测试质量的评估效率和评估测试效果的技术效果,进而解决了由于现有技术中的单元测试质量的评估方法不能全面评估单元测试质量,造成的评估效率低且测试效果差的技术问题。
需要说明的是,在本发明实施例中,对上述预先构建的初始自回归模型的训练可分为预训练阶段和微调阶段(即上述优化训练阶段),预训练阶段需要训练一个足够通用的语言生成模型,然后在优化训练阶段再针对单元测试代码审查任务进行细致地微调。因此,预训练阶段的数据集(即上述语料数据集)采集应尽可能适用于通用语言生成模型的训练,可以但不限于基于多个开源的语料数据集资源构建得到上述语料数据集。其中,上述多个开源的语料数据集资源可以但不限于包括通用爬网库Common Crawl dataset、网页文本WebText、数据集爬虫BookCorpus、英文版维基百科English-language Wikipedia、北京大学汉语语言学研究中心预料库(CCL,Center for Chinese Linguistics PKU)、近代汉语言语料库Pre-Modern Chinese Language Corpus、兰巴达数据集LAMBADA dataset、网络问题数据集WebQuest ion dataset以及自然语言语料库(XNLI,Cross-Lingual NaturalLanguage Inference)等互联网上公开的语料数据集资源。可以但不限于基于最后一次更新的单元测试规范提取得到的单元测试用例组成上述优化处理阶段的训练数据集(即上述单元测试数据集)。
可选的,基于上述语料数据集中的训练集数据,采用无监督训练方式对上述初始自回归模型进行预训练;采用上述语料数据集中的测试集数据对上述第一自回归模型进行测试,最终得到上述语言生成模型。
可选的,基于上述单元测试数据集中的训练集数据,以预设评分和预设审核意见作为训练标签,采用有监督训练方式对上述语言生成模型进行优化训练;采用上述单元测试数据集中的测试集数据对上述语言生成模型进行测试,最终得到上述优化后的语言生成模型。
在一种可选的实施例中,基于语料数据集对上述初始自回归模型进行预训练,得到语言生成模型,包括:
基于上述语料数据集中的训练集数据,采用无监督训练方式对上述初始自回归模型进行预训练,得到第一自回归模型;
采用上述语料数据集中的测试集数据对上述第一自回归模型进行测试,得到第二自回归模型;
根据上述语料数据集中的测试集数据,计算得到上述第二自回归模型对应的第一验证指标;
判断上述第一验证指标是否达到第一预设阈值;
若上述第一验证指标达到上述第一预设阈值,则确定上述第二自回归模型为上述语言生成模型。
可选的,可以但不限于以通用爬网库Common Crawl dataset、网页文本WebText、数据集爬虫BookCorpus、英文版维基百科English-language Wikipedia、北京大学汉语语言学研究中心预料库(CCL,Center for Chinese Linguistics PKU)和近代汉语言语料库Pre-Modern Chinese Language Corpus组成的第一联合数据集作为上述语料数据集中的训练集数据。可以但不限于兰巴达数据集LAMBADA dataset、网络问题数据集WebQuestiondataset以及自然语言语料库(XNLI,Cross-Lingual Natural Language Inference)等组成的第二联合数据集作为上述语料数据集中的测试集数据。
可选的,上述第一验证指标至少包括:预测准确率ACC、词语出现率PPL(Perplexity),其中,通过如下公式计算得到上述预测准确率ACC:
其中,TP为单元测试质量的评估结果中预测正确的正样本,TN为单元测试质量的评估结果中预测正确的负样本,FP为单元测试质量的评估结果中预测错误的负样本,FN为单元测试质量的评估结果中预测错误的正样本。上述词语出现率PPL(Perplexity)用于根据每个词来估计一句话出现的概率,并用句子的长度进行正则化。PPL越小,期望句子出现的概率越大,因此PPL越小越好,计算公式如下:
其中,ωi(i=1,2,…,n)为语句中的每个词,N为语句中的总词数。
在一种可选的实施例中,基于单元测试数据集对上述语言生成模型进行优化训练,得到优化后的语言生成模型,包括:
基于上述单元测试数据集中的训练集数据,以预设评分和预设审核意见作为训练标签,采用有监督训练方式对上述语言生成模型进行优化训练,得到第三自回归模型;
采用上述单元测试数据集中的测试集数据对上述第三自回归模型进行测试,得到第四自回归模型;
根据上述单元测试数据集中的测试集数据,计算得到上述第四自回归模型对应的第二验证指标;
判断上述第二验证指标是否达到第二预设阈值;
若上述第二验证指标达到上述第二预设阈值,则确定上述第四自回归模型为上述优化后的语言生成模型。
可选的,可以但不限于基于最后一次更新的单元测试规范提取得到的单元测试用例组成上述单元测试数据集。
可选的,将上述单元测试数据集中第一比例的数据作为上述单元测试数据集中的训练集数据;将上述单元测试数据集中第二比例的数据作为上述单元测试数据集中的测试集数据。上述单元测试数据集中的训练集数据和上述单元测试数据集中的训练集数据之和为上述单元测试数据集,本文对上述第一比例和第二比例不做具体限定。例如,以上述单元测试数据集中80%的数据作为上述单元测试数据集中的训练集数据;以上述单元测试数据集中20%的数据作为上述单元测试数据集中的测试集数据。
需要说明的是,在本发明实施例中,引入自回归模型,并通过基于上述单元测试数据集中的训练集数据,以预设评分和预设审核意见作为训练标签,采用有监督训练方式对上述语言生成模型进行优化训练,得到第三自回归模型;采用上述单元测试数据集中的测试集数据对上述第三自回归模型进行测试,得到第四自回归模型;根据上述单元测试数据集中的测试集数据,计算得到上述第四自回归模型对应的第二验证指标;判断上述第二验证指标是否达到第二预设阈值;若上述第二验证指标达到上述第二预设阈值,则确定上述第四自回归模型为上述优化后的语言生成模型的方式获取得到优化后的语言生成模型,并基于上述优化后的语言生成模型确定得到单元测试质量的评估结果。把深度自回归模型引入到现有单元测试评估框架中,支持给单元测试进行打分,更直观地反馈单元测试质量的好坏;同时以预设评分和预设审核意见作为训练标签,可以达到基于给出单元测试的审核意见(即上述预设审核意见),如永真断言、异常断言或者不合规范等,减少审核人员的意见编辑工作量,提高工作效率的效果。
在一种可选的实施例中,基于单元测试数据集对上述语言生成模型进行优化训练,得到优化后的语言生成模型,包括:
执行上述单元测试数据集对应的单元测试用例,采用预先构建的代码运行沙箱对上述单元测试用例进行转换处理,得到运行时字节码;
基于上述运行时字节码,对上述语言生成模型进行优化训练,得到上述优化后的语言生成模型。
可选的,利用容器编排引擎Kubernetes和gVisor安全容器运行构建得到一个平台独立且可移植的代码运行沙箱,即为上述预先构建的代码运行沙箱。
需要说明的是,为了能够让模型能够更深入的感知单元测试用例和业务代码的关联,提高判断的准确性,本发明实施例采用单元测试用例的运行时字节码作为上述语言生成模型的输入。为此,需要在调用模型预测之前执行单元测试用例得到运行时字节码,可以通过对代码的解码器增加hook的方式来实现。考虑到本发明实施例所提框架的平台独立性和可移植性,利用容器编排引擎Kubernetes和gVisor安全容器运行时实现了一个平台独立且可移植的代码运行沙箱,同时采用Kubernetes实现运行沙箱有利于单元测试用例转换为运行时字节码的并行化,提升处理效率。
在一种可选的实施例中,获取预先构建的初始自回归模型,包括:
基于动态稀疏注意力机制,确定上述初始自回归模型的网络结构;
确定上述初始自回归模型的网络层数,并对多个网络层进行特征增强处理,得到多个处理后的网络层;
根据上述网络结构和上述多个处理后的网络层,确定得到上述初始自回归模型。
可选的,采用聚合连接方式对排在前列的第一数量的上述网络层进行上述特征增强处理,采用半密集连接方式对排在后列的第二数量的上述网络层进行上述特征增强处理,上述第一数量和上述第二数量之和等于上述网络层数。
可选的,通过预先构建的连接组件进一步扩大上述初始自回归模型的稀疏性。其中,上述预先构建的连接组件可以但不限于为通过撤销Dropout和元素相加操作组合而成的连接组件,用于连接不同网络层对应的解码器Decoder Block。
需要说明的是,由于单元测试评估任务存在大量简单样本和单一场景,这要求网络模型(即上述初始自回归模型)尽可能减轻过拟合和具有较强的泛化能力。可以但不限于通过一种动态稀疏和聚合简化的网络结构来满足这一要求,该网络结构如下图2所示,上述初始自回归模型的网络层数和网络参数配置结果如表1所示。
表1
可选的,仍如图2所示,为了增加网络的稀疏性,在初始自回归模型Transformer的解码器Decoder Block中引入了稀疏注意力机制模块Sparse Attention,该模块通过取前K个最高的激活值得到稀疏的特征映射,但K值是固定的,显然和网络的动态学习过程不符合,因此,本申请实施例在此基础上进行了改进,提出动态K计算方式,得到更符合网络动态学习过程的动态稀疏注意力机制Dynamic Sparse Attention,从而得到动态稀疏注意力机制模块Dynamic Sparse Decoder Block,动态K可以形式化如下:
Wk=[Mean(w)-Sted(w)]
其中,w为原来的注意力分数,wk为动态K计算得到的注意力分数的边界,Mean(w)为多个注意力分数w的均值,Sted(w)为多个注意力分数w的标准差,QK为模型输入,d为常数值。
需要说明的是,除了稀疏性之外,上述初始自回归模型的泛化能力也是需要考虑的重要因素,这与网络的特征表达相关。为了增强网络的表达能力但不损失其稀疏性优势,本实施例在网络的前32层(共64层)采用聚合连接的方式来完成特征表达的增强,上述聚合连接指每个解码块Decoder Block的简化shortcut只在最后一层进行融合。考虑到随着网络层数的增加,特征衰减随之增加,因此在后32层我们采用半密集连接的方式,使特征能够以残差形式向后传递。保证网络具有强稀疏性同时具有良好的特征表达能力。
仍需要说明的是,本发明实施例提出一种动态稀疏性LM网络结构,通过求取注意力分数的置信区间得到与当前网络学习状态一致的K划分,从而在保证网络稀疏性的同时保证特征的充分利用。同时提出一种聚合连接和半密集连接组合的特征聚合方式,保证网络在浅层和深层的特征传递和学习。
在一种可选的实施例中,获取预先构建的初始自回归模型,还包括:预先配置上述初始自回归模型对应的模型训练参数,其中,上述模型训练参数至少包括:预热策略、优化器参数、权重衰减系数、学习率、梯度阶段以及目标函数。
可选的,可以但不限于将上述预热策略配置为线性预热策略;将上述优化器参数配置为Adam,β1=0.9,β2=0.95,ε=10-8;将上述权重衰减系数设置为0.1;将上述与训练阶段和上述优化处理阶段的学习率分别设置为0.7×10-4和0.1×10-4;将上述梯度阶段的类型设置为全局梯度截断,截断间距设置为1.0;将上述预训练阶段的目标函数设置为L1(u)=arg min-∑i logP(ui|ui-k…ui-1),θ;将上述优化处理阶段的目标函数设置为L2(c)=argmin-∑(x,y)logP(y|x1…xm)。在开始模型预训练前预训练阶段和优化处理阶段需要设置的其他参数分别如表2和表3所示。
表2
表3
仍需要说明的是,由于本发明实施例的核心算法采用自回归模型构建,即模型的预测基于模型的上一个预测,因此模型的输入和标签几乎是相同的,区别仅在于标签需要在输入的基础上右移一位。
可选的,在开始模型训练之前,确定各训练阶段的数据形式,例如,在模型预训练阶段,无需做额外处理;在优化处理阶段(即微调阶段)对输入的单元测试用例之间的所有空格使用一个空格符号替代<sp>;此外,对于标签数据(即上述预设评分和上述预设审核意见),具体为被测类的所有单元测试用例文件流,该文件流会压缩为单行代码格式,两条语句之间的空格将全部替换为一个空格。同理,docstring功能描述字符串也做相同处理。为了避免大量可能带来训练偏差,空格会被采用<sp>标志符号替换,<sp>在预测和损失计算时会被忽略。
在一种可选的实施例中,在基于语料数据集对上述初始自回归模型进行预训练,得到语言生成模型之前,上述方法还包括:
对上述语料数据集进行降重处理和关键字一致性处理;以及
对上述单元测试数据集中重复的单元测试用例进行剔除处理。
需要说明的是,在对基于语料数据集对上述初始自回归模型进行预训练之前,需要对采集到的数据(即上述语料数据集和上述单元测试数据集)进行清理,去除其中冗余、不完整、语法逻辑有误的语料记录,查找和替换关键字的表达,保证数据的一致性。特别是对应用于模型预训练阶段的数据集(即上述语料数据集),需要仔细地进行跨数据集地降重处理,以避免模型在某些常见语料上过拟合。此外,为了保证关键字表达的一致性(如Java和java均统一为Java),采用文本查找替换工具FlashText对上述语料数据集中关键字进行一致性处理。
仍需要说明的是,对于模型优化处理阶段的数据集(即上述单元测试数据集),在数据采集阶段默认已经严格按照本中心当前最新的单元测试规范对单元测试用例进行提取,因此无需过多在语法规范上对语料进行清洗,主要工作集中在剔除简单重复的单元测试用例,避免模型在简单样本上过拟合。
可选的,基于本发明实施例,还可以提供一种单元测试评估LM模型和当前单元测试评估框架的整合方案,该整合方案具体可以实现如下功能:能够满足传统的单元测试质量评估;能够针对每个单元测试函数给出相应评分,用以直观评估单元测试测试函数的质量;能够针对每个单元测试函数,特别是永真断言、异常断言、不合规范的单元测试用例,给出相应的文字意见。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
实施例2
在本实施例中还提供了一种单元测试质量的评估装置,该装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”“装置”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
根据本发明实施例,还提供了一种用于实施上述单元测试质量的评估方法的装置实施例,图3是根据本发明实施例的一种单元测试质量的评估装置的结构示意图,如图3所示,上述单元测试质量的评估装置,包括:获取模块300、第一训练模块302、第二训练模块304、确定模块306,其中:
上述获取模块300,用于获取预先构建的初始自回归模型;
上述第一训练模块302,与上述获取模块300连接,用于基于语料数据集对上述初始自回归模型进行预训练,得到语言生成模型;
上述第二训练模块304,与上述第一训练模块302连接,用于基于单元测试数据集对上述语言生成模型进行优化训练,得到优化后的语言生成模型;
上述确定模块306,与上述第二训练模块304连接,用于根据上述优化后的语言生成模型,确定得到单元测试质量的评估结果。
在本发明实施例中,采用单元测试质量的评估方式,通过设置上述获取模块300,用于获取预先构建的初始自回归模型;上述第一训练模块302,与上述获取模块300连接,用于基于语料数据集对上述初始自回归模型进行预训练,得到语言生成模型;集对上述语言生成模型进行优化训练,得到优化后的语言生成模型;上述确定模块306,与上述第二训练模块304连接,用于根据上述优化后的语言生成模型,确定得到单元测试质量的评估结果,达到了通过自回归模型方式的确定单元测试质量的评估结果目的,从而实现了单元测试质量的评估效率和评估测试效果的技术效果,进而解决了由于现有技术中的单元测试质量的评估方法不能全面评估单元测试质量,造成的评估效率低且测试效果差的技术问题。
需要说明的是,上述各个模块是可以通过软件或硬件来实现的,例如,对于后者,可以通过以下方式实现:上述各个模块可以位于同一处理器中;或者,上述各个模块以任意组合的方式位于不同的处理器中。
此处需要说明的是,上述获取模块300、第一训练模块302、第二训练模块304、确定模块306对应于实施例1中的步骤S102至步骤S108,上述模块与对应的步骤所实现的实例和应用场景相同,但不限于上述实施例1所公开的内容。需要说明的是,上述模块作为装置的一部分可以运行在计算机终端中。
需要说明的是,本实施例的可选或优选实施方式可以参见实施例1中的相关描述,此处不再赘述。
上述的单元测试质量的评估装置还可以包括处理器和存储器,上述获取模块300、第一训练模块302、第二训练模块304、确定模块306等均作为程序单元存储在存储器中,由处理器执行存储在存储器中的上述程序单元来实现相应的功能。
处理器中包含内核,由内核去存储器中调取相应的程序单元,上述内核可以设置一个或以上。存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM),存储器包括至少一个存储芯片。
根据本申请实施例,还提供了一种非易失性存储介质的实施例。可选的,在本实施例中,上述非易失性存储介质包括存储的程序,其中,在上述程序运行时控制上述非易失性存储介质所在设备执行上述任意一种单元测试质量的评估方法。
可选的,在本实施例中,上述非易失性存储介质可以位于计算机网络中计算机终端群中的任意一个计算机终端中,或者位于移动终端群中的任意一个移动终端中,上述非易失性存储介质包括存储的程序。
可选的,在程序运行时控制非易失性存储介质所在设备执行以下功能:获取预先构建的初始自回归模型;基于语料数据集对上述初始自回归模型进行预训练,得到语言生成模型;基于单元测试数据集对上述语言生成模型进行优化训练,得到优化后的语言生成模型;根据上述优化后的语言生成模型,确定得到单元测试质量的评估结果。
可选的,在程序运行时控制非易失性存储介质所在设备执行以下功能:基于上述语料数据集中的训练集数据,采用无监督训练方式对上述初始自回归模型进行预训练,得到第一自回归模型;采用上述语料数据集中的测试集数据对上述第一自回归模型进行测试,得到第二自回归模型;根据上述语料数据集中的测试集数据,计算得到上述第二自回归模型对应的第一验证指标;判断上述第一验证指标是否达到第一预设阈值;若上述第一验证指标达到上述第一预设阈值,则确定上述第二自回归模型为上述语言生成模型。
可选的,在程序运行时控制非易失性存储介质所在设备执行以下功能:基于上述单元测试数据集中的训练集数据,以预设评分和预设审核意见作为训练标签,采用有监督训练方式对上述语言生成模型进行优化训练,得到第三自回归模型;采用上述单元测试数据集中的测试集数据对上述第三自回归模型进行测试,得到第四自回归模型;根据上述单元测试数据集中的测试集数据,计算得到上述第四自回归模型对应的第二验证指标;判断上述第二验证指标是否达到第二预设阈值;若上述第二验证指标达到上述第二预设阈值,则确定上述第四自回归模型为上述优化后的语言生成模型。
可选的,在程序运行时控制非易失性存储介质所在设备执行以下功能:执行上述单元测试数据集对应的单元测试用例,采用预先构建的代码运行沙箱对上述单元测试用例进行转换处理,得到运行时字节码;基于上述运行时字节码,对上述语言生成模型进行优化训练,得到上述优化后的语言生成模型。
可选的,在程序运行时控制非易失性存储介质所在设备执行以下功能:基于动态稀疏注意力机制,确定上述初始自回归模型的网络结构;确定上述初始自回归模型的网络层数,并对多个网络层进行特征增强处理,得到多个处理后的网络层,其中,采用聚合连接方式对排在前列的第一数量的上述网络层进行上述特征增强处理,采用半密集连接方式对排在后列的第二数量的上述网络层进行上述特征增强处理,上述第一数量和上述第二数量之和等于上述网络层数;根据上述网络结构和上述多个处理后的网络层,确定得到上述初始自回归模型。
可选的,在程序运行时控制非易失性存储介质所在设备执行以下功能:预先配置上述初始自回归模型对应的模型训练参数,其中,上述模型训练参数至少包括:预热策略、优化器参数、权重衰减系数、学习率、梯度阶段以及目标函数。
可选的,在程序运行时控制非易失性存储介质所在设备执行以下功能:对上述语料数据集进行降重处理和关键字一致性处理;以及对上述单元测试数据集中重复的单元测试用例进行剔除处理。
根据本申请实施例,还提供了一种计算机程序产品的实施例,当在数据处理设备上执行时,适于执行初始化有上述任意一种的单元测试质量的评估方法步骤的程序。
可选的,上述计算机程序产品,当在数据处理设备上执行时,适于执行初始化有如下方法步骤的程序:获取预先构建的初始自回归模型;基于语料数据集对上述初始自回归模型进行预训练,得到语言生成模型;基于单元测试数据集对上述语言生成模型进行优化训练,得到优化后的语言生成模型;根据上述优化后的语言生成模型,确定得到单元测试质量的评估结果。
根据本申请实施例,还提供了一种电子设备的实施例,如图4所示,电子设备10包括处理器、存储器及存储在存储器上并可在处理器上运行的程序,处理器执行程序时实现以下步骤:获取预先构建的初始自回归模型;基于语料数据集对上述初始自回归模型进行预训练,得到语言生成模型;基于单元测试数据集对上述语言生成模型进行优化训练,得到优化后的语言生成模型;根据上述优化后的语言生成模型,确定得到单元测试质量的评估结果。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,可以为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取非易失性存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个非易失性存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的非易失性存储介质包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (10)
1.一种单元测试质量的评估方法,其特征在于,包括:
获取预先构建的初始自回归模型;
基于语料数据集对所述初始自回归模型进行预训练,得到语言生成模型;
基于单元测试数据集对所述语言生成模型进行优化训练,得到优化后的语言生成模型;
根据所述优化后的语言生成模型,确定得到单元测试质量的评估结果。
2.根据权利要求1所述的方法,其特征在于,基于语料数据集对所述初始自回归模型进行预训练,得到语言生成模型,包括:
基于所述语料数据集中的训练集数据,采用无监督训练方式对所述初始自回归模型进行预训练,得到第一自回归模型;
采用所述语料数据集中的测试集数据对所述第一自回归模型进行测试,得到第二自回归模型;
根据所述语料数据集中的测试集数据,计算得到所述第二自回归模型对应的第一验证指标;
判断所述第一验证指标是否达到第一预设阈值;
若所述第一验证指标达到所述第一预设阈值,则确定所述第二自回归模型为所述语言生成模型。
3.根据权利要求1所述的方法,其特征在于,基于单元测试数据集对所述语言生成模型进行优化训练,得到优化后的语言生成模型,包括:
基于所述单元测试数据集中的训练集数据,以预设评分和预设审核意见作为训练标签,采用有监督训练方式对所述语言生成模型进行优化训练,得到第三自回归模型;
采用所述单元测试数据集中的测试集数据对所述第三自回归模型进行测试,得到第四自回归模型;
根据所述单元测试数据集中的测试集数据,计算得到所述第四自回归模型对应的第二验证指标;
判断所述第二验证指标是否达到第二预设阈值;
若所述第二验证指标达到所述第二预设阈值,则确定所述第四自回归模型为所述优化后的语言生成模型。
4.根据权利要求1所述的方法,其特征在于,基于单元测试数据集对所述语言生成模型进行优化训练,得到优化后的语言生成模型,包括:
执行所述单元测试数据集对应的单元测试用例,采用预先构建的代码运行沙箱对所述单元测试用例进行转换处理,得到运行时字节码;
基于所述运行时字节码,对所述语言生成模型进行优化训练,得到所述优化后的语言生成模型。
5.根据权利要求1所述的方法,其特征在于,获取预先构建的初始自回归模型,包括:
基于动态稀疏注意力机制,确定所述初始自回归模型的网络结构;
确定所述初始自回归模型的网络层数,并对多个网络层进行特征增强处理,得到多个处理后的网络层,其中,采用聚合连接方式对排在前列的第一数量的所述网络层进行所述特征增强处理,采用半密集连接方式对排在后列的第二数量的所述网络层进行所述特征增强处理,所述第一数量和所述第二数量之和等于所述网络层数;
根据所述网络结构和所述多个处理后的网络层,确定得到所述初始自回归模型。
6.根据权利要求5所述的方法,其特征在于,获取预先构建的初始自回归模型,还包括:
预先配置所述初始自回归模型对应的模型训练参数,其中,所述模型训练参数至少包括:预热策略、优化器参数、权重衰减系数、学习率、梯度阶段以及目标函数。
7.根据权利要求1所述的方法,其特征在于,在基于语料数据集对所述初始自回归模型进行预训练,得到语言生成模型之前,所述方法还包括:
对所述语料数据集进行降重处理和关键字一致性处理;以及
对所述单元测试数据集中重复的单元测试用例进行剔除处理。
8.一种单元测试质量的评估装置,其特征在于,包括:
获取模块,用于获取预先构建的初始自回归模型;
第一训练模块,用于基于语料数据集对所述初始自回归模型进行预训练,得到语言生成模型;
第二训练模块,用于基于单元测试数据集对所述语言生成模型进行优化训练,得到优化后的语言生成模型;
确定模块,用于根据所述优化后的语言生成模型,确定得到单元测试质量的评估结果。
9.一种非易失性存储介质,其特征在于,所述非易失性存储介质存储有多条指令,所述指令适于由处理器加载并执行权利要求1至7中任意一项所述的单元测试质量的评估方法。
10.一种电子设备,包括存储器和处理器,其特征在于,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行权利要求1至7中任意一项所述的单元测试质量的评估方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210397332.2A CN115129581A (zh) | 2022-04-15 | 2022-04-15 | 单元测试质量的评估方法、装置及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210397332.2A CN115129581A (zh) | 2022-04-15 | 2022-04-15 | 单元测试质量的评估方法、装置及电子设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115129581A true CN115129581A (zh) | 2022-09-30 |
Family
ID=83376619
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210397332.2A Pending CN115129581A (zh) | 2022-04-15 | 2022-04-15 | 单元测试质量的评估方法、装置及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115129581A (zh) |
-
2022
- 2022-04-15 CN CN202210397332.2A patent/CN115129581A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10162885B2 (en) | Automated self-service user support based on ontology analysis | |
Lam et al. | Bug localization with combination of deep learning and information retrieval | |
Kurtanović et al. | Mining user rationale from software reviews | |
US10936821B2 (en) | Testing and training a question-answering system | |
Clement et al. | PyMT5: multi-mode translation of natural language and Python code with transformers | |
US9740685B2 (en) | Generation of natural language processing model for an information domain | |
US9703536B2 (en) | Debugging code using a question and answer system based on documentation and code change records | |
KR101306667B1 (ko) | 지식 그래프 정제 장치 및 방법 | |
CN105988990B (zh) | 汉语零指代消解装置和方法、模型训练方法和存储介质 | |
CN106462604B (zh) | 识别查询意图 | |
US9582487B2 (en) | Predicate template collecting device, specific phrase pair collecting device and computer program therefor | |
US20150112664A1 (en) | System and method for generating a tractable semantic network for a concept | |
US20150127323A1 (en) | Refining inference rules with temporal event clustering | |
Nayak et al. | Knowledge graph based automated generation of test cases in software engineering | |
Ju et al. | Scisummpip: An unsupervised scientific paper summarization pipeline | |
Huang et al. | Query expansion based on statistical learning from code changes | |
Zouaq et al. | Ontologizing concept maps using graph theory | |
Bader et al. | AI in software engineering at Facebook | |
CN113806489A (zh) | 用于数据集创建的方法、电子设备和计算机程序产品 | |
US20230351121A1 (en) | Method and system for generating conversation flows | |
CN116484829A (zh) | 用于信息处理的方法和设备 | |
US20220237383A1 (en) | Concept system for a natural language understanding (nlu) framework | |
EP3964980A1 (en) | Automatically recommending an existing machine learning project as adaptable for use in a new machine learning project | |
Karthik et al. | Automatic detection of latent software component relationships from online Q&A sites | |
CN115129581A (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 |