一种数据生成方法及相关设备
文献发布时间:2023-06-19 10:29:05
技术领域
本申请涉及测试技术领域,尤其涉及一种数据生成方法及相关设备。
背景技术
单元测试(Unit Testing)是指对软件中的最小可测单元进行检查和验证,通常由开发人员或测试人员在开发过程中或者在开发完成后实施。最小可测单元可以为一个方法或者函数,也可以为一个窗口或者菜单等。
单元测试通常须要在与程序的其他部分相隔离的情况下独立地进行。但在最小测试单元里,可能依赖大量的对象,并调用所依赖对象的方法。这些所依赖的对象及其方法,绝大部分是不容易直接被制造出来的,需要虚拟地制造。mock框架就是用来虚拟地制造对象及其方法、数据的。被虚拟制造出来的对象叫做mock对象。但现有的mock框架需要大量的硬编码。比如,对于一些入参时间格式,字符串长度格式,入参的数字的大小范围等需要校验的数据,一般需要在代码中不断重复写符合错误条件的异常数据,等等。如此,为了保证单元测试的覆盖率,mock硬编码的成本也相应会高,不仅大大增加了测试人员的工作量,而且使得代码繁复、冗长。
因此,如何快速便捷地生成单元测试所需的大量异常数据,保证单元测试的覆盖率是亟待解决的问题。
发明内容
鉴于上述问题,提出了本申请以便提供一种克服上述问题或者至少部分地解决上述问题的一种数据生成方法及相关设备。
第一方面,本申请实施例提供了一种数据生成方法,可包括:
获取第一数据集合,所述第一数据集合包括M个第一数据;所述M个第一数据中的每一个第一数据为目标代码的正确入参;所述正确入参为符合所述目标代码的输入要求的输入参数;其中,M为大于或者等于1的整数;
对所述M个第一数据中的每一个第一数据进行修改,得到对应的M个第二数据;所述M个第二数据中的每一个第二数据为所述目标代码的错误入参;所述错误入参为不符合所述目标代码的输入要求的输入参数;所述每一个第二数据用于在所述目标代码的异常测试场景中进行测试。
在一种可能实现的方式中,所述获取第一数据集合,包括:
获取第三数据集合,所述第三数据集合包括N个第三数据;所述N个第三数据中的每一个第三数据为所述目标代码的正确入参;所述每一个第三数据用于在所述目标代码的正常测试场景中进行测试;其中,N为大于或者等于1的整数;
对所述N个第三数据进行复制,得到对应的所述M个第一数据。
在一种可能实现的方式中,对所述N个第三数据进行复制,得到对应的所述M个第一数据,包括:
通过深度拷贝,对所述N个第三数据中的所述每一个第三数据进行复制,得到对应的所述M个第一数据;其中,所述每一个第三数据与所述M个第一数据中对应的一个或多个第一数据相同;所述M个第一数据与所述N个第三数据之间相互隔离。
在一种可能实现的方式中,所述目标代码的输入要求包括K个校验标准,所述每一个第一数据均符合所述K个校验标准;K为大于或者等于1的整数。
在一种可能实现的方式中,所述对所述M个第一数据中的每一个第一数据进行修改,得到对应的M个第二数据,包括:
根据预设规则,修改所述M个第一数据中的每一个第一数据中的任意一个或者多个数值,得到对应的所述M个第二数据;所述M个第二数据中的每一个第二数据不符合所述K个校验标准中的一个或多个。
在一种可能实现的方式中,所述获取第三数据集合,包括:
读取json文件,并通过解析所述json文件,获取所述第三数据集合。
第二方面,本申请实施例提供了一种数据生成装置,其中,所述装置包括:
第一获取单元,用于获取第一数据集合,所述第一数据集合包括M个第一数据;所述M个第一数据中的每一个第一数据为目标代码的正确入参;所述正确入参为符合所述目标代码的输入要求的输入参数;其中,M为大于或者等于1的整数;
修改单元,用于对所述M个第一数据中的每一个第一数据进行修改,得到对应的M个第二数据;所述M个第二数据中的每一个第二数据为所述目标代码的错误入参;所述错误入参为不符合所述目标代码的输入要求的输入参数;所述每一个第二数据用于在所述目标代码的异常测试场景中进行测试。
在一种可能实现的方式中,所述装置还包括:
第二获取单元,用于获取第三数据集合,所述第三数据集合包括N个第三数据;所述N个第三数据中的每一个第三数据为所述目标代码的正确入参;所述每一个第三数据用于在所述目标代码的正常测试场景中进行测试;其中,N为大于或者等于1的整数;
复制单元,用于对所述N个第三数据进行复制,得到对应的所述M个第一数据。
在一种可能实现的方式中,所述复制单元,具体用于:
通过深度拷贝,对所述N个第三数据中的所述每一个第三数据进行复制,得到对应的所述M个第一数据;其中,所述每一个第三数据与所述M个第一数据中对应的一个或多个第一数据相同;所述M个第一数据与所述N个第三数据之间相互隔离。
在一种可能实现的方式中,所述目标代码的输入要求包括K个校验标准,所述每一个第一数据均符合所述K个校验标准;K为大于或者等于1的整数。
在一种可能实现的方式中,所述修改单元,具体用于:
根据预设规则,修改所述M个第一数据中的每一个第一数据中的任意一个或者多个数值,得到对应的所述M个第二数据;所述M个第二数据中的每一个第二数据不符合所述K个校验标准中的一个或多个。
在一种可能实现的方式中,所述第二获取单元,具体用于:
读取json文件,并通过解析所述json文件,获取所述第三数据集合。
第三方面,本申请实施例提供了一种计算机设备,包括存储组件,处理组件和通信组件,存储组件,处理组件和通信组件相互连接,其中,存储组件用于存储计算机程序,通信组件用于与外部设备进行信息交互;处理组件被配置用于调用计算机程序,执行上述第一方面所述的方法,此处不再赘述。
第四方面,本申请实施例提供了一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行以实现上述第一方面所述的方法,此处不再赘述。
实施本申请可以基于目标代码的单元测试正常场景下的若干个正确数据,首先通过复制得到大量正确数据,然后再通过对该大量正确数据中的每一个正确数据进行简单修改(例如对每个正确数据内的一个或者多个数值进行随机增减),从而快速、便捷地生成目标代码的单元测试的各类异常场景下所需要的大量错误数据。该错误数据可以用于快速触发边界条件,以测试该最小单元对数据的校验功能。实施本申请可以减少样板代码的数据,减少重复数据的复制,极大程度上减少测试人员制作错误数据的工作量,提高工作效率,同时保证单元测试的覆盖率。
附图说明
为了更清楚地说明本申请实施例或背景技术中的技术方案,下面将对本申请实施例或背景技术中所需要使用的附图进行说明。
图1是本申请实施例提供的一种数据生成方法的系统架构示意图;
图2是本申请实施例提供的一种数据生成方法的流程示意图;
图3是本申请实施例提供的另一种数据生成方法的流程示意图;
图4是本申请实施例提供的一种数据生成装置的结构示意图;
图5是本申请实施例提供的一种计算机设备的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例进行描述。
本申请的说明书和权利要求书及所述附图中的术语“第一”、“第二”和“第三”等是用于区别不同对象,而不是用于描述特定顺序。此外,“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。
在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。
在本申请中使用的术语“服务器”、“单元”、“系统”等用于表示计算机相关的实体、硬件、固件、硬件和软件的组合、软件、或执行中的软件。例如,服务器可以是但不限于,处理器,数据处理平台,计算设备,计算机,两个或更多个计算机等。
首先,对本申请中的部分用语进行解释说明,以便于本领域技术人员理解。
(1)单元测试(unit testing),是指对软件中的最小可测试单元进行检查和验证。对于单元测试中单元的含义,一般来说,要根据实际情况去判定其具体含义,如C语言中单元指一个函数,java里单元指一个类,图形化的软件中可以指一个窗口或一个菜单等。总的来说,单元就是人为规定的最小的被测功能模块。单元测试是在软件开发过程中要进行的最低级别的测试活动,软件的独立单元将在与程序的其他部分相隔离的情况下进行测试。单元测试往往是开发人员编写的一小段代码,用于检验被测代码的一个很小的、很明确的功能是否正确。通常而言,一个单元测试是用于判断某个特定条件(或者场景)下某个特定函数的行为。
此处,就单元测试,结合本申请提供的一种数据生成方法作进一步详细阐述。
首先,需要说明的是,单元测试可以分为正常场景下的测试以及异常场景下的测试。其中,单元测试的正常场景(或者称之为成功场景)是指测试使用的数据均为符合输入要求的正确数据,用于测试某个最小单元(例如为一小段具备对数据进行校验判断功能的代码,比如入参时间格式校验,字符串长度格式校验,入参的数字的大小范围校验,等等)能否准确判断出正确数据,而不误判和进行报错和。与上述正常场景相对的异常场景则是指测试使用的数据包括异常的错误数据,用于测试某个最小单元能否找出其中的错误数据,并进行报错等等。
其次,可以理解的是,在单元测试的异常场景中,往往需要测试人员制作大量的错误数据,以更加全面地进行测试,保证单元测试的覆盖率和可信度,而通过本申请提供的一种数据生成方法可以实现快速、便捷地生成用于单元测试异常场景的大量错误数据,大大提高错误数据的制作效率,减少测试人员的工作量。
(2)mock(模拟)数据,作为前端经常需要模拟后台数据,我们称之为mock。通常的方式为自己搭建一个服务器,返回我们想要的数据。mock方法是单元测试中常见的一种技术,它的主要作用是模拟一些在应用中不容易构造或者比较复杂的对象,从而把测试与测试边界以外的对象隔离开。mock对象有助于从测试中消除依赖项,使测试更单元化。
(3)建造者(builder)模式,又叫创建者模式,是将一个复杂的对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。建造者模式隐藏了复杂对象的创建过程,它把复杂对象的创建过程加以抽象,通过子类继承或者重载的方式,动态的创建具有复合属性的对象。
其次,对本申请实施例所基于的其中一种数据生成方法的系统架构进行描述。
请参阅图1,图1是本申请实施例提供的一种数据生成方法的系统架构示意图。如图1所示,该系统架构可以包括计算机设备101(图1中以台式电脑为例)和服务器201。对于需要进行单元测试的计算机设备101,可以直接在该计算机设备101上集成本申请实施例所提供的数据生成方法和单元测试功能,或者可以在该计算机设备101上安装用于实现申请实施例方法的客户端。又或者,本申请所提供的数据生成方法还可以以软件开发工具包(software development kit,SDK)的形式运行在服务器201等设备上,以SDK的形式提供数据生成功能的接口,计算机设备101或者其他设备可以通过提供的接口实现快速制作单元测试的异常场景所需的大量错误数据,等等,本申请实施例对此不作具体限定。其中,计算机设备101可以通过有线或者无线的方式与服务器201建立连接,服务器201可以是一个服务器,也可以是由多个服务器组成的服务器集群,或者一个云计算服务中心等等,本申请实施例对此不作具体限定。
下面,以计算机设备101为例,详细阐述本申请实施例中提供的一种数据生成方法。计算机设备101可以首先获取原始正确数据(或者称之为原始成功数据),该原始正确数据可以为符合目标代码的输入要求的正确入参,用于在该目标代码的单元测试的正常测试场景下进行测试。例如,该目标代码为某个用于对用户注册账号时输入密码的字符长度进行校验判断的一小段代码,则该原始的正确数据可以符合该字符长度要求的数据。其中,该原始正确数据可以存储在计算机设备101本地,也可以存储在服务器201中,计算机设备101可以通过网络从服务器201中获取该原始正确数据,等等,本申请实施例对此不作具体限定。然后,计算机设备101可以通过复制该原始正确数据,从而得到大量的正确数据。可选地,可以通过深度拷贝的方式对该原始正确数据进行复制,从而可以使得复制得到的大量正确数据与该原始正确数据之间相互隔离,对该复制得到的大量正确数据的修改不会影响、污染该原始正确数据。然后,计算机设备101可以通过对该复制得到的大量正确数据中的每一个或者部分正确数据进行修改,从而快速得到对应的大量错误数据。其中,该错误数据可以为不符合该目标代码的输入要求的错误入参,用于在该目标代码的单元测试的异常测试场景下进行测试,满足各类异常测试场景的测试需求。可选地,根据经验,在上述对该大量正确数据进行修改的过程中,往往可以基于目标代码的输入要求,通过将正确数据的几个数值变异成错误值,其余内容保持正确不变等方式进行修改。可选地,还可以随机增减正确数据的字符长度,或者改变正确数据中字符的大小写,等等,从而得到大量错误数据,以测试目标代码的判断逻辑是否正确。可选地,在一些可能的实现方式中,本申请实施例所提供的一种数据生成方法也可以通过该服务器201实现。
如上所述,本申请实施例中的计算机设备可以包括但不限于任何一种基于智能操作系统的电子产品,其可与用户通过键盘、虚拟键盘、触摸板、触摸屏以及声控设备等输入设备来进行人机交互,诸如具备上述数据生成功能的智能手机、平板电脑、笔记本电脑和台式电脑等。其中,智能操作系统包括但不限于任何通过向移动设备提供各种移动应用来丰富设备功能的操作系统,诸如:安卓(Android
还可以理解的是,图1所示的数据生成方法的系统架构只是本申请实施例中的部分示例性的实施方式,本申请实施例中数据生成方法的系统架构包括但不仅限于以上数据生成方法的系统架构。
请参阅图2,图2是本申请实施例提供的一种数据生成方法的流程示意图。可应用于上述图1中的系统,下面将结合图2从计算机设备101的单侧进行描述。该方法可以包括以下步骤S201-步骤S202。
步骤S201:获取第一数据集合,所述第一数据集合包括M个第一数据;所述M个第一数据中的每一个第一数据为目标代码的正确入参。
具体地,计算机设备获取第一数据集合,所述第一数据集合包括M个第一数据;所述M个第一数据中的每一个第一数据为目标代码的正确入参(也即图1对应实施例中所描述的正确数据)。M为大于或者等于1的整数。其中,该正确入参可以为符合该目标代码的输入要求的输入参数。
可选地,该目标代码的输入要求可以包括K个校验标准,K为大于或者等于1的整数。例如,该K个校验标准可以包括校验该目标代码的入参的字符长度是否为符合标准的6位,以及校验该目标代码的入参的数字大小范围是否在标准的1至5的范围内,还可以包括校验该目标代码的入参中是否包括至少一个大写字母,等等,本申请实施例对此不作具体限定。
步骤S202:对所述M个第一数据中的每一个第一数据进行修改,得到对应的M个第二数据;所述M个第二数据中的每一个第二数据为所述目标代码的错误入参。
具体地,计算机设备对所述M个第一数据中的每一个第一数据进行修改,得到对应的M个第二数据;所述M个第二数据中的每一个第二数据为所述目标代码的错误入参(也即图1对应实施例中所描述的错误数据)。其中,该错误入参可以为不符合该目标代码的输入要求的输入参数。如上所述,该目标代码的输入要求可以包括K个校验标准,则该M个第二数据中的每一个第二数据可以不符合该K个校验标准中的一个或多个。
可选地,计算机设备可以根据预设规则,修改该M个第一数据中的每一个第一数据中的一个或多个数值,得到对应的M个第二数据。或者还可以根据预设条件对该M个第一数据中的一部分第一数据进行修改,等等。其中,该预设规则可以为在预设范围内(例如-5至5的范围内)对该第一数据内的一个或多个数值进行随机的增减。又或者可以根据测试需求进行相应的修改,例如,当前工作人员需要针对某个用于对用户注册账号时输入密码的字符长度进行校验判断的目标代码进行测试,比如该字符长度要求为6个字符,则该第一数据集合内的多个第一数据例如可以包括“456238”、“112256”、“582364”和“256942”等满足字符长度要求的正确数据,此时可以对该每个第一数据进行随机的字符添加或者删除,从而快速生成对应的不满足6个字符长度要求的大量错误数据,以满足对该目标代码的异常测试场景下的测试需求,等等。又例如,该目标代码还可以对输入密码中的字母大小写进行校验判断,比如要求该输入密码中必须包括至少一个大写字母。则该第一数据集合内的多个第一数据例如可以包括“AB6238”、“112A56”、“Acd364”和“2569Ba”等满足包括至少一个大写字母要求的正确数据。此时可以将每个第一数据中的大写字母均修改为对应的小写字母,或者随机将其修改为任意的小写字母,从而快速生成对应的不满足至少包括一个大写字母要求的大量错误数据,以满足对该目标代码的异常测试场景下的测试需求,等等。此处不再进行赘述。
本申请可以通过简单修改第一数据(也即正确数据),快速生成异常测试场景所需的大量第二数据(也即错误数据),快速触发边界条件,以对目标代码的检验判断功能进行全面测试。如此,减少了样板代码的数据,减少重复数据的复制和测试人员的工作量,大大提高了错误数据的制作效率,保证了单元测试的覆盖率。
请参阅图3,图3是本申请实施例提供的另一种数据生成方法的流程示意图。可应用于上述图1中的系统,下面将结合图3从计算机设备101的单侧进行描述。该方法可以包括以下步骤S301-步骤S303。
步骤S301:获取第三数据集合,所述第三数据集合包括N个第三数据;所述N个第三数据中的每一个第三数据为目标代码的正确入参。
具体地,计算机设备获取第三数据集合,所述第三数据集合包括N个第三数据;所述N个第三数据中的每一个第三数据为目标代码的正确入参。所述每一个第三数据可以用于在所述目标代码的正常测试场景中进行测试。其中,N为大于或者等于1的整数。
可选地,计算机设备可以通过读取json文件,并解析该json文件,从而快速得到该第三数据集合。其中,该json文件内可以包括目标代码的单元测试正常场景下的数据。
步骤S302:对所述N个第三数据进行复制,得到对应的M个第一数据;所述M个第一数据中的每一个第一数据为目标代码的正确入参。
具体地,计算机设备可以对该N个第三数据(也即图1对应实施例中所描述的原始正确数据)进行复制,从而得到对应的M个第一数据。可以理解的是,若对每个第三数据复制两次,则可以得到N*2个第一数据(也即M等于N*2),每个第三数据都与其对应复制得到的一个或者多个第一数据相同。可选地,计算机设备也可以根据实际情况对该N个第三数据中的一部分第三数据进行复制,从而得到对应的多个第一数据,等等,本申请实施例对此不作具体限定。
可选地,计算机设备可以使用建造者模式,同时通过深度拷贝的方法,自动生成重复数据,也即复制得到上述大量的第一数据,如此可以不用测试人员在代码中写重复数据,又保证了原始数据与复制所得的数据之间的隔离,互不影响。
步骤S303:对所述M个第一数据中的每一个第一数据进行修改,得到对应的M个第二数据;所述M个第二数据中的每一个第二数据为所述目标代码的错误入参。
具体地,步骤S303可以参考上述图2对应实施例中的步骤S202,此处不在进行赘述。
可选地,计算机设备也可以通过建造者模式结果上面的mock数据生成方法,使用流式应用程序接口(Application Program Interface,API)的方式修改每一个第一数据,从而得到满足单元测试异常场景所需的大量错误数据(也即上述第二数据)。其中,流是一系列数据项,一次只生成一项。程序可以从输入流中一个一个读取数据项,然后以同样的方式将数据项写入输出流。流也提供了一个接口,可以访问特定元素类型的一组有序值(例如本申请中的M个第一数据),也即本申请可以基于流式接口,从输入流中依次读取该M个第一数据,然后将修改后得到的M个第二数据依次写入输出流。如此,可以使得代码结构清晰,明确,代码结构紧凑,样板代码少。如此,通过简单修改复制后得到的大量正确数据内的一个或多个数值,就能快速、简单制作符合异常测试场景的测试条件的大量错误数据,保证对目标代码单元测试的覆盖率。
可选地,计算机设备也可以对同一第一数据进行多次修改,得到不同的第二数据,以满足各类异常测试场景的需求,等等,本申请实施例对此不作具体限定。
可选地,请一并参考上述图2对应实施例中的步骤S202,其中,修改第一数据所根据的预设规则可以自定义设置,除了上述涉及到的一些针对第一数据的字符长度、字母大小写以及数值的修改之外。可选地,预设规则还可以用于修改第一数据中的参数类型、以及请求时间,等等。修改后的数据即为前述的第二数据。此处的修改可以为随机修改,也可以为按照预设的映射规则进行修改。一般来说,预设的修改规则可以包括但不限于将指定结点修改为空,修改数据的关键字,例如身份标识号(Identity Document,ID),class(种类),int(整数)等;修改数据的范围,例如字符串长度兼容,int类型,double(双精度)类型的兼容;修改数据的类型,例如,从int类型转long(长整)类型,string(字符串)类型转换int类型,等等,本申请实施例对此不作具体限定。
综上,本申请实施例可以基于目标代码的单元测试正常场景下的若干个正确数据,首先通过复制得到大量正确数据,然后再通过对该大量正确数据中的每一个正确数据进行简单修改(例如对每个正确数据内的一个或者多个数值进行随机增减),从而快速、便捷地生成目标代码的单元测试的各类异常场景下所需要的大量错误数据。该错误数据可以用于快速触发边界条件,以测试该最小单元对数据的校验功能。实施本申请可以减少样板代码的数据,减少重复数据的复制,极大程度上减少测试人员制作错误数据的工作量,提高工作效率,同时保证单元测试的覆盖率。
上述详细阐述了本申请实施例的方法,下面提供了与本申请实施例的相关数据生成装置。请参阅图4,图4是本申请实施例提供的一种数据生成装置的结构示意图。数据生成装置40可以包括第一获取单元401,修改单元402,第二获取单元403和复制单元404。
第一获取单元401,用于获取第一数据集合,所述第一数据集合包括M个第一数据;所述M个第一数据中的每一个第一数据为目标代码的正确入参;所述正确入参为符合所述目标代码的输入要求的输入参数;其中,M为大于或者等于1的整数;
修改单元402,用于对所述M个第一数据中的每一个第一数据进行修改,得到对应的M个第二数据;所述M个第二数据中的每一个第二数据为所述目标代码的错误入参;所述错误入参为不符合所述目标代码的输入要求的输入参数;所述每一个第三数据用于在所述目标代码的异常测试场景中进行测试。
在一种可能实现的方式中,所述装置还包括:
第二获取单元403,用于获取第三数据集合,所述第三数据集合包括N个第三数据;所述N个第一数据中的每一个第一数据为所述目标代码的正确入参;所述每一个第三数据用于在所述目标代码的正常测试场景中进行测试;其中,N为大于或者等于1的整数;
复制单元404,用于对所述N个第三数据进行复制,得到对应的所述M个第一数据。
在一种可能实现的方式中,所述复制单元404,具体用于:
通过深度拷贝,对所述N个第三数据中的所述每一个第三数据进行复制,得到对应的所述M个第一数据;其中,所述每一个第三数据与所述M个第一数据中对应的一个或多个第一数据相同;所述M个第一数据与所述N个第三数据之间相互隔离。
在一种可能实现的方式中,所述目标代码的输入要求包括K个校验标准,所述每一个第一数据均符合所述K个校验标准。
在一种可能实现的方式中,所述修改单元402,具体用于:
根据预设规则,修改所述M个第一数据中的每一个第一数据中的任意一个或者多个数值,得到对应的所述M个第二数据;所述M个第三数据中的每一个第三数据不符合所述K个校验标准中的一个或多个。
在一种可能实现的方式中,所述第二获取单元401,具体用于:
读取json文件,并通过解析所述json文件,获取所述第三数据集合。
需要说明的是,各个操作的实现还可以对应参照图2、图3所示的方法实施例的相应描述,此处不再赘述。
请参阅图5,图5是本申请实施例提供的一种计算机设备的结构示意图,该计算机设备50包括至少一个处理器501,至少一个存储器502、至少一个通信接口503。此外,该设备还可以包括天线等通用部件,在此不再详述。
处理器501可以是通用中央处理器(CPU),微处理器,特定应用集成电路(application-specific integrated circuit,ASIC),或一个或多个用于控制以上方案程序执行的集成电路。
通信接口503,用于与其他设备或通信网络通信,如以太网,无线接入网(RAN),核心网,无线局域网(Wireless Local Area Networks,WLAN)等。
存储器502可以是只读存储器(read-only memory,ROM)或可存储静态信息和指令的其他类型的静态存储设备,随机存取存储器(random access memory,RAM)或者可存储信息和指令的其他类型的动态存储设备,也可以是电可擦可编程只读存储器(ElectricallyErasable Programmable Read-Only Memory,EEPROM)、只读光盘(Compact Disc Read-Only Memory,CD-ROM)或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。存储器可以是独立存在,通过总线与处理器相连接。存储器也可以和处理器集成在一起。
其中,所述存储器502用于存储执行以上方案的应用程序代码,并由处理器501来控制执行。所述处理器501用于执行所述存储器502中存储的应用程序代码。
存储器502存储的代码可执行以上图2或图3提供的数据生成方法,比如,计算机设备50可以获取第一数据集合,所述第一数据集合包括M个第一数据;所述M个第一数据中的每一个第一数据为目标代码的正确入参;所述正确入参为符合所述目标代码的输入要求的输入参数;其中,M为大于或者等于1的整数;对所述M个第一数据中的每一个第一数据进行修改,得到对应的M个第二数据;所述M个第二数据中的每一个第二数据为所述目标代码的错误入参;所述错误入参为不符合所述目标代码的输入要求的输入参数;所述每一个第三数据用于在所述目标代码的异常测试场景中进行测试。
需要说明的是,本申请实施例中所描述的计算机设备50中各功能单元的功能可参照图2、图3所示的方法实施例的相应描述,此处不再赘述。
在本申请中,所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本申请实施例方案的目的。
另外,在本申请各个实施例中的各功能组件可以集成在一个组件也可以是各个组件单独物理存在,也可以是两个或两个以上组件集成在一个组件中。上述集成的组件既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的组件如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分,或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个本申请实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。
应理解,在本申请的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。尽管在此结合各实施例对本申请进行了描述,然而,在实施例所要求保护的本申请过程中,本领域技术人员可理解并实现公开实施例的其他变化。
- 导航数据生成方法及相关设备、物体运送方法及相关设备
- 分析设备相关数据以生成和/或抑制设备相关警报