CN113688036A - 一种数据处理方法、装置、设备以及存储介质 - Google Patents
一种数据处理方法、装置、设备以及存储介质 Download PDFInfo
- Publication number
- CN113688036A CN113688036A CN202110932881.0A CN202110932881A CN113688036A CN 113688036 A CN113688036 A CN 113688036A CN 202110932881 A CN202110932881 A CN 202110932881A CN 113688036 A CN113688036 A CN 113688036A
- Authority
- CN
- China
- Prior art keywords
- function
- data
- input data
- tested
- input
- 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
- 238000003672 processing method Methods 0.000 title claims abstract description 14
- 238000000034 method Methods 0.000 claims abstract description 45
- 238000012545 processing Methods 0.000 claims abstract description 34
- 238000013145 classification model Methods 0.000 claims abstract description 32
- 238000003062 neural network model Methods 0.000 claims abstract description 11
- 238000012549 training Methods 0.000 claims abstract description 8
- 230000006870 function Effects 0.000 claims description 283
- 238000012360 testing method Methods 0.000 claims description 49
- 238000001914 filtration Methods 0.000 claims description 20
- 230000008859 change Effects 0.000 claims description 19
- 238000004590 computer program Methods 0.000 claims description 11
- 230000014509 gene expression Effects 0.000 claims description 8
- 238000005314 correlation function Methods 0.000 claims description 7
- 230000008569 process Effects 0.000 description 9
- 238000010586 diagram Methods 0.000 description 8
- 230000000694 effects Effects 0.000 description 7
- 238000013528 artificial neural network Methods 0.000 description 5
- 238000004364 calculation method Methods 0.000 description 5
- 238000013507 mapping Methods 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 3
- 230000009286 beneficial effect Effects 0.000 description 2
- 238000013527 convolutional neural network Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 238000000926 separation method Methods 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 1
- 230000004927 fusion Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000012216 screening Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000000758 substrate Substances 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
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
- 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
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/906—Clustering; Classification
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- General Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- Evolutionary Computation (AREA)
- Biophysics (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Biomedical Technology (AREA)
- Computational Linguistics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Life Sciences & Earth Sciences (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Health & Medical Sciences (AREA)
- Debugging And Monitoring (AREA)
Abstract
本申请提出一种数据处理方法、装置、设备以及存储介质。其中,所述方法可以包括:获取待测函数的函数特征信息以及与所述待测函数对应的输入数据;基于所述函数特征信息与所述输入数据,生成与所述输入数据对应的输入特征;将所述输入特征输入数据分类模型,得到与所述输入数据对应的数据分类结果;其中所述数据分类模型包括基于多个标注了数据类型信息的数据样本训练得到的神经网络模型。
Description
技术领域
本申请涉及计算机技术领域,具体涉及一种数据处理方法、装置、设备以及存储介质。
背景技术
代码测试,是指根据代码包括的函数的输入数据,生成测试用例,然后再基于测试用例进行代码测试的过程。
所述输入数据,是指代码中的函数包括的多个参数分别在各自参数范围中进行取值,再组合得到的数据。不难发现,由于所述多个参数均有多种取值可能,因此会有多种参数取值组合情形,即所述函数具有多种输入数据。
在实际测试中,一些输入数据可能不具备代码测试的意义(本申请中,将不具备代码测试意义的输入数据称为无效输入数据),将这类无效输入数据去除,可以减少生成的测试用例的数量,提升代码测试效率。
目前,可以将命中无效数据规则的输入数据确定为无效输入数据。这种方式开发难道高,很难穷举无效数据规则,对测试人员不友好,无效输入数据的确定效果较差。
发明内容
有鉴于此,本申请公开一种数据处理方法。所述方法可以包括:获取待测函数的函数特征信息以及与所述待测函数对应的输入数据;基于所述函数特征信息与所述输入数据,生成与所述输入数据对应的输入特征;将所述输入特征输入数据分类模型,得到与所述输入数据对应的数据分类结果;其中所述数据分类模型包括基于多个标注了数据类型信息的数据样本训练得到的神经网络模型。
在一些实施例中,所述函数特征信息包括所述待测函数对应的源代码,和/或所述待测函数对应的属性信息;所述属性信息包括以下中的至少一项:函数名称;函数路径;函数参数;函数参数类型;函数返回值;函数分支表达式;函数调用链信息;函数流程信息。
在一些实施例中,所述方法还包括:获取函数变更信息;所述函数变更信息指示待测代码包括的函数中,发生变更的函数;将所述函数变更信息中指示的发生变更的函数确定为所述待测函数。
在一些实施例中,所述方法还包括:基于所述待测代码中各函数之间的关联关系,确定所述待测代码中与所述发生变更的函数对应的关联函数;将所述关联函数确定为所述待测函数。
在一些实施例中,所述函数特征信息包括所述待测函数对应的源代码;所述基于所述函数特征信息与所述输入数据,生成与所述输入数据对应的输入特征,包括:将所述源代码与所述输入数据分别转换为第一字符串序列与第二字符串序列;删除所述第一字符串序列中的无效字符串;对删除无效字符串的所述第一字符串序列与所述第二字符串序列分别进行向量化处理,并基于向量化处理结果得到所述输入特征。
在一些实施例中,所述输入数据包括与所述待测函数对应的输入数据集中的数据;所述方法还包括:基于所述输入数据集中各输入数据分别对应的数据分类结果,确定所述输入数据集中的有效数据。
在一些实施例中,所述方法还包括:利用预先维护的过滤规则,对所述有效数据进行过滤,得到所述待测函数对应的最终输入数据。
本申请还提出一种数据处理装置,包括:获取模块,用于获取待测函数的函数特征信息以及与所述待测函数对应的输入数据;生成模块,用于基于所述函数特征信息与所述输入数据,生成与所述输入数据对应的输入特征;输入模块,用于将所述输入特征输入数据分类模型,得到与所述输入数据对应的数据分类结果;其中所述数据分类模型包括基于多个标注了数据类型信息的数据样本训练得到的神经网络模型。
在一些实施例中,所述函数特征信息包括所述待测函数对应的源代码,和/或所述待测函数对应的属性信息;所述属性信息包括以下中的至少一项:函数名称;函数路径;函数参数;函数参数类型;函数返回值;函数分支表达式;函数调用链信息;函数流程信息。
在一些实施例中,所述装置还包括:第一确定模块,用于获取函数变更信息;所述函数变更信息指示待测代码包括的函数中,发生变更的函数;将所述函数变更信息中指示的发生变更的函数确定为所述待测函数。
在一些实施例中,所述装置还包括:第二确定模块,用于基于所述待测代码中各函数之间的关联关系,确定所述待测代码中与所述发生变更的函数对应的关联函数;将所述关联函数确定为所述待测函数。
在一些实施例中,所述函数特征信息包括所述待测函数对应的源代码;所述生成模块具体用于:将所述源代码与所述输入数据分别转换为第一字符串序列与第二字符串序列;删除所述第一字符串序列中的无效字符串;对删除无效字符串的所述第一字符串序列与所述第二字符串序列分别进行向量化处理,并基于向量化处理结果得到所述输入特征。
在一些实施例中,所述输入数据包括与所述待测函数对应的输入数据集中的数据;所述装置还包括:第三确定模块,用于基于所述输入数据集中各输入数据分别对应的数据分类结果,确定所述输入数据集中的有效数据。
在一些实施例中,所述装置还包括:过滤模块,用于利用预先维护的过滤规则,对所述有效数据进行过滤,得到所述待测函数对应的最终输入数据。
本申请还提出一种电子设备,包括:处理器;用于存储处理器可执行指令的存储器;其中,所述处理器通过运行所述可执行指令以实现如前述任一实施例所述的数据处理方法。
本申请还提出一种计算机可读存储介质,所述存储介质存储有计算机程序,所述计算机程序用于使处理器执行如前述任一实施例所述的数据处理方法。
在前述技术方案中,可以基于待测函数的函数特征信息和输入数据生成输入特征,并输入神经网络分类模型进行计算得到数据分类结果,从而可以利用神经网络模型学习不同类型的输入数据和其对应的函数特征信息之间的映射关系的特性,依据函数特征信息对输入数据分类,从而实现高效准确地进行数据分类,与设置无效输入数据规则的方式相比,无需穷举无效数据规则,对测试人员友好,无效输入数据的确定效果较好。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本申请。
附图说明
为了更清楚地说明本申请一个或多个实施例或相关技术中的技术方案,下面将对实施例或相关技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请一个或多个实施例中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本申请示出的一种数据处理方法的方法流程图;
图2为本申请示出的一种输入数据生成方法的流程示意图;
图3为本申请示出的一种待测函数确定方法的流程示意图;
图4为本申请示出的一种待测函数确定方法的流程示意图;
图5为本申请示出的一种输入数据生成方法的流程示意图;
图6为本申请示出的一种代码测试流程示意图;
图7为本申请示出的一种数据处理装置的结构示意图;
图8为本申请示出的一种电子设备的硬件结构示意图。
具体实施方式
下面将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的设备和方法的例子。
在本申请使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。还应当理解,本文中所使用的词语“如果”,取决于语境,可以被解释成为“在……时”或“当……时”或“响应于确定”。
本申请提出一种数据处理方法。该方法可以基于待测函数的函数特征信息和输入数据生成输入特征,并输入神经网络分类模型进行计算得到数据分类结果,从而可以利用神经网络模型学习不同类型的输入数据和其对应的函数特征信息之间的映射关系的特性,依据函数特征信息对输入数据分类,从而实现高效准确地进行数据分类,与设置无效输入数据规则的方式相比,无需穷举无效数据规则,对测试人员友好,无效输入数据的确定效果较好。
该方法可以应用于电子设备中。其中,所述电子设备可以通过搭载与数据处理方法对应的软件装置执行所述方法。所述电子设备的类型可以是笔记本电脑,计算机,服务器,手机,PAD终端等。本申请不对所述电子设备的具体类型进行特别限定。所述电子设备可以是客户端或服务端一侧的设备。所述服务端可以是由服务器、服务器集群或分布式服务器集群提供的服务端或云端。
请参见图1,图1为本申请示出的一种数据处理方法的方法流程图。如图1所示,所述方法可以包括S102-S106。
其中,S102,获取待测函数的函数特征信息以及与所述待测函数对应的输入数据。
所述待测函数,可以是指代码测试中需要被测试的函数。
所述函数特征信息与所述待测函数对应,可以表征所述待测函数具备的任意类型的特征。例如,所述待测函数的函数表达式。
在一些实施例中,所述函数特征信息可以包括:所述待测函数对应的源代码,和/或所述待测函数对应的属性信息;所述属性信息包括以下中的至少一项:函数名称;函数路径;函数参数;函数参数类型;函数返回值;函数分支表达式;函数调用链信息;函数流程信息。其中,所述函数分支表达式是指诸如if else此类的具有分支语义的语句。
所述函数调用链信息是指函数对应的调用与被调用函数组成的链路信息。
所述函数流程信息是指基于多个函数分支表达式构成的用于表达函数计算流程的信息。
由此利用待测函数对应的源代码和/或属性信息表征所述待测函数的函数特征信息,可以更好的区别函数特征,从而使基于所述函数特征信息构建的输入特征可以包含对神经网络数据分类有益的信息,提升数据分类效果。
所述输入数据,可以是所述待测函数的多个参数在各自取值范围内进行取值,然后再组合得到的数据。所述取值范围可以是代码开发任意指定的。例如,所述待测函数包括A、B、C三个参数。A、B、C分别有3种取值。A、B、C分别从各自取值范围中取值并组合可以得到3的3次方即27种数据组合方式,也即有27个输入数据。
S104,基于所述函数特征信息与所述输入数据,生成与所述输入数据对应的输入特征。
所述输入特征,用于输入数据分类模型进行数据分类。所述数据分类模型可以从输入特征中提取出对高阶和低阶的特征,进行数据分类。
请参见图2,图2为本申请示出的一种输入数据生成方法的流程示意图。如图2所示,在执行S104时,可以执行S1042-S1046。
其中,S1042,将所述函数特征信息与所述输入数据分别转换为字符串序列。
在一些实施例中,可以通过解析器将所述函数特征信息与所述输入数据分别解析为字符串序列。
S1044,可以对所述函数特征信息与所述输入数据分别对应的字符串序列分别进行向量化处理,得到第一向量与第二向量。
在一些实施例中,可以利用word2Vec(词向量)单元对所述函数特征信息与所述输入数据分别对应的字符串序列分别进行向量化处理,得到所述第一向量与第二向量。在一些实施例中,还可以对第一向量与第二向量进行归一化处理,以减少分类模型运算开销,提升数据分类效率。
S1046,基于所述第一向量与所述第二向量生成所述输入特征。
在一些实施例中可以采用向量叠加、拼接等融合方式,将所述第一向量与所述第二向量进行融合,得到所述输入特征。
S106,将所述输入特征输入数据分类模型,得到与所述输入数据对应的数据分类结果;其中,所述数据分类模型包括基于多个标注了数据类型信息的数据样本训练得到的神经网络模型。
所述数据分类模型,可以是基于神经网络(例如卷积神经网络)构建的分类模型。本申请不对数据分类模型的具体结构进行限定。
在对所述数据分类模型进行训练时,可以获取数据样本。所述数据样本包括基于样本函数的函数特征信息与所述样本函数的输入数据生成的样本输入特征,以及针对所述样本输入特征标注的数据类型信息。所述数据类信息指示所述样本函数的输入数据为有效数据还是无效数据。
然后可以利用所述数据样本对所述数据分类模型进行有监督训练,直至数据分类模型收敛。
训练完成的数据分类模型可以学习到不同类型的输入数据分别对应的函数特征信息,后续即可利用该数据分类模型,根据待测函数的函数特征信息确定输入数据的分类结果。
在前述技术方案中可以基于待测函数的函数特征信息和输入数据生成输入特征,并输入神经网络分类模型进行计算得到数据分类结果,从而可以利用神经网络模型可以学习不同类型的输入数据和其对应的函数特征信息之间的映射关系的特性,依据函数特征信息对输入数据分类,从而实现高效准确地进行数据分类,与设置无效输入数据规则的方式相比,无需穷举无效数据规则,对测试人员友好,无效输入数据的确定效果较好。
在一些实施例中,可以利用S106得到的输入数据的数据分类结果,剔除输入数据集中的无效数据,筛选出待测函数的输入数据集中的有效数据,减少待测函数的参数范围,提升测试效率。
所述输入数据集,是由代码中的待测函数对应多种输入数据构成的集合。其中包含多种参数取值组合。
在本例中可以执行S108,基于所述输入数据集中各输入数据分别对应的数据分类结果,确定所述输入数据集中的有效数据。
在执行108时,可以将针对所述输入数据集中的各输入数据,执行S102-S106的步骤,得到各输入数据分别对应的数据分类结果。
所述数据分类结果可以指示所述输入数据是有效数据还是无效数据。然后可以利用该数据分类结果,从所述输入数据集中,剔除输入数据集中的无效数据,筛选出待测函数的输入数据集中的有效数据,减少待测函数的参数范围,提升测试效率。
在一些实施例中,在得到有效数据后,还可以利用过滤规则对数据进行二次精准过滤,进一步减少测试用例的数量,提升代码测试效率。
在本例中可以执行S110,利用预先维护的过滤规则,对所述有效数据进行过滤,得到所述待测函数对应的最终输入数据。
所述过滤规则,可以根据业务需求进行设定。在一些实施例中,所述过滤规则可以包含静态规则和动态规则。其中,静态规则可以包括根据历史测试经验维护的无效输入数据具有的规则。动态规则可以包括根据测试过程产生的模块日志、流量等数据源挖掘出的无效输入数据具有的规则。
在执行S110时,可以将S108筛选出的有效数据,与维护的过滤规则进行匹配,并过滤掉匹配中该过滤规则的有效数据,剩余的有效数据则可以作为待测函数对应的最终输入数据。由此可以利用过滤规则对数据进行二次精准过滤,进一步减少测试用例的数量,提升代码测试效率。
在一些实施例中,可以将待测函数定位到代码发生变更的函数,减少待测函数数量,提升程序代码测试效率。
在一些测试场景中,待测代码中包括的多个函数中有一部分是发生变更的函数,有一部分是未发生变更的函数。其中未发生变更的函数可能在其它代码测试中已经进行过测试,因此针对所述待测代码的测试可以无需对未发生变更的函数进行测试,而只针对发生变更的函数进行测试。
请参见图3,图3为本申请示出的一种待测函数确定方法的流程示意图。如图3所示,所示方法可以包括S31-S32。
其中,S31,获取函数变更信息。
所述函数变更信息指示待测代码包括的函数中,发生变更的函数。在一些实施例中,待测代码通常可以维护在代码库。代码库可以包括产生函数变更信息的逻辑。用户通过接口调用该逻辑,可以使代码库方待测代码中的函数变更信息。
S32,将所述函数变更信息中指示的发生变更的函数确定为所述待测函数。
由此即可将待测代码中发生变更的函数确定为实际进行测试的待测函数,从而减少待测函数数量,提升程序代码测试效率。
在一些实施例中,还可以将与所述发生变更的函数关联的函数也确定为待测函数,提升代码测试效果。
发生变更的函数会影响到与其关联的关联函数,因此,除了对发生变更的函数进行测试之外还需要对与其关联的关联函数进行测试。
请参见图4,图4为本申请示出的一种待测函数确定方法的流程示意图。如图4所示,所示方法可以包括S41-S42。
其中,S41,基于所述待测代码中各函数之间的关联关系,确定所述待测代码中与所述发生变更的函数对应的关联函数。
所述关联关系可以包括函数之间的调用关系。在一些实施例中,可以在代码库中维护函数链路信息或支路信息来维护所述关联关系。在执行S41时,可以根据代码库中维护的函数链路信息或支路信息,来确定所述关联函数。
S42,将所述关联函数确定为所述待测函数。由此可以将与所述发生变更的函数关联的函数也确定为待测函数,即除了对发生变更的函数进行测试之外还需要对与其关联的关联函数进行测试,从而提升代码测试效果。
在一些实施例中,在利用源代码与输入数据构建输入特征的方案中,可以删除源代码中的无效字符串,减少输入特征长度,减少模型运算量,提升数据分类效率。
请参见图5,图5为本申请示出的一种输入数据生成方法的流程示意图。如图5所示,在执行S104时,可以执行S51-S53。
其中,S51,将所述源代码与所述输入数据分别转换为第一字符串序列与第二字符串序列。
在一些实施例中,可以通过解析器将所述函数特征信息与所述输入数据分别解析为字符串序列。
S52,删除所述第一字符串序列中的无效字符串。
所述无效字符串,可以是指对表征待测函数的函数特征没有意义的字符串。在一些实施例中,所述无效字符串可以包括以下中的至少一项:所述源代码中除所述待测函数之外的其它函数对应的字符;换行字符;空格。由此可以在第一字符串序列中删除掉非待测函数的字符,空格,换行字符等对表征待测函数的函数特征无意义的字符串,从而缩小输入特征,减少模型运输量。
S53,对删除无效字符串的所述第一字符串序列与所述第二字符串序列分别进行向量化处理,并基于向量化处理结果得到所述输入特征。
需要说明的是,对S53的步骤的说明可以参照前述S1044-S1046,在此不做详述。
由此输入特征可以仅包括有益的特征,去除掉无异议的特征,减少模型运输量,提升数据分类效果。
以下结合具体代码测试场景进行实施例说明。本次测试使用源代码作为待测函数的函数特征信息。以函数属性信息作为所述函数特征信息,和以函数属性信息与源代码共同作为所述函数特征信息的方案在此不做详述。
所述代码维护在代码库中,所述代码库维护了所述代码的函数变更信息,以及所述代码的函数链路信息。
请参见图6,图6为本申请示出的一种代码测试流程示意图。如图6所示,所述方法可以包括S601-S611。
其中,S601,可以从所述代码库获取函数变更信息,确定所述代码中发生变更的函数。由此可以对发生变更的函数进行测试,提升代码测试效率。
S602,从所述代码库获取函数链路信息,并确定与所述发生变更的函数具有调用关系的关联函数,然后将所述发生变更的函数与所述关联函数确定为本例中需要进行实际测试的待测函数。由此可以除了对发生变更的函数进行测试之外还需要对与其关联的关联函数进行测试,从而提升代码测试效果。
S603,获取所述待测函数对应的输入数据集以及源代码。
所述输入数据集和源代码可以由代码开发人员指定并维护在代码库中。调用代码库接口即可获取所述输入数据集以及源代码。
S604,利用解析器对所述源代码进行序列化,得到第一字符串序列。其中,在序列化过程中可以剔除源代码中除所述待测函数之外的其它函数对应的字符,换行字符与空格等无效字符串。由此可以减少输入特征数据量,减少模型开销,提升数据分类效率。
S605,对所述第一字符串进行向量化处理,得到第一向量。
S606,对所述第一向量进行归一化处理。
S607,对所述输入数据集中的输入数据进行向量化处理,得到第二向量。
S608,基于所述第一向量与所述第二向量,生成所述输入特征,并输入完成训练的数据分类模型进行计算,得到所述输入数据的分类结果,即所述输入数据为有效数据还是无效数据。
所述数据分类模型可以基于卷积神经网络构建。训练完成的数据分类模型可以学习到有效和无效输入数据分别对应的函数特征信息,后续即可利用该数据分类模型,根据待测函数的函数特征信息确定输入数据是有效数据还是无效数据。
S609,筛选出所述输入数据集中的有效数据。
S610,根据预先维护的过滤规则对所述有效数据进行二次过滤,得到最终输入数据。由此可以进一步减少待测函数的参数范围,提升测试效率。
S611,基于所述最终输入数据,以及所述待测函数的属性信息生成测试用例,对所述待测函数测试,以完成代码测试。
在前述场景中,第一,可以对发生变更的函数进行测试,提升代码测试效率;第二,可以除了对发生变更的函数进行测试之外还需要对与其关联的关联函数进行测试,从而提升代码测试效果;第三,利用神经网络模型可以学习不同类型的输入数据和其对应的函数特征信息之间的映射关系的特性,依据函数特征信息对输入数据分类,从而实现高效准确地进行数据分类,与设置无效输入数据规则的方式相比,无需穷举无效数据规则,对测试人员友好,无效输入数据的确定效果较好。
与前述实施例相应的,本申请提出一种数据处理装置70。
请参见图7,图7为本申请示出的一种数据处理装置的结构示意图。
如图7所示,所述装置70可以包括:
获取模块71,用于获取待测函数的函数特征信息以及与所述待测函数对应的输入数据;
生成模块72,用于基于所述函数特征信息与所述输入数据,生成与所述输入数据对应的输入特征;
输入模块73,用于将所述输入特征输入数据分类模型,得到与所述输入数据对应的数据分类结果;其中所述数据分类模型包括基于多个标注了数据类型信息的数据样本训练得到的神经网络模型。
在一些实施例中,所述函数特征信息包括所述待测函数对应的源代码,和/或所述待测函数对应的属性信息;所述属性信息包括以下中的至少一项:
函数名称;函数路径;函数参数;函数参数类型;函数返回值;函数分支表达式;函数调用链信息;函数流程信息。
在一些实施例中,所述装置70还包括:
第一确定模块,用于获取函数变更信息;所述函数变更信息指示待测代码包括的函数中,发生变更的函数;
将所述函数变更信息中指示的发生变更的函数确定为所述待测函数。
在一些实施例中,所述装置70还包括:
第二确定模块,用于基于所述待测代码中各函数之间的关联关系,确定所述待测代码中与所述发生变更的函数对应的关联函数;
将所述关联函数确定为所述待测函数。
在一些实施例中,所述函数特征信息包括所述待测函数对应的源代码;所述生成模块72具体用于:
将所述源代码与所述输入数据分别转换为第一字符串序列与第二字符串序列;
删除所述第一字符串序列中的无效字符串;
对删除无效字符串的所述第一字符串序列与所述第二字符串序列分别进行向量化处理,并基于向量化处理结果得到所述输入特征。
在一些实施例中,所述输入数据包括与所述待测函数对应的输入数据集中的数据;
所述装置70还包括:
第三确定模块,用于基于所述输入数据集中各输入数据分别对应的数据分类结果,确定所述输入数据集中的有效数据。
在一些实施例中,所述装置70还包括:
过滤模块,用于利用预先维护的过滤规则,对所述有效数据进行过滤,得到所述待测函数对应的最终输入数据。
本申请示出的数据处理装置的实施例可以应用于电子设备上。相应地,本申请公开了一种电子设备,该设备可以包括:处理器。
用于存储处理器可执行指令的存储器。
其中,所述处理器被配置为调用所述存储器中存储的可执行指令,实现前述任一实施例示出的数据处理方法。
请参见图8,图8为本申请示出的一种电子设备的硬件结构示意图。
如图8所示,该电子设备可以包括用于执行指令的处理器,用于进行网络连接的网络接口,用于为处理器存储运行数据的内存,以及用于存储状态切换装置对应指令的非易失性存储器。
其中,所述装置的实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在电子设备的处理器将非易失性存储器中对应的计算机程序指令读取到内存中运行形成的。从硬件层面而言,除了图8所示的处理器、内存、网络接口、以及非易失性存储器之外,实施例中装置所在的电子设备通常根据该电子设备的实际功能,还可以包括其他硬件,对此不再赘述。
可以理解的是,为了提升处理速度,所述数据处理装置对应指令也可以直接存储于内存中,在此不作限定。
本申请提出一种计算机可读存储介质,所述存储介质存储有计算机程序,所述计算机程序可以用于使处理器执行前述任一实施例示出的数据处理方法。
本领域技术人员应明白,本申请一个或多个实施例可提供为方法、系统或计算机程序产品。因此,本申请一个或多个实施例可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请一个或多个实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、光学存储器等)上实施的计算机程序产品的形式。
本申请中记载的“和/或”表示至少具有两者中的其中一个,例如,“A和/或B”包括三种方案:A、B、以及“A和B”。
本申请中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于数据处理设备实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
所述对本申请特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的行为或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
本申请中描述的主题及功能操作的实施例可以在以下中实现:数字电子电路、有形体现的计算机软件或固件、包括本申请中公开的结构及其结构性等同物的计算机硬件、或者它们中的一个或多个的组合。本申请中描述的主题的实施例可以实现为一个或多个计算机程序,即编码在有形非暂时性程序载体上以被数据处理装置执行或控制数据处理装置的操作的计算机程序指令中的一个或多个模块。可替代地或附加地,程序指令可以被编码在人工生成的传播信号上,例如机器生成的电、光或电磁信号,该信号被生成以将信息编码并传输到合适的接收机装置以由数据处理装置执行。计算机存储介质可以是机器可读存储设备、机器可读存储基板、随机或串行存取存储器设备、或它们中的一个或多个的组合。
本申请中描述的处理及逻辑流程可以由执行一个或多个计算机程序的一个或多个可编程计算机执行,以通过根据输入数据进行操作并生成输出来执行相应的功能。所述处理及逻辑流程还可以由专用逻辑电路—例如FPGA(现场可编程门阵列)或ASIC(专用集成电路)来执行,并且装置也可以实现为专用逻辑电路。
适合用于执行计算机程序的计算机包括,例如通用和/或专用微处理器,或任何其他类型的中央处理系统。通常,中央处理系统将从只读存储器和/或随机存取存储器接收指令和数据。计算机的基本组件包括用于实施或执行指令的中央处理系统以及用于存储指令和数据的一个或多个存储器设备。通常,计算机还将包括用于存储数据的一个或多个大容量存储设备,例如磁盘、磁光盘或光盘等,或者计算机将可操作地与此大容量存储设备耦接以从其接收数据或向其传送数据,抑或两种情况兼而有之。然而,计算机不是必须具有这样的设备。此外,计算机可以嵌入在另一设备中,例如移动电话、个人数字助理(PDA)、移动音频或视频播放器、游戏操纵台、全球定位系统(GPS)接收机、或例如通用串行总线(USB)闪存驱动器的便携式存储设备,仅举几例。
适合于存储计算机程序指令和数据的计算机可读介质包括所有形式的非易失性存储器、媒介和存储器设备,例如包括半导体存储器设备(例如EPROM、EEPROM和闪存设备)、磁盘(例如内部硬盘或可移动盘)、磁光盘以及0xCD_00ROM和DVD-ROM盘。处理器和存储器可由专用逻辑电路补充或并入专用逻辑电路中。
虽然本申请包含许多具体实施细节,但是这些不应被解释为限制任何公开的范围或所要求保护的范围,而是主要用于描述特定公开的具体实施例的特征。本申请内在多个实施例中描述的某些特征也可以在单个实施例中被组合实施。另一方面,在单个实施例中描述的各种特征也可以在多个实施例中分开实施或以任何合适的子组合来实施。此外,虽然特征可以如上所述在某些组合中起作用并且甚至最初如此要求保护,但是来自所要求保护的组合中的一个或多个特征在一些情况下可以从该组合中去除,并且所要求保护的组合可以指向子组合或子组合的变型。
类似地,虽然在附图中以特定顺序描绘了操作,但是这不应被理解为要求这些操作以所示的特定顺序执行或顺次执行、或者要求所有例示的操作被执行,以实现期望的结果。在某些情况下,多任务和并行处理可能是有利的。此外,所述实施例中的各种系统模块和组件的分离不应被理解为在所有实施例中均需要这样的分离,并且应当理解,所描述的程序组件和系统通常可以一起集成在单个软件产品中,或者封装成多个软件产品。
由此,主题的特定实施例已被描述。其他实施例在所附权利要求书的范围以内。在某些情况下,权利要求书中记载的动作可以以不同的顺序执行并且仍实现期望的结果。此外,附图中描绘的处理并非必需所示的特定顺序或顺次顺序,以实现期望的结果。在某些实现中,多任务和并行处理可能是有利的。
以上所述仅为本申请一个或多个实施例的较佳实施例而已,并不用以限制本申请一个或多个实施例,凡在本申请一个或多个实施例的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请一个或多个实施例保护的范围之内。
Claims (10)
1.一种数据处理方法,包括:
获取待测函数的函数特征信息以及与所述待测函数对应的输入数据;
基于所述函数特征信息与所述输入数据,生成与所述输入数据对应的输入特征;
将所述输入特征输入数据分类模型,得到与所述输入数据对应的数据分类结果;其中所述数据分类模型包括基于多个标注了数据类型信息的数据样本训练得到的神经网络模型。
2.根据权利要求1所述的方法,所述函数特征信息包括所述待测函数对应的源代码,和/或所述待测函数对应的属性信息;所述属性信息包括以下中的至少一项:
函数名称;函数路径;函数参数;函数参数类型;函数返回值;函数分支表达式;函数调用链信息;函数流程信息。
3.根据权利要求1所述的方法,还包括:
获取函数变更信息;所述函数变更信息指示待测代码包括的函数中,发生变更的函数;
将所述函数变更信息中指示的发生变更的函数确定为所述待测函数。
4.根据权利要求3所述的方法,还包括:
基于所述待测代码中各函数之间的关联关系,确定所述待测代码中与所述发生变更的函数对应的关联函数;
将所述关联函数确定为所述待测函数。
5.根据权利要求1所述的方法,所述函数特征信息包括所述待测函数对应的源代码;所述基于所述函数特征信息与所述输入数据,生成与所述输入数据对应的输入特征,包括:
将所述源代码与所述输入数据分别转换为第一字符串序列与第二字符串序列;
删除所述第一字符串序列中的无效字符串;
对删除无效字符串的所述第一字符串序列与所述第二字符串序列分别进行向量化处理,并基于向量化处理结果得到所述输入特征。
6.根据权利要求1-5任一所述的方法,所述输入数据包括与所述待测函数对应的输入数据集中的数据;
所述方法还包括:
基于所述输入数据集中各输入数据分别对应的数据分类结果,确定所述输入数据集中的有效数据。
7.根据权利要求6所述的方法,还包括:
利用预先维护的过滤规则,对所述有效数据进行过滤,得到所述待测函数对应的最终输入数据。
8.一种数据处理装置,包括:
获取模块,用于获取待测函数的函数特征信息以及与所述待测函数对应的输入数据;
生成模块,用于基于所述函数特征信息与所述输入数据,生成与所述输入数据对应的输入特征;
输入模块,用于将所述输入特征输入数据分类模型,得到与所述输入数据对应的数据分类结果;其中所述数据分类模型包括基于多个标注了数据类型信息的数据样本训练得到的神经网络模型。
9.一种电子设备,包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器通过运行所述可执行指令以实现如权利要求1-7任一所述的数据处理方法。
10.一种计算机可读存储介质,所述存储介质存储有计算机程序,所述计算机程序用于使处理器执行如权利要求1-7任一所述的数据处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110932881.0A CN113688036A (zh) | 2021-08-13 | 2021-08-13 | 一种数据处理方法、装置、设备以及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110932881.0A CN113688036A (zh) | 2021-08-13 | 2021-08-13 | 一种数据处理方法、装置、设备以及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113688036A true CN113688036A (zh) | 2021-11-23 |
Family
ID=78579932
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110932881.0A Pending CN113688036A (zh) | 2021-08-13 | 2021-08-13 | 一种数据处理方法、装置、设备以及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113688036A (zh) |
Citations (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103218297A (zh) * | 2013-05-15 | 2013-07-24 | 百度在线网络技术(北京)有限公司 | 测试数据的筛选方法及装置 |
CN109858509A (zh) * | 2018-11-05 | 2019-06-07 | 杭州电子科技大学 | 基于多层随机神经网络单分类器异常检测方法 |
CN109885479A (zh) * | 2019-01-07 | 2019-06-14 | 中国人民解放军战略支援部队信息工程大学 | 基于路径记录截断的软件模糊测试方法及装置 |
US20190188562A1 (en) * | 2017-12-15 | 2019-06-20 | International Business Machines Corporation | Deep Neural Network Hardening Framework |
CN110490244A (zh) * | 2019-08-14 | 2019-11-22 | 吉林大学 | 一种数据处理方法及装置 |
CN110866115A (zh) * | 2019-10-16 | 2020-03-06 | 平安科技(深圳)有限公司 | 序列标注方法、系统、计算机设备及计算机可读存储介质 |
CN110943981A (zh) * | 2019-11-20 | 2020-03-31 | 中国人民解放军战略支援部队信息工程大学 | 基于层次学习的跨架构漏洞挖掘方法 |
CN111428008A (zh) * | 2020-06-11 | 2020-07-17 | 北京百度网讯科技有限公司 | 用于训练模型的方法、装置、设备以及存储介质 |
CN111523119A (zh) * | 2020-04-26 | 2020-08-11 | 南开大学 | 漏洞检测的方法和装置、电子设备及计算机可读存储介质 |
CN111563163A (zh) * | 2020-04-29 | 2020-08-21 | 厦门市美亚柏科信息股份有限公司 | 文本分类模型的生成方法和装置、数据标准化方法和装置 |
CN112052160A (zh) * | 2020-08-06 | 2020-12-08 | 中信银行股份有限公司 | 一种代码的用例获取方法、装置、电子设备及介质 |
CN112163072A (zh) * | 2020-09-30 | 2021-01-01 | 北京金堤征信服务有限公司 | 基于多数据源的数据处理方法以及装置 |
CN112364923A (zh) * | 2020-11-13 | 2021-02-12 | 北京明略昭辉科技有限公司 | 样本数据的处理方法及装置、系统、存储介质、电子设备 |
CN113010420A (zh) * | 2021-03-05 | 2021-06-22 | 南方科技大学 | 一种促进测试代码与产品代码协同演化的方法及终端设备 |
CN113127339A (zh) * | 2021-03-24 | 2021-07-16 | 西北大学 | 一种Github开源平台数据的获取方法及源代码缺陷修复系统 |
-
2021
- 2021-08-13 CN CN202110932881.0A patent/CN113688036A/zh active Pending
Patent Citations (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103218297A (zh) * | 2013-05-15 | 2013-07-24 | 百度在线网络技术(北京)有限公司 | 测试数据的筛选方法及装置 |
US20190188562A1 (en) * | 2017-12-15 | 2019-06-20 | International Business Machines Corporation | Deep Neural Network Hardening Framework |
CN109858509A (zh) * | 2018-11-05 | 2019-06-07 | 杭州电子科技大学 | 基于多层随机神经网络单分类器异常检测方法 |
CN109885479A (zh) * | 2019-01-07 | 2019-06-14 | 中国人民解放军战略支援部队信息工程大学 | 基于路径记录截断的软件模糊测试方法及装置 |
CN110490244A (zh) * | 2019-08-14 | 2019-11-22 | 吉林大学 | 一种数据处理方法及装置 |
CN110866115A (zh) * | 2019-10-16 | 2020-03-06 | 平安科技(深圳)有限公司 | 序列标注方法、系统、计算机设备及计算机可读存储介质 |
CN110943981A (zh) * | 2019-11-20 | 2020-03-31 | 中国人民解放军战略支援部队信息工程大学 | 基于层次学习的跨架构漏洞挖掘方法 |
CN111523119A (zh) * | 2020-04-26 | 2020-08-11 | 南开大学 | 漏洞检测的方法和装置、电子设备及计算机可读存储介质 |
CN111563163A (zh) * | 2020-04-29 | 2020-08-21 | 厦门市美亚柏科信息股份有限公司 | 文本分类模型的生成方法和装置、数据标准化方法和装置 |
CN111428008A (zh) * | 2020-06-11 | 2020-07-17 | 北京百度网讯科技有限公司 | 用于训练模型的方法、装置、设备以及存储介质 |
CN112052160A (zh) * | 2020-08-06 | 2020-12-08 | 中信银行股份有限公司 | 一种代码的用例获取方法、装置、电子设备及介质 |
CN112163072A (zh) * | 2020-09-30 | 2021-01-01 | 北京金堤征信服务有限公司 | 基于多数据源的数据处理方法以及装置 |
CN112364923A (zh) * | 2020-11-13 | 2021-02-12 | 北京明略昭辉科技有限公司 | 样本数据的处理方法及装置、系统、存储介质、电子设备 |
CN113010420A (zh) * | 2021-03-05 | 2021-06-22 | 南方科技大学 | 一种促进测试代码与产品代码协同演化的方法及终端设备 |
CN113127339A (zh) * | 2021-03-24 | 2021-07-16 | 西北大学 | 一种Github开源平台数据的获取方法及源代码缺陷修复系统 |
Non-Patent Citations (3)
Title |
---|
MOLINA, FACUNDO 等: "Training Binary Classifiers as Data Structure Invariants", 2019 IEEE/ACM 41ST INTERNATIONAL CONFERENCE ON SOFTWARE ENGINEERING (ICSE 2019), 1 September 2020 (2020-09-01) * |
王小红;: "大数据下虚假无效数据优化识别仿真", 计算机仿真, no. 11, 15 November 2017 (2017-11-15) * |
陈红松;陈京九;: "基于循环神经网络的无线网络入侵检测分类模型构建与优化研究", 电子与信息学报, no. 06, 22 January 2019 (2019-01-22) * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10572370B2 (en) | Test-assisted application programming interface (API) learning | |
CN107861870A (zh) | 接口测试及测试数据生成方法、装置、终端和存储介质 | |
CN104683386B (zh) | 可定制响应的桩服务实现方法及装置 | |
JPWO2018180970A1 (ja) | 情報処理システム、特徴量説明方法および特徴量説明プログラム | |
CN109144879B (zh) | 测试分析方法及装置 | |
CN111930617B (zh) | 基于数据对象化的自动化测试方法及装置 | |
CN113255328B (zh) | 语言模型的训练方法及应用方法 | |
CN114035805A (zh) | 用于预编译器的代码转换方法、装置、介质及设备 | |
US20230106226A1 (en) | Code enrichment for training language models relating to computer programming | |
CN114818600A (zh) | 一种芯片验证方法、装置、电子设备以及存储介质 | |
CN117434429B (zh) | 芯片的稳定性测试方法及相关装置 | |
CN115115048A (zh) | 模型转换方法、装置、计算机设备及存储介质 | |
CN114611697A (zh) | 神经网络量化及部署方法、系统、电子设备及存储介质 | |
CN110020333A (zh) | 数据分析方法及装置、电子设备、存储介质 | |
CN114610598A (zh) | 测试方法、装置、电子设备及计算机可读存储介质 | |
CN111782266B (zh) | 软件性能基准确定方法及装置 | |
CN112651197A (zh) | 电路划分预处理的方法及门级电路并行仿真的方法 | |
CN110427277B (zh) | 数据校验方法、装置、设备及存储介质 | |
CN113688036A (zh) | 一种数据处理方法、装置、设备以及存储介质 | |
CN116560968A (zh) | 一种基于机器学习的仿真计算时间预测方法、系统及设备 | |
CN116561003A (zh) | 测试数据生成方法、装置、计算机设备和存储介质 | |
CN111124541A (zh) | 一种配置文件的生成方法、装置、设备及介质 | |
CN112765022B (zh) | 一种基于数据流的Webshell静态检测方法及电子设备 | |
CN111461328B (zh) | 一种神经网络的训练方法 | |
CN110177006B (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 |