一种数据生成方法及相关设备技术

技术编号:27975172 阅读:11 留言:0更新日期:2021-04-06 14:09
本申请涉及测试领域,提供了一种数据生成方法及相关设备,其中,该方法包括:获取第一数据集合,所述第一数据集合包括M个第一数据;所述M个第一数据中的每一个第一数据为目标代码的正确入参;所述正确入参为符合所述目标代码的输入要求的输入参数;对所述M个第一数据中的每一个第一数据进行修改,得到对应的M个第二数据;所述M个第二数据中的每一个第二数据为所述目标代码的错误入参;所述错误入参为不符合所述目标代码的输入要求的输入参数;所述每一个第三数据用于在所述目标代码的异常测试场景中进行测试。实施本申请可以快速生成测试所需的大量异常数据,有效减少测试人员的工作量,同时保证测试的覆盖率。

【技术实现步骤摘要】
一种数据生成方法及相关设备
本申请涉及测试
,尤其涉及一种数据生成方法及相关设备。
技术介绍
单元测试(UnitTesting)是指对软件中的最小可测单元进行检查和验证,通常由开发人员或测试人员在开发过程中或者在开发完成后实施。最小可测单元可以为一个方法或者函数,也可以为一个窗口或者菜单等。单元测试通常须要在与程序的其他部分相隔离的情况下独立地进行。但在最小测试单元里,可能依赖大量的对象,并调用所依赖对象的方法。这些所依赖的对象及其方法,绝大部分是不容易直接被制造出来的,需要虚拟地制造。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.一种数据生成方法,其特征在于,包括:/n获取第一数据集合,所述第一数据集合包括M个第一数据;所述M个第一数据中的每一个第一数据为目标代码的正确入参;所述正确入参为符合所述目标代码的输入要求的输入参数;其中,M为大于或者等于1的整数;/n对所述M个第一数据中的每一个第一数据进行修改,得到对应的M个第二数据;所述M个第二数据中的每一个第二数据为所述目标代码的错误入参;所述错误入参为不符合所述目标代码的输入要求的输入参数;所述每一个第二数据用于在所述目标代码的异常测试场景中进行测试。/n

【技术特征摘要】
1.一种数据生成方法,其特征在于,包括:
获取第一数据集合,所述第一数据集合包括M个第一数据;所述M个第一数据中的每一个第一数据为目标代码的正确入参;所述正确入参为符合所述目标代码的输入要求的输入参数;其中,M为大于或者等于1的整数;
对所述M个第一数据中的每一个第一数据进行修改,得到对应的M个第二数据;所述M个第二数据中的每一个第二数据为所述目标代码的错误入参;所述错误入参为不符合所述目标代码的输入要求的输入参数;所述每一个第二数据用于在所述目标代码的异常测试场景中进行测试。


2.根据权利要求1所述的方法,其特征在于,所述获取第一数据集合,包括:
获取第三数据集合,所述第三数据集合包括N个第三数据;所述N个第三数据中的每一个第三数据为所述目标代码的正确入参;所述每一个第三数据用于在所述目标代码的正常测试场景中进行测试;其中,N为大于或者等于1的整数;
对所述N个第三数据进行复制,得到对应的所述M个第一数据。


3.根据权利要求2所述的方法,其特征在于,对所述N个第三数据进行复制,得到对应的所述M个第一数据,包括:
通过深度拷贝,对所述N个第三数据中的所述每一个第三数据进行复制,得到对应的所述M个第一数据;其中,所述每一个第三数据与所述M个第一数据中对应的一个或多个第一数据相同;所述M个第一数据与所述N个第三数据之间相互隔离。


4.根据权利要求1所述的方法,其特征在于,所述目标代码的输入要求包括K个校验标准,所述每一个第一数据均符合所述K个校验标准;K为大于或者等于1的整数。


5.根据权利要求4所述的方法,其特征在于,所述对所述M个第一数据中的每一个第一数据进行修改,得到对应的M个第二数据,包括:
根据预设规则,修改所述M个第一数据中的每一个第一数据中的任意一...

【专利技术属性】
技术研发人员:李佳任
申请(专利权)人:平安普惠企业管理有限公司
类型:发明
国别省市:广东;44

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

1